sketchucation logo sketchucation
    • Login
    ℹ️ GoFundMe | Our friend Gus Robatto needs some help in a challenging time Learn More

    [Plugin] fixSolid v1.7 - updated 20/10/2012

    Scheduled Pinned Locked Moved Plugins
    46 Posts 24 Posters 59.9k Views
    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.
    • G Offline
      GWD
      last edited by GWD

      This Plugin try to fix problems with groups that suppose to be solids but don't show up like a solid in SU.

      fixSolid fix the following problems:
      * heal missing faces
      * remove single edges
      * remove separate faces
      * remove edges between coplanar faces
      * remove innerfaces
      * remove all edges with only 1 face connected (RISKY FIX)

      fixSolid.JPG

      Usage:

      1. Select solid
      2. Right-Click Context-Menu. If the solid is broken the option 'FIX SOLID' is present. If the option isn't present there are no problems with he solid.
      3. Select 'FIX SOLID'
      4. You can set two options:
      • Risky fix: if you choose a risky fix it's possible that a part of the solid wil be deleted. This action can be undone with the normal SU undo function. The risky fix try to fix all problems, the normal fix only fixes problems with no risk.
      • Fix coplanar faces: If you choose no, the edges between coplanar will not be removed.

      [mod=:3vz6630k]%(#FF0040)[**NOTE:
      A newer version [posted under the OP's new login] is available here...**]
      http://sketchucation.com/forums/viewtopic.php?p=436001#p436001
      TIG[/mod:3vz6630k]


      v1.5 NOTE: later versions are now available...

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

        No feedback?

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

          Nice plugin. πŸ‘

          Got a couple of notes:

          1. It's advisable to wrap your plugin into a module and use module variables instead of global variables - this ensures there will be no conflict with other plugins.

          2. Detecting edges between co-planar faces: You are using this: if faces[0].normal == faces[1].normal then
            I used that for CleanUp, but I ran into issues where it's either erase edges between non-coplanar faces or leave some edges that should have been erased in some cases. As it turns out, the correct way - according to the Googler I spoke to - is to take all the vertices of the two faces you compare and check if they all lie on the same plane.

          3. e.typename == "Edge" - .typename is very slow because you do string comparisons. Instead, compare it's class: e.is_a?( SketchUp::Edge )

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

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

            hi Guy,

            I'll give it a try...

            it's good to see another solid/manifold ruby

            over the next week I should get some time to give you feedback, I'm on a mac so sometimes I have varying results to pc's

            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
            • EscapeArtistE Offline
              EscapeArtist
              last edited by

              Looks like a good plugin. Will give it a try as it progresses with TT's suggestions.

              1 Reply Last reply Reply Quote 0
              • V Offline
                vidy
                last edited by

                thanks Guy, for the plugin, but is it only for SU 8?? can not see it in the plugin menu? im using SU 7.1

                regards,

                still so much to learn..

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

                  That's because solids had not been included in SU 7 and are only available since SU 8.

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

                    @pherim said:

                    That's because solids had not been included in SU 7 and are only available since SU 8.

                    Should be able to work anyway. There is not difference in the geometry, it's just that SU8 knows how to recognize solids.

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

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

                      @thomthom said:

                      @pherim said:

                      That's because solids had not been included in SU 7 and are only available since SU 8.

                      Should be able to work anyway. There is not difference in the geometry, it's just that SU8 knows how to recognize solids.

                      The plugin works only on SU 8, because the function i use the check if it's a solid is a new function in v8.

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

                        @thomthom said:

                        Nice plugin. πŸ‘

                        Got a couple of notes:

                        1. It's advisable to wrap your plugin into a module and use module variables instead of global variables - this ensures there will be no conflict with other plugins.

                        2. Detecting edges between co-planar faces: You are using this: if faces[0].normal == faces[1].normal then
                          I used that for CleanUp, but I ran into issues where it's either erase edges between non-coplanar faces or leave some edges that should have been erased in some cases. As it turns out, the correct way - according to the Googler I spoke to - is to take all the vertices of the two faces you compare and check if they all lie on the same plane.

                        3. e.typename == "Edge" - .typename is very slow because you do string comparisons. Instead, compare it's class: e.is_a?( SketchUp::Edge )

                        ThomThom,

                        1. How can i wrap my plugin in a module?
                        2. OK -> v1.4
                        3. I tried to switch .typename == "Edge" but then I get errors, i also can't find info about the .is_a? function?

                        regards,

                        Guy

                        1 Reply Last reply Reply Quote 0
                        • dereiD Offline
                          derei
                          last edited by

                          @unknownuser said:

                          3.can't find info about the .is_a? function?

                          http://ruby-doc.org/core/classes/Object.html#M000373 -first result after search on google πŸ’š

                          DESIGNER AND ARTIST [DEREI.UK](http://derei.uk/l)

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

                            @unknownuser said:

                            1. e.typename == "Edge" - .typename is very slow because you do string comparisons. Instead, compare it's class: e.is_a?( SketchUp::Edge )

                            [/quote]
                            What kind of error and what did you switch to?

                            As for modules:
                            http://ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html
                            http://forums.sketchucation.com/viewtopic.php?f=180&t=12423#p89313

                            Many other useful links in this sticky at the Developers section:
                            http://forums.sketchucation.com/viewtopic.php?f=180&t=10142

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

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

                              @thomthom said:

                              1. e.typename == "Edge" - .typename is very slow because you do string comparisons. Instead, compare it's class: e.is_a?( SketchUp::Edge )

                              What kind of error and what did you switch to?

                              As for modules:
                              http://ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html
                              http://forums.sketchucation.com/viewtopic.php?f=180&t=12423#p89313

                              Many other useful links in this sticky at the Developers section:
                              http://forums.sketchucation.com/viewtopic.php?f=180&t=10142

                              ThomThom,

                              The module works, but when I recplace the .typename with the .is_a? I get the following error:

                              Error: #<NameError: uninitialized constant FixSolids::SketchUp>
                              (eval):373
                              (eval):318:in `call'
                              (eval):318

                              regards,

                              Guy
                              [mod=:2660fdfj]%(#FF0040)[**NOTE:
                              A newer version [posted under the OP's new login] is available here...**]
                              http://sketchucation.com/forums/viewtopic.php?p=436001#p436001
                              TIG[/mod:2660fdfj]


                              v1.5 NOTE: newer versions available...

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

                                Sorry - I made a typo. It's Sketchup - not SketchUp - the thing is case sensitive.

                                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

                                  Btw, here's some stats to how slow .typename is compared to .is_a? http://forums.sketchucation.com/viewtopic.php?f=180&t=19576&view=unread#p162235
                                  In case you where curious.

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

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

                                    @thomthom said:

                                    Sorry - I made a typo. It's Sketchup - not SketchUp - the thing is case sensitive.

                                    Thanks!

                                    1 Reply Last reply Reply Quote 0
                                    • V Offline
                                      vidy
                                      last edited by

                                      @unknownuser said:

                                      The plugin works only on SU 8, because the function i use the check if it's a solid is a new function in v8.

                                      thanks for your confirmation πŸ˜„

                                      still so much to learn..

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

                                        respect ! where thomthoms inspector was heading I presume.

                                        you should be interested in the future. you will spend the rest of your life there

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

                                          @unknownuser said:

                                          @thomthom said:

                                          @pherim said:

                                          That's because solids had not been included in SU 7 and are only available since SU 8.

                                          Should be able to work anyway. There is not difference in the geometry, it's just that SU8 knows how to recognize solids.

                                          The plugin works only on SU 8, because the function i use the check if it's a solid is a new function in v8.

                                          You could use the method I use with Solid Inspector - check that all edges have two faces connected. Then it'd work on older versions. Of course for SU8 and newer you want to use the built in version that's very quick.

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

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

                                            Nice plugin. It could be very useful. I tried it on a model that someone sent to me the other day. It fixed a few things in one component but still left errors. There were a lot of errors in that component to begin with and it certainly would reduce the time required to manually fix it. Unfortunately the plugin doesn't always seem to recognize that a component is not solid. At least it doesn't recognize that the component in the attached SKP is not solid although you can easily see several problems that keep it from being considered solid.


                                            Not Solid.skp

                                            Etaoin Shrdlu

                                            %

                                            (THERE'S NO PLACE LIKE)

                                            G28 X0.0 Y0.0 Z0.0

                                            M30

                                            %

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

                                            Advertisement