sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    ⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update

    Creating SketchUp scene from saved files using Ruby script

    Scheduled Pinned Locked Moved Developers' Forum
    11 Posts 4 Posters 1.7k Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • thomthomT Offline
      thomthom
      last edited by

      <span class="syntaxdefault"><br />model </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />definition </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">definitions</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">load</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> skp_file </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">tr </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Geom</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Transformation</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">rotation</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> point</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> vector</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> angle </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_instance</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> definition</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> tr </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault"></span>
      

      DefinitionList#load

      Entities#add_instance

      Some general info on instances and definitions in SketchUp:
      http://www.thomthom.net/thoughts/2012/02/definitions-and-instances-in-sketchup/

      General info on SketchUp plugin development:
      http://www.thomthom.net/thoughts/2012/01/golden-rules-of-sketchup-plugin-development/

      Thomas Thomassen — SketchUp Monkey & Coding addict
      List of my plugins and link to the CookieWare fund

      1 Reply Last reply Reply Quote 0
      • M Offline
        MeAd
        last edited by

        Thanks Thomthom. It works perfectly. One last question, can you save the new scene automatically (if possible without showing the SketchUp GUI)?

        I used the following command and I even could not locate the file.

        ` model=Sketchup.active_model
        definition=model.definitions.load('sofa.skp')
        tr= Geom::Transformation.translation [0, 0, 0]
        model.active_entities.add_instance(definition,tr)
        definition1=model.definitions.load('table.skp')
        tr1= Geom::Transformation.translation [0, 0, 0]
        model.active_entities.add_instance(definition1,tr1)

        Sketchup.active_model.save "c:/Desktop/room.skp"`

        1 Reply Last reply Reply Quote 0
        • thomthomT Offline
          thomthom
          last edited by

          @mead said:

          can you save the new scene automatically

          Do you actually mean Scene here - as in the saved views you have in SketchUp - or simply model (which is what your code indicate).

          @mead said:

          Sketchup.active_model.save "c:/Desktop/room.skp"

          Are you sure you have the correct path? 'C:/Desktop' - do you really have a folder of that name?

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • M Offline
            MeAd
            last edited by

            Hello Thomthom,

            Thanks for your prompt response. Just to clarify my previous question:

            @thomthom said:

            Do you actually mean Scene here - as in the saved views you have in SketchUp - or simply model (which is what your code indicate).
            I just meant simply model.

            @thomthom said:

            Are you sure you have the correct path? 'C:/Desktop' - do you really have a folder of that name?
            Yes, I have the folder. In fact,I tried to save it in many folders and I could not locate it in any of the folders.

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              What is the return value of Model.save ?

              Thomas Thomassen — SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • Dan RathbunD Offline
                Dan Rathbun
                last edited by

                No you cannot run SketchUp in "headless" mode (without the GUI.)

                BUT you CAN write a C/C++ application (and compile it,) that uses the SketchUp C++ SDK. Your application (be it a command line utility,) can create and save model files with no GUI.

                I'm not here much anymore.

                1 Reply Last reply Reply Quote 0
                • thomthomT Offline
                  thomthom
                  last edited by

                  ? Did he ask about that?

                  Sent from my LT25i using Tapatalk 2

                  Thomas Thomassen — SketchUp Monkey & Coding addict
                  List of my plugins and link to the CookieWare fund

                  1 Reply Last reply Reply Quote 0
                  • dukejazzD Offline
                    dukejazz
                    last edited by

                    @unknownuser said:

                    by MeAd » March 19th, 2013, 8:36 pm

                    Dear All,

                    I want to create a sketchup file by automatically populating with locally saved 3D sketchup models using ruby script executed from command line.

                    Here a ruby script executed from command line.
                    pic_0298.jpg
                    you can populate skp file with a drop down inputbox on a second moditor display then copy and paste to display one.
                    A good outline for drop down is my Plugins_loader_dj v1.6
                    I have a plugin that can helps you copy and paste to your presentation
                    2) Another_Sketchup_dj v1.6
                    3) Another_Sketchup_Plus_dj v1.6
                    that can be found here
                    http://sketchucation.com/forums/viewtopic.php?f=323&t=46688
                    projectEditor_dj 1.6
                    Copyright Feb 4, 2013
                    by DukeJazz: James Cochran

                    @unknownuser said:

                    I also want to apply a transformation (rotation + translation) on each of the imported models and finally save the sketchup file. For example, I created two files: 'sofa.skp' and 'table.skp'.

                    for (rotation + translation)
                    [Plugin] scaleGroupFloat_dj Ver 1.6.5 Feb 15, 2013by dukejazz » May 11th, 2012, 3:36 pm
                    http://sketchucation.com/forums/viewtopic.php?f=323&t=45254
                    scaleGroupFloat_dj Ver 1.6.5
                    Copyright Feb 15, 2013
                    DukeJazz: by James Cochran

                    @unknownuser said:

                    I want to load these files onto a new file 'room.skp' after rotating and translating these objects in ruby script. Any ideas?

                    1. Another_Sketchup_dj v1.6
                    2. Another_Sketchup_Plus_dj v1.6
                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      MeAd
                      last edited by

                      Thanks Thomas. As you suggested, I used the model.save status to see if it is saved correctly and I found out that it was not. Somehow I saw unintentional character in the command and removed it. Now, everything is working.

                      Now, whenever I run the ruby script from the command line, it automatically save it as .skp. However, every time I run the ruby script, it opens a new SketchUp GUI, which i am not fond of since I am creating many models. My very last question, is it possible to perform the task without opening any SketchUp GUI?

                      Thanks a bunch Thomas.

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        MeAd
                        last edited by

                        Thank you all for your help. 👍 👍

                        1 Reply Last reply Reply Quote 0
                        • 1 / 1
                        • First post
                          Last post
                        Buy SketchPlus
                        Buy SUbD
                        Buy WrapR
                        Buy eBook
                        Buy Modelur
                        Buy Vertex Tools
                        Buy SketchCuisine
                        Buy FormFonts

                        Advertisement