sketchucation logo sketchucation
    • Login
    πŸ€‘ SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

    Exit/Shutdown SU 7 ??

    Scheduled Pinned Locked Moved Developers' Forum
    14 Posts 7 Posters 3.0k Views 7 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.
    • H Offline
      HPW
      last edited by

      Can I shutdown/exit SU 7 with ruby?

      How?

      1 Reply Last reply Reply Quote 0
      • J Offline
        Jim
        last edited by

        Not directly, but you might be able to make a system call that could shut it down.

        Hi

        1 Reply Last reply Reply Quote 0
        • H Offline
          HPW
          last edited by

          After some googling I found a post with the same problem:

          http://groups.google.com/group/Ruby-API/browse_thread/thread/227bae3cdb6f84a3

          I still wonder that such a big API still miss such basic things.
          Automating Autocad is still much easier.

          1 Reply Last reply Reply Quote 0
          • H Offline
            HPW
            last edited by

            I tried the API-call from that link.
            But unfourtunatly it does not work from a ruby loaded on startup.
            When I type it from the Console after startup it closes SU.

            1 Reply Last reply Reply Quote 0
            • H Offline
              HPW
              last edited by

              After the problem with the Win32Api-code I searched further and found:

              Link Preview Image
              Automating Applications with Ruby & The Windows Script Host

              We've talked at length about automating Windows applications through COM/OLE, using the win32ole library. But not all applications expose t...

              favicon

              (rubyonwindows.blogspot.com)

              
              require 'win32ole'
              wsh = WIN32OLE.new('Wscript.Shell')
              if wsh.AppActivate(skpbasename+".skp - SketchUp")
                wsh.SendKeys('%{F4}')
              end
              
              

              This works for me now.

              1 Reply Last reply Reply Quote 0
              • BurkhardB Offline
                Burkhard
                last edited by

                We have a lot of Bugsplat possiblities to close SU7. ie. it could be easier to create a ruby which select all same materials, set Podium reflection at once. Sketchup closes immediately. πŸ˜‰

                [http://www.ia-plus.de(http://www.ia-plus.de)]

                1 Reply Last reply Reply Quote 0
                • A Offline
                  AlexMozg
                  last edited by

                  @hpw said:

                  Can I shutdown/exit SU 7 with ruby?
                  How?

                  
                  def Sketchup;;exit
                      model = Sketchup.active_model
                      model.save "temp_model.tmp" if model.modified?
                      Sketchup.send_action 57602
                  end#def
                  
                  

                  Model doezn't realy save.
                  πŸ˜„

                  1 Reply Last reply Reply Quote 0
                  • W Offline
                    wikii
                    last edited by

                    Following ruby code works PC.

                    
                    system("taskkill /im sketchup.exe /f")
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • H Offline
                      HPW
                      last edited by

                      @unknownuser said:

                      Sketchup.send_action 57602

                      Undocumented feature but it works.

                      The doc shows:
                      21560 and up: causes a runtime Error

                      So is it official and where do you find such things?

                      @unknownuser said:

                      system("taskkill /im sketchup.exe /f")

                      Works but shows a cmd-window and is slower.

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

                        @hpw said:

                        @unknownuser said:

                        system("taskkill /im sketchup.exe /f")

                        Works but shows a cmd-window and is slower.

                        hmm.... what if you have other SU windows open at that time.. kills them too?

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

                        1 Reply Last reply Reply Quote 0
                        • H Offline
                          HPW
                          last edited by

                          Another point to use one of the other methods.
                          For now I will go for the Sketchup.send_action which seems to be the best/smallest option.

                          1 Reply Last reply Reply Quote 0
                          • H Offline
                            HPW
                            last edited by

                            I revert back to the:

                            wsh.SendKeys('%{F4}')

                            because:

                            Sketchup.send_action 57602

                            immidiatly shut down SU even when the save-process is not finished.
                            So its get not saved.

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

                              [code] Sketchup Safe Shutdown method
                              http://forums.sketchucation.com/viewtopic.php?f=180&t=29162&p=254022#p254022

                              cross-platform and safe.

                              I'm not here much anymore.

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

                                @alexmozg said:

                                
                                > def Sketchup;;exit
                                >     model = Sketchup.active_model
                                >     model.save "temp_model.tmp" if model.modified?
                                >     Sketchup.send_action 57602
                                > end#def
                                > 
                                

                                Model doezn't realy save.

                                Do NOT use exit as a method name !!!

                                It is already defined as a global method by the Kernel module (and so is inherited by ALL classes and modules.)

                                exit() Initiates the termination of the Ruby script by raising the SystemExit exception. Also runs any at_exit block methods before termination.

                                I'm not here much anymore.

                                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