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!
    🛣️ Road Profile Builder | Generate roads, curbs and pavements easily Download

    Open dialog box

    Scheduled Pinned Locked Moved Developers' Forum
    6 Posts 4 Posters 367 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.
    • S Offline
      sandbox_4
      last edited by

      Hello,

      I need a ruby function to call the open dialog box and then load the selected skp file.
      I tried with UI open panel function but it doesnt load the selected skp file.
      I just need to open skp files.

      Thank You

      1 Reply Last reply Reply Quote 0
      • TIGT Offline
        TIG Moderator
        last edited by

        Try something like this

        skp = UI.openpanel("SKP?", "", "*.skp")
        return nil unless skp
        if ! File.extname(skp).downcase == ".skp"
          UI.messagebox("Choose a SKP file !")
          return nil
        end
        UI.openURL("file;///#{skp.tr("\\","/")}")
        

        TIG

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

          or this one-liner:

          Sketchup.send_action( "openDocument:" )

          💭

          I'm not here much anymore.

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

            But if you want the model inserted into the current model (called an import😞

            skp = UI.openpanel("Choose model to import", "*.skp")
            status = Sketchup.active_model.import( skp ) if skp
            

            On Windows if you use only 2 arguments, and the 2nd is just "*." and extension, then Windows uses the User's Most Recent path for that extension that is automatically saved in the registry.

            I'm not here much anymore.

            1 Reply Last reply Reply Quote 0
            • TIGT Offline
              TIG Moderator
              last edited by

              The alternative to tt's methods to ' open' a SKP is my UI.openURL("file:///#{path}") - which I posted earlier - that will always open the chosen SKP in a new SketchUp window - if desired, because on a PC the tt code Sketchup.open_file(path) will open the chosen SKP in the current SketchUp window... unlike a MAC - which I think uses a new window for every SKP it opens ? ...
              Please note that it's NOT .openfile(), but .open_file()... typo! 😒

              TIG

              1 Reply Last reply Reply Quote 0
              • tt_suT Offline
                tt_su
                last edited by

                To open it as you would via File > Open:

                <span class="syntaxdefault">skp_file </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">openpanel</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Choose model to import'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'*.skp'</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">open_file</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">skp_file</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span>
                

                To load it as a component and let the user position it:

                <span class="syntaxdefault">skp_file </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">openpanel</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Choose model to import'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'*.skp'</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">unless skp_file</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">nil</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  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">  model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">place_component</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">definition</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">end</span>
                

                To load it as a component and insert at ORIGIN:

                <span class="syntaxdefault">skp_file </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">openpanel</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'Choose model to import'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'*.skp'</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">unless skp_file</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">nil</span><span class="syntaxkeyword">?<br /></span><span class="syntaxdefault">  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">.new<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">end</span>
                
                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