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

    Will NOT scramble ??

    Scheduled Pinned Locked Moved Developers' Forum
    44 Posts 4 Posters 1.5k 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.
    • TIGT Offline
      TIG Moderator
      last edited by

      You only need to call
      require 'sketchup.rb'
      once in a session [it might have been called earlier by another script anyway],
      do should that in your 'loading' .rb file that makes the 'extension'.
      Then you can omit it from the .rbs because it's already loaded...
      OR alternatively try to use
      Sketchup::require 'xxx'
      inside a compiled script, which should work...

      TIG

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

        The scrambler is not a prototype.
        It started as @Last's then taken over by Google...
        So it has been around for many years, but it has always had such issues...
        But then a few simple ground-rules when devising the set up of your code avoids them.

        I don't understand your antipathy 😕

        Either work with what you've been given [taking into account the advice we give freely and kindly], or forget about scrambling things altogether until you are really 'up to steam' on Ruby scripting with the API, OR if you have the ability then write a better scrambler and explain to us how to use it !

        TIG

        1 Reply Last reply Reply Quote 0
        • K Offline
          ksor
          last edited by

          @tig said:

          You only need to call
          require 'sketchup.rb'
          once in a session [it might have been called earlier by another script anyway],
          do should that in your 'loading' .rb file that makes the 'extension'.
          Then you can omit it from the .rbs because it's already loaded...
          OR alternatively try to use
          Sketchup::require 'xxx'
          inside a compiled script, which should work...

          ?????

          Ha, ha just a new smokescreen ....

          Whether or not I have the "require 'sketchup.rb'" is not the point - and it has NO difference on the problem !

          The point is if the scrambler IS a prototype or NOT ... and you have not a single word about it 😒 !

          I remember to have read somewhere in this forum, that it maybe would be a good idea to write a better scrambler .... I would add: maybe a better interpretor too - not to mention an editor with some intellisence .... that would be really nice.

          There is much too much 'really low level' debugging going on in what should be a high level language.

          .... but take Ruby as it is or leave it !

          Best regards
          KSor, Denmark
          Skype: keldsor

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

            If you make an extension, using SketchupExtension, which loads a .rbs file you'll get namespace trouble.

            Say you have a plugin written in module FooBar stored a .rbs loaded via SketchupExtension then it will beloaded into SketchupExtension::FooBar instead of the expected root namespace. I seems that SketchupExtension eval into its own namespace. I ran into that problem with Vertex Tools - and because of that had to make an unscrambled proxy loader to ensure everything came into the correct namespace.

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

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

              @ksor said:

              The "A" never comes up 😠 😠 😠 - maybe the scrambler IS a prototype - then just say it then.

              So when you do tried Polley.new nothing happened - no error at all?

              Your example didn't include anything about how you tested it - maybe there is something there.

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

              1 Reply Last reply Reply Quote 0
              • K Offline
                ksor
                last edited by

                @thomthom said:

                @ksor said:

                The "A" never comes up 😠 😠 😠 - maybe the scrambler IS a prototype - then just say it then.

                So when you do tried Polley.new nothing happened - no error at all?

                Your example didn't include anything about how you tested it - maybe there is something there.

                I just did the same as with the .rb file - just clicked in the menu: when run by .rb the "A" comes up, when run as .rbs nothing happens - no error, nothing at all.

                I never used so much time on so little code with so little outcome - it feels like just killing time !

                Best regards
                KSor, Denmark
                Skype: keldsor

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

                  @ksor said:

                  I just did the same as with the .rb file - just clicked in the menu: when run by .rb the "A" comes up, when run as .rbs nothing happens - no error, nothing at all.

                  There is something else going on. I tried that Polley snippet you posted - scrambled it. Loaded the .rbs and wrote in the console: x=Polley.new
                  The messagebox popped up.

                  Did you try exactly that small snippet yourself - or did you extract it from your main code? Sounds like your issues lies with the construct of your plugin.

                  Since you don't get any messagebox, nor any errors when it should pop up it sound like something is overriding the initialize method.
                  (Remember you cannot reload a .rbs - you must restart SketchUp to see any changes.)

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

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    ksor
                    last edited by

                    @thomthom said:

                    @ksor said:

                    I just did the same as with the .rb file - just clicked in the menu: when run by .rb the "A" comes up, when run as .rbs nothing happens - no error, nothing at all.

                    There is something else going on. I tried that Polley snippet you posted - scrambled it. Loaded the .rbs and wrote in the console: x=Polley.new
                    The messagebox popped up.

                    Did you try exactly that small snippet yourself - or did you extract it from your main code? Sounds like your issues lies with the construct of your plugin.

                    Since you don't get any messagebox, nor any errors when it should pop up it sound like something is overriding the initialize method.
                    (Remember you cannot reload a .rbs - you must restart SketchUp to see any changes.)

                    I did EXACTLY that snippet af code - and I start SketchUp from scratch each time I do some tests.

                    I start it as an extension as recommended and this primary code is here:

                    require 'sketchup.rb'
                    require 'extensions.rb'
                    
                    filename=File.basename(__FILE__)
                    if(not file_loaded?(filename))
                        UI.menu("Plugins").add_item("Remskive") { Sketchup.active_model.select_tool Polley.new }
                    end
                    file_loaded(filename)
                      
                    # Create the extension.
                    ext = SketchupExtension.new 'Remskive', 'Remskive/Remskive_LOADER'
                    
                    # Attach some nice info.
                    ext.creator     = 'Keld Sørensen, Danmark'
                    ext.version     = '1.0.0'
                    ext.copyright   = '2012..., Keld Sørensen'
                    ext.description = 'Visit my website; http://kelds.weebly.com/udvidelser.html'
                    
                    # Register and load the extension on startup.
                    Sketchup.register_extension ext, true
                      
                    
                    
                    

                    Best regards
                    KSor, Denmark
                    Skype: keldsor

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

                      @ksor said:

                      I did EXACTLY that snippet af code - and I start SketchUp from scratch each time I do some tests.

                      I start it as an extension as recommended and this primary code is here:

                      Did you read my previous comment about namespace and loading scrambled files via SketchupExtension?

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

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

                        On a sidenote - it can be confusing for the user if the menus are always there - regardless if the extension is loaded. And it'd defeat the purpose of using the extension. Menus should be loaded by the script that SketchupExtension loads.

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

                        1 Reply Last reply Reply Quote 0
                        • K Offline
                          ksor
                          last edited by

                          @thomthom said:

                          On a sidenote - it can be confusing for the user if the menus are always there - regardless if the extension is loaded. And it'd defeat the purpose of using the extension. Menus should be loaded by the script that SketchupExtension loads.

                          ????
                          Maybe I misunderstands you - english isn't my first language 😄 - but isn't exactly the opposit of what TIG told me to do ?

                          Best regards
                          KSor, Denmark
                          Skype: keldsor

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

                            @ksor said:

                            @thomthom said:

                            On a sidenote - it can be confusing for the user if the menus are always there - regardless if the extension is loaded. And it'd defeat the purpose of using the extension. Menus should be loaded by the script that SketchupExtension loads.

                            ????
                            Maybe I misunderstands you - english isn't my first language 😄 - but isn't exactly the opposit of what TIG told me to do ?

                            Not quite.

                            The general structure is:

                            Plugins/plugin.rb
                            Defines the SketchupExtension and maybe some constants containing the path of the plugin which the scrambled files can later use.
                            The extension loads Plugins/MyPlugin/loader.rb

                            Plugins/MyPlugin/loader.rb
                            Loads the rest of the .rbs files. You can define the menus here as well.
                            This proxy unscrambled .rbs file ensures that the content of the rbs files doesn't end up under the SketchupExtension namespace.
                            Putting the menus there also ensures they are not cluttering the UI while the extension is disabled.

                            If the .rbs files need to address the path where the plugin is located they would then refer to the path constant previously defined - withing your own namespace of course.

                            Was that outline somewhat clear?


                            Engelsk er ikke mitt første språk heller. 😉 (Men jeg bodde der i fire år...)

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

                            1 Reply Last reply Reply Quote 0
                            • K Offline
                              ksor
                              last edited by

                              thomthom

                              I think so - but how to implement it if it should NOT be done like I did BEFORE and AFTER TIG made me move my menu settings from/to the primary .rb-file - do you have some sample code ?

                              Best regards
                              KSor, Denmark
                              Skype: keldsor

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

                                Plugins/foobar.rb

                                <span class="syntaxdefault">require </span><span class="syntaxstring">'sketchup.rb'<br /></span><span class="syntaxdefault">require </span><span class="syntaxstring">'extensions.rb'<br /><br /><br /></span><span class="syntaxdefault">module Author<br />  module PluginName<br />  <br />  </span><span class="syntaxcomment"># Constants<br /></span><span class="syntaxdefault">  PATH </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> __FILE__ </span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PluginSupportFolder'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">).</span><span class="syntaxdefault">freeze<br />  <br />  </span><span class="syntaxcomment"># Extension<br /></span><span class="syntaxdefault">  loader </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'loader.rb'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  ex </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> SketchupExtension</span><span class="syntaxkeyword">.new(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Hello Scrambled World'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> loader </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">description </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Lorem Ipsum"<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">version </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'1.0.0'<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">copyright </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'John Smith © 2012'<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">creator </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'John Smith (john@example.com)'<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">register_extension</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> ex</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">  end </span><span class="syntaxcomment"># module PluginName<br /></span><span class="syntaxdefault">end </span><span class="syntaxcomment"># module Author  &nbsp;</span><span class="syntaxdefault"></span>
                                

                                Plugins/PluginSupportFolder/loader.rb

                                <span class="syntaxdefault">require </span><span class="syntaxstring">'sketchup.rb'<br /><br /><br /></span><span class="syntaxdefault">module Author<br />  module PluginName<br />  <br />  </span><span class="syntaxcomment"># Menus and Toolbars<br /></span><span class="syntaxdefault">  unless file_loaded</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">basename</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    m </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Plugins'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    m</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">...</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  end<br />  <br />  </span><span class="syntaxcomment"># Load the rest of the files - which might be scrambled.<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">;;require(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'file1'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">;;require(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'file2'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">;;require(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'file3'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">  end </span><span class="syntaxcomment"># module PluginName<br /></span><span class="syntaxdefault">end </span><span class="syntaxcomment"># module Author<br /><br /></span><span class="syntaxdefault">file_loaded</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">basename</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span>
                                

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

                                1 Reply Last reply Reply Quote 0
                                • K Offline
                                  ksor
                                  last edited by

                                  Thx - thomthom, I'll study the code carefully !

                                  Best regards
                                  KSor, Denmark
                                  Skype: keldsor

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

                                    @ksor said:

                                    @tig said:

                                    The Ruby __FILE__ won't work inside a compiled .rbs file, so that's probably breaking it.

                                    Something is not right here - you say the " __FILE__" won't wotk in .rbs files - NOT TRUE !

                                    [removed 2 code samples - #1 loads OK then #2 does not work after #1 loads]

                                    ... i can't see the principal difference: Can someone pleace tell me why ?

                                    SIMPLE ANSWER (TIG said this, but not so basic...)

                                    In RBS file #1: __FILE__ returns "(eval)" and file_loaded() pushes it onto the $loaded_files array.

                                    When RBS file #2 loads: It uses file_loaded?() to check the $loaded_files array for the value of __FILE__ (which during evaluation of a scrambled script == "(eval)",) AND the value is already found in the array,

                                    .. SO those conditional blocks for ANY RBS file, that you load AFTER file #1, will not create the menu items.

                                    I'm not here much anymore.

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

                                      On MS Windows...

                                      You can scramble files from the GUI without opening a cmd shell.

                                      Just drag and drop an rb file (from Explorer window 1,) ONTO scrambler.exe (in another Explorer window.)

                                      .. and the rbs file will be put in the original folder with it's rb file.

                                      This may also work with a shortcut icon for scrambler.exe ??

                                      • This works great on XP, Windows 6+ users need to have write permissions the destination folder.

                                      I'm not here much anymore.

                                      1 Reply Last reply Reply Quote 0
                                      • K Offline
                                        ksor
                                        last edited by

                                        @dan rathbun said:

                                        On MS Windows...

                                        You can scramble files from the GUI without opening a cmd shell.

                                        Just drag and drop an rb file (from Explorer window 1,) ONTO scrambler.exe (in another Explorer window.)

                                        .. and the rbs file will be put in the original folder with it's rb file.

                                        This may also work with a shortcut icon for scrambler.exe ??

                                        • This works great on XP, Windows 6+ users need to have write permissions the destination folder.

                                        Oh ... Dan, that was a good one - thx !

                                        I'll implement it right away !

                                        Best regards
                                        KSor, Denmark
                                        Skype: keldsor

                                        1 Reply Last reply Reply Quote 0
                                        • K Offline
                                          ksor
                                          last edited by

                                          @dan rathbun said:

                                          This may also work with a shortcut icon for scrambler.exe ??

                                          It WORKS fine with the shortcut too - really great Dan !

                                          Best regards
                                          KSor, Denmark
                                          Skype: keldsor

                                          1 Reply Last reply Reply Quote 0
                                          • K Offline
                                            ksor
                                            last edited by

                                            @thomthom said:

                                            Plugins/foobar.rb

                                            <span class="syntaxdefault">require </span><span class="syntaxstring">'sketchup.rb'<br /></span><span class="syntaxdefault">require </span><span class="syntaxstring">'extensions.rb'<br /><br /><br /></span><span class="syntaxdefault">module Author<br />  module PluginName<br />  <br />  </span><span class="syntaxcomment"># Constants<br /></span><span class="syntaxdefault">  PATH </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">dirname</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> __FILE__ </span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> </span><span class="syntaxstring">'PluginSupportFolder'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">).</span><span class="syntaxdefault">freeze<br />  <br />  </span><span class="syntaxcomment"># Extension<br /></span><span class="syntaxdefault">  loader </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'loader.rb'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  ex </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> SketchupExtension</span><span class="syntaxkeyword">.new(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Hello Scrambled World'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> loader </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">description </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Lorem Ipsum"<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">version </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'1.0.0'<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">copyright </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'John Smith © 2012'<br /></span><span class="syntaxdefault">  ex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">creator </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'John Smith (john@example.com)'<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">register_extension</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> ex</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> true </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">  end </span><span class="syntaxcomment"># module PluginName<br /></span><span class="syntaxdefault">end </span><span class="syntaxcomment"># module Author     &nbsp;</span><span class="syntaxdefault"></span>
                                            

                                            Plugins/PluginSupportFolder/loader.rb

                                            <span class="syntaxdefault">require </span><span class="syntaxstring">'sketchup.rb'<br /><br /><br /></span><span class="syntaxdefault">module Author<br />  module PluginName<br />  <br />  </span><span class="syntaxcomment"># Menus and Toolbars<br /></span><span class="syntaxdefault">  unless file_loaded</span><span class="syntaxkeyword">?(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">basename</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    m </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Plugins'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    m</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">...</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  end<br />  <br />  </span><span class="syntaxcomment"># Load the rest of the files - which might be scrambled.<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">;;require(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'file1'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">;;require(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'file2'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  Sketchup</span><span class="syntaxkeyword">;;require(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">join</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">PATH</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'file3'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /><br /></span><span class="syntaxdefault">  end </span><span class="syntaxcomment"># module PluginName<br /></span><span class="syntaxdefault">end </span><span class="syntaxcomment"># module Author<br /><br /></span><span class="syntaxdefault">file_loaded</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> File</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">basename</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__FILE__</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span>
                                            

                                            Sorry, but I still don't understand - are the two code samples two alternatives or ONE way to do WHAT ?

                                            In the second code you have "PluginName" - what is that compared to the items under the Plugin menu ?
                                            and what is it compared to the "the rest of the files" ... file1, file2 and file 3 ?

                                            How are the folder structure - should ALL my .rb and .rbs files be store in the PluginSupportFolder ?

                                            Are "loader.rb" a peace of code that load ALL my plugins under the menu "Plugins" or .. ?

                                            Please give me some overview of the structure.

                                            I get this error message when running SketchUp:

                                            Error Loading File C:/Program Files/Google/Google SketchUp 8/Plugins/PluginSupportFolder/loader.rb
                                            tried to create Proc object without a blockError Loading File Foobar.rb
                                            tried to create Proc object without a block

                                            Best regards
                                            KSor, Denmark
                                            Skype: keldsor

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

                                            Advertisement