sketchucation logo sketchucation
    • Login
    πŸ›£οΈ Road Profile Builder | Generate roads, curbs and pavements easily Download

    Quick Selection

    Scheduled Pinned Locked Moved Plugins
    15 Posts 7 Posters 891 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.
    • BoxB Offline
      Box
      last edited by

      Tig posted a fix for some of Didier's plugins, it may work for this one too.

      @unknownuser said:

      Didier needs to rework his rb file for v2014 compatibility and republish it...

      BUT you can do it temporarily for your own use, even though his script is 'packed'.
      Open the file lines2tubes.rb in Notepad, and go to the end:
      Change
      ...}.unpack("m").to_s
      to read
      ...}.unpack("m")[0]
      Save the changes.
      Restart SketchUp.

      The script will then load and work in v2014 !

      This simple fix can be applied to any of Didier's 'packed' scripts that aren't working in v2014.

      These edited scripts will also load and work in earlier SketchUp versions too... πŸ€“

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

        thankyou, that worked for me !

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

          Hi,

          All worked for a while in 2014, but in 2015 and last updated version 2014, I get this error when trying to use the quick selection tool...

          "Starting quick selection...
          Parsing objects with option: All visible objects
          Error: #<NameError: uninitialized constant Set>
          (eval):63:in build_searchable_entities' (eval):495:in quick_selection'
          (eval):691:in qs' (eval):710:in block in <top (required)>'
          -e:1:in `call'"

          any ideas please ?

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

            @paddyclown said:

            Error: #<NameError: uninitialized constant Set>

            Sketchup removed Set it now users Sketchup::Set

            you could add

            require('set')
            

            at the top of the script...

            it may then work, otherwise it needs a proper fix...
            john

            learn from the mistakes of others, you may not live long enough to make them all yourself...

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

              John, Thanks for the idea... it just made SU bugsplat on start... so i undid the change in order to work; I guess we just have to hope D Bur has a moment to update this plugin which was brilliant !

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

                You can replace all occurrences in the script from Set.new with Sketchup::Set.new

                Hi

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

                  Jim,
                  Thankyou ! BingoBongo it works !
                  best,

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

                    @driven said:

                    would it not be better to do a search and replace changing Set to Sketchup::Set in the script...

                    Yes.

                    I edited my example to remove the code snippet - it's a very bad idea.

                    Hi

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

                      @driven said:

                      @jim said:

                      This should work.

                      
                      > > if defined?(Sketchup;;Set)
                      > >   Set = Sketchup;;Set
                      > > end
                      > > 
                      

                      I was going to suggest that, but what happens if another ruby has already used require 'set'?

                      would it not be better to do a search and replace changing Set to Sketchup::Set in the script...
                      john

                      That shim should be done in the extension namespace - then it's all fine. It should NOT be done in the global namespace as that will clash.

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

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

                        I edited my snippet - it was a bad example without the namespace.

                        Better to just find and replace Set.new with Sketchup::Set.new

                        Hi

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

                          @jim said:

                          This should work.

                          
                          > Edit; removed Jim's example
                          > 
                          

                          I was going to suggest that, but what happens if another ruby has already used require 'set'?

                          would it not be better to do a search and replace changing Set to Sketchup::Set in the script...
                          john

                          learn from the mistakes of others, you may not live long enough to make them all yourself...

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

                            The easiest fix for Ruby 2 and higher, is to use a refinement that only that file can "see" and use.
                            I inserted the following at the top of the file (after deleting the Set reassignment):

                            require 'set'
                            
                            # Create a refinement for the Set class:
                            module DBUR
                              module RefinedSet
                                refine ::Set do
                                  alias :insert :add
                                  alias :contains? :include?
                                end
                              end
                            end
                            
                            # Use the refinement:
                            using DBUR::RefinedSet
                            

                            By request from @paddyclown, here is the "fixed" file.
                            It still needs a drastic overhaul, but this will get it working (fingers crossed):

                            DBUR_QuickSelection.rb

                            @Didier-Bur ping (I do not know how to send this by PM in this new forum interface.)

                            I'm not here much anymore.

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

                            Advertisement