sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Refresh plugins without restart Sketchup is possible??

    Scheduled Pinned Locked Moved Developers' Forum
    13 Posts 5 Posters 1.6k Views 5 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.
    • D Offline
      davidsuke
      last edited by

      @remus said:

      if you go to the ruby console and type load "pluginname.rb" your plugin will be refreshed.

      Hey man, thanks!!! It works!! But i have a little problem now, everytime I do this, in the menu of plugin appears a new plugin. If I do 3 times load "house.rb" then I have 3 House in the menu plugins, that's normal??

      In my ruby I have the next line, maybe it's wrong.

      
      UI.menu("PlugIns").add_item("house") {main}
      
      1 Reply Last reply Reply Quote 0
      • Chris FullmerC Offline
        Chris Fullmer
        last edited by

        Take a look at how box.rb in the plugins\examples folder loads itself into the menu. It starts on line 100.

        Also important to note is that it calls a method file_loaded at the very end of the script. That method is in the sketchup.rb file, so must put in a require 'sketchup.rb' at the top of your script so it can correctly call that method. You can look at the sketchup.rb file to see what goes on when that method is called.

        But the idea is that you check to see if your file is already loaded. If it is loaded, then it does not add itself to the menu system again. But if it is not loaded, then it will add itself to the menu.

        Chris

        Lately you've been tan, suspicious for the winter.
        All my Plugins I've written

        1 Reply Last reply Reply Quote 0
        • Chris FullmerC Offline
          Chris Fullmer
          last edited by

          Also, instead of manually typing in the file name in file_loaded("box.rb"), you can use file_loaded(__FILE__). FILE is a (please Jim or someone correct me if I get the object name wrong) is a constant that holds the name of the current ruby file.

          That is nice because it is easier to copy and paste between scripts, and you don't have to change anything if you rename your script after a few versions.

          Chris

          Lately you've been tan, suspicious for the winter.
          All my Plugins I've written

          1 Reply Last reply Reply Quote 0
          • D Offline
            davidsuke
            last edited by

            Thanks!! I got it! like box.rb 😉

            
            if( not file_loaded?("House.rb") )
            UI.menu("PlugIns").add_item("Make house") {main}
            end
            file_loaded("House.rb")
            
            

            and I tried with FILE and works too!

            1 Reply Last reply Reply Quote 0
            • R Offline
              RickW
              last edited by

              Also, you can use "unless" instead of "if not", and a bit of restructuring gives you

              unless file_loaded?(__FILE__)
                 file_loaded(__FILE__)
                 #do your stuff here
              end
              

              Though it's not a big deal, it eliminates any unnecessary calls to file_loaded()

              RickW
              [www.smustard.com](http://www.smustard.com)

              1 Reply Last reply Reply Quote 0
              • D Offline
                davidsuke
                last edited by

                Thanks man!!

                And it's possible creat a plugin which reloads all the plugins in the directory plugins or the plugins you write in this plugin??

                I mean a plugin which per example do this. "load "House.rb", like this we can reload all the plugins without write load"xxx.rb" in the ruby console.

                1 Reply Last reply Reply Quote 0
                • Chris FullmerC Offline
                  Chris Fullmer
                  last edited by

                  Yes, you could create a toolbar that reloads your script you are developing. That way, just click the icon you made and it will run the load myruby.rb command.

                  Have you looked into Jims webconsole? I find it to be a very handy tool. I write most of my code in it. It lets you actually write code within sketchup and just pres execute and it will run. No need to make a menu system for it at first. I generally wait until its all running smoothly then copy it over to notepad++ to add my menus and copyright info, etc.

                  Chris

                  Lately you've been tan, suspicious for the winter.
                  All my Plugins I've written

                  1 Reply Last reply Reply Quote 0
                  • D Offline
                    davidsuke
                    last edited by

                    It is a excellent tool!! Only one bad thing, no syntax highlighting, but it's great!!

                    Thanks for the advice!!

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      pecan
                      last edited by

                      @davidsuke said:

                      It is a excellent tool!! Only one bad thing, no syntax highlighting, but it's great!!

                      Thanks for the advice!!

                      If you want syntax highlighting you can use the editor here.

                      http://www.sketchucation.com/forums/scf/viewtopic.php?f=180&t=18130#p146440
                      [plugin] SuRDebug

                      1 Reply Last reply Reply Quote 0
                      • D Offline
                        davidsuke
                        last edited by

                        @pecan said:

                        @davidsuke said:

                        It is a excellent tool!! Only one bad thing, no syntax highlighting, but it's great!!

                        Thanks for the advice!!

                        If you want syntax highlighting you can use the editor here.

                        http://www.sketchucation.com/forums/scf/viewtopic.php?f=180&t=18130#p146440
                        [plugin] SuRDebug

                        That's good, and it have auto-indent too??

                        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