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

    [Plugin] Solids Penetration Check

    Scheduled Pinned Locked Moved Plugins
    23 Posts 7 Posters 13.5k 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.
    • K Offline
      kyyu
      last edited by

      @voljanko said:

      Please help me find the solution for this bug:
      -when one solid is a subcomponent and a subgroup in a component, the plugin can't find the penetration.
      I know the problem is in line 132 def1=solid1.entities.parent ,but don't know what to do about it.
      Thanks

      You probably have more experience playing with components, than me. 😛 But what I can see is, there is no need to blame sub(groups or components), yet. Your plugin doesn't even work for two simple intersecting components. "def1=solid1.entities.parent" finds the definition of groups, not components. Component instances don't have the method for "entities". It's the component definition that has that method. That's why the error message saids undefine method. It should be something like "def1 = componentInstance.definition" for components.

      Also, another strange thing(bug?) I see is when you have (group or component) inside a (group or component), I get a volume of "-1.0"

      1 Reply Last reply Reply Quote 0
      • voljankoV Offline
        voljanko
        last edited by

        Ups,I was sure that tested with components.Now it is ok and updated for download.
        Now the code indentation is properly aligned so perhaps readable 😄

        You wrote :"Also, another strange thing(bug?) I see is when you have (group or component) inside a (group or component), I get a volume of "-1.0"

        Sketchup assign the volume to -1 when the item is not a solid.If you mean something related to my plugin,please explain more.

        You wrote:"That's why the error message saids undefined method."

        How do you get this message?Hod do you debug? Im only using message boxes to debug.

        SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

        1 Reply Last reply Reply Quote 0
        • voljankoV Offline
          voljanko
          last edited by

          Please help me find the solution for this bug:
          -when one solid is a subcomponent and a subgroup in a component, the plugin can't find the penetration.
          I know the problem is in line 132 def1=solid1.entities.parent ,but don't know what to do about it.
          Thanks

          EDIT:SOLVED


          checkSolids.skp

          SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

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

            @voljanko said:

            Sketchup assign the volume to -1 when the item is not a solid.If you mean something related to my plugin,please explain more.

            No, I just mention it just in case you didn't know about it. Components are hard for me to follow, so I just briefly looked through your code to learn more. At 1st, I was thinking this was causing your bug. But then figured out the error message.

            @voljanko said:

            You wrote:"That's why the error message saids undefined method."

            How do you get this message?Hod do you debug? Im only using message boxes to debug.

            Error messages are printed out in the Ruby Console. See picture of one way I debug, by running small snippets of code with Jim Foltz's "Web Console" plugin. Jim also has a "Ruby Toolbar" plugin, that lets you reload your plugin. But I think you need to add a check for if the plugin has been installed previously, or you will get multiple menu items.

            require 'sketchup.rb'
            
            if( not file_loaded?('solids_penetration_check.rb') )
            	plugins_menu = UI.menu("Tools")
            	plugins_menu.add_item("Solids Penetration Check") { penetrationcheck }
            end
            file_loaded 'solids_penetration_check.rb'
            

            Where to find SU error messages.png

            1 Reply Last reply Reply Quote 0
            • voljankoV Offline
              voljanko
              last edited by

              Thank you thomthom for your suggestions.
              I have test the plugin on a model with 31 solids organised in many subgroups and it takes 40 seconds to
              find 10 "penetrations".So it is slow and need some speed-up like you suggest.

              SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

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

                Any way to get this to Intersect With Model to make bright orange(selectable color) lines to check all the other geometry that is NOT solids?

                Richard

                1 Reply Last reply Reply Quote 0
                • voljankoV Offline
                  voljanko
                  last edited by

                  Yes,there is a way,why are you asking 😄
                  Anyway,if you want to find the mistakes,that makes your group a non-solid,there is another plugin - Solid Inspector from thomthom.

                  SuSolid.com - solid check - solid repair- solid intersection check - weight plugin

                  1 Reply Last reply Reply Quote 0
                  • G Offline
                    glro
                    last edited by

                    is the plugin able to check intersections between solids when they are part of components?
                    i checked, and it doesn't seem so

                    the connections are solids, intersection is detected when they are outside the component, and not when theyare inside

                    is there a way to solve the problem?


                    bracing connection intersection

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

                      @voljanko said:

                      Yes,there is a way,why are you asking 😄
                      Anyway,if you want to find the mistakes,that makes your group a non-solid,there is another plugin - Solid Inspector from thomthom.

                      I don't draw with solids. Need a tool to check all the other things I draw to look for possible overlap conflicts between components, groups etc. 'Tile components' "intersecting" 'cabinet components' for instance...

                      Richard

                      1 Reply Last reply Reply Quote 0
                      • G Offline
                        glro
                        last edited by

                        @voljanko said:

                        Please help me find the solution for this bug:
                        -when one solid is a subcomponent and a subgroup in a component, the plugin can't find the penetration.
                        I know the problem is in line 132 def1=solid1.entities.parent ,but don't know what to do about it.
                        Thanks

                        EDIT:SOLVED

                        i cannot help you concerning the ruby programming, but i tried your plugin on the model included in your post, and it worked perfectly; event when i made a component from the component and the group

                        i tried it also on the file included; components with solids inside, it worked, but in a strange way; i would like to know which are the components that interfere, but the information vanishes when the program stops...


                        where are the components that intersect?


                        penetration detected

                        1 Reply Last reply Reply Quote 0
                        • M Offline
                          Matt666
                          last edited by

                          Aaaar it does not work with free versions... Can you do something?

                          @unknownuser said:

                          Error: #<ArgumentError: 'intersect' is a Pro only feature.>
                          C:/Program Files/Google/Google SketchUp 8/Plugins/solids_penetration_check.rb:141:in intersect' C:/Program Files/Google/Google SketchUp 8/Plugins/solids_penetration_check.rb:141:in check_penetrations'
                          C:/Program Files/Google/Google SketchUp 8/Plugins/solids_penetration_check.rb:32:in activate' C:/Program Files/Google/Google SketchUp 8/Plugins/solids_penetration_check.rb:159:in select_tool'
                          C:/Program Files/Google/Google SketchUp 8/Plugins/solids_penetration_check.rb:159:in `penetrationcheck'
                          C:/Program Files/Google/Google SketchUp 8/Plugins/solids_penetration_check.rb:13

                          Frenglish at its best !
                          My scripts

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

                          Advertisement