sketchucation logo sketchucation
    • Login
    โ„น๏ธ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Method or plugin for subdividing like this sample

    Scheduled Pinned Locked Moved Developers' Forum
    31 Posts 7 Posters 4.6k 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.
    • PixeroP Offline
      Pixero
      last edited by

      Thanks for the code Sam. ๐Ÿ‘

      It works great for the example where faces are perpendicular but not with something with non perpendicular faces. See attached SKP (SU8). Could that be added?

      Offset problems.skp

      1 Reply Last reply Reply Quote 0
      • sdmitchS Offline
        sdmitch
        last edited by

        @pixero said:

        It works great for the example where faces are perpendicular but not with something with non perpendicular faces.

        mod = Sketchup.active_model
        ent = mod.active_entities
        sel = mod.selection
        vue = mod.active_view; pts =[]
        faces = sel.grep(Sketchup;;Face)
        faces.each{|f|
         vec = f.normal.reverse; ctr = f.bounds.center
         pts << f.vertices.map{|v|v.position.offset(ctr.vector_to(v.position)).offset(vec)}
        }
        grp=ent.add_group; ge=grp.entities; gt=grp.transformation
        pts.each{|p|
         fgrp=ent.add_group;fge=fgrp.entities;fgt=fgrp.transformation
         f=fge.add_face(p);
         fge.intersect_with false,fgt,ge,gt,false,faces
         fgrp.erase!
        }
        grp.explode
        
        

        Nothing is worthless, it can always be used as a bad example.

        http://sdmitch.blogspot.com/

        1 Reply Last reply Reply Quote 0
        • PixeroP Offline
          Pixero
          last edited by

          I tried the new code and it's better but for other non perpendicular faces it still gives some weird results.
          A cylinder for example.
          I have attached another example of that below. Hopefully it's possible to get it right for these cases also.

          Offset errors 2.skp

          1 Reply Last reply Reply Quote 0
          • sdmitchS Offline
            sdmitch
            last edited by

            @pixero said:

            A cylinder

            The initial request was for a simple box.

            Nothing is worthless, it can always be used as a bad example.

            http://sdmitch.blogspot.com/

            1 Reply Last reply Reply Quote 0
            • PixeroP Offline
              Pixero
              last edited by

              ๐Ÿ˜ณ

              But the code was so useful I couldn't help myself wanting it to work on more types of objects...

              ...what if I say: please?

              1 Reply Last reply Reply Quote 0
              • JQLJ Offline
                JQL
                last edited by

                I see a lot of possibilities here.

                Fake beveling at render time?

                Please Sam?

                www.casca.pt
                Visit us on facebook!

                1 Reply Last reply Reply Quote 0
                • sdmitchS Offline
                  sdmitch
                  last edited by

                  @jql said:

                  I see a lot of possibilities here.

                  Fake beveling at render time?

                  Please Sam?

                  Sorry guys but I see no possibilities. In fact it is impossible. Why, because the 'offsets' only work if all the angles at a 'corner' are the same. Plus, what do you with 'concave' angled corners?

                  Nothing is worthless, it can always be used as a bad example.

                  http://sdmitch.blogspot.com/

                  1 Reply Last reply Reply Quote 0
                  • PixeroP Offline
                    Pixero
                    last edited by

                    In Thomthom's EdgeTools there is a script for manually diving faces called "Divide Face".
                    It have some clever ways of getting the "splitting edge" to match the face's surrounding edges.
                    Maybe if you took a look at how he does it there it might be possible to implement into your code?

                    1 Reply Last reply Reply Quote 0
                    • fredo6F Offline
                      fredo6
                      last edited by

                      Guys,

                      This is what Roundcorner does in the first place. So doable, but the code is not exactly concise and straightforward to catch all topological situations, especially those where the offset line don't meet at corner edges, as highlighted by sdmitch (just take an elongated pyramide for instance). Not mentioning concave corners and other complex geometry...

                      Fredo

                      1 Reply Last reply Reply Quote 0
                      • PixeroP Offline
                        Pixero
                        last edited by

                        @fredo:

                        So, when will your new version with all quad face corners be ready?
                        I believe you posted a sneak peak some time ago.

                        1 Reply Last reply Reply Quote 0
                        • JQLJ Offline
                          JQL
                          last edited by

                          That's a pity, but thanks fo the explanation. When rendering an architectural subject bevels make a lot of difference in image results and realism. However when working they are too cumbersome and when sending to Layout or CAD to document the building and dimension it, they become even moreof a nuisance.

                          Having some kind of temporary bevelling that you could toggle, loke subd, would solve the issue.

                          I guess a lot of us would find that an incredible tool and I thought, for a moment, it would be possible...

                          Even so,thanks for your time gentlemen!

                          www.casca.pt
                          Visit us on facebook!

                          1 Reply Last reply Reply Quote 0
                          • C Offline
                            cesaro36
                            last edited by

                            Hi guys

                            This is what I came up with a few months ago, but it fails when curves or inner loops exist.

                            Also it uses the offset.rb from Smustard(TM).
                            By using this combination of soft and smooth you are able to put correct dimensions in both SKP and LO
                            If you need to get rid of the changes the plugin Fix101 takes care of it.

                            Any ideas to improve this?

                            #CSR create soften edges for renders
                            ss = Sketchup.active_model.selection
                            Sketchup.active_model.start_operation("test")
                            old_edges = []
                            new_faces = []
                            ss.each{|e|old_edges.push e if e.class == Sketchup::Edge}
                            ss.each{|s|new_faces.push s.offset(-0.0625) if s.class == Sketchup::Face}
                            old_edges.each{|oe| oe.smooth = true}
                            new_faces.each{|nf| nf.edges.each{|nfe| nfe.soft = true; nfe.hidden = true}}
                            Sketchup.active_model.commit_operation

                            2017.08.07-Screenshot_CSR-0919_01.png
                            2017.08.07-Screenshot_CSR-0919_02.png
                            2017.08.07-Screenshot_CSR-0921_01.png

                            1 Reply Last reply Reply Quote 0
                            • PixeroP Offline
                              Pixero
                              last edited by

                              @cesaro36:

                              After adding offset.rb it worked.
                              However the old edges are hard and the new ones are soft.

                              1 Reply Last reply Reply Quote 0
                              • JQLJ Offline
                                JQL
                                last edited by

                                Can anyone convert it to a plugin?

                                www.casca.pt
                                Visit us on facebook!

                                1 Reply Last reply Reply Quote 0
                                • PixeroP Offline
                                  Pixero
                                  last edited by

                                  I'm trying...

                                  I think it would work better if it only operated on edges that are hard.
                                  How would one do that?

                                  1 Reply Last reply Reply Quote 0
                                  • JQLJ Offline
                                    JQL
                                    last edited by

                                    And do you think it could have a method for operating at render time or is it too slow for that?

                                    Like tag some objects and apply the effect when hitting Thea's render button and then undo it (using skatter's method)?

                                    www.casca.pt
                                    Visit us on facebook!

                                    1 Reply Last reply Reply Quote 0
                                    • PixeroP Offline
                                      Pixero
                                      last edited by

                                      I don't know yet.
                                      It has some bugs as it's not working correctly on for example a cylinder with soft edges. And some other things that would need solving first.

                                      1 Reply Last reply Reply Quote 0
                                      • HieruH Offline
                                        Hieru
                                        last edited by

                                        I do this sort of thing manually on a daily basis and it is frustrating that a number of plugins come very close to automating much of the process.

                                        A quad version of Round Corner with a subdivision mode (just adding the required loops) would be awesome.

                                        Having more control over the addition of loops in Quad Face Tools would be very helpful. I seem to recall that this is planned for the next version.

                                        For subdivision at render, I think that could be possible with SubD at some point in the future. I imagine that getting it to play nice with all the different render engines will be quite a big ask.

                                        www.davidhier.co.uk

                                        1 Reply Last reply Reply Quote 0
                                        • JQLJ Offline
                                          JQL
                                          last edited by

                                          @hieru said:

                                          For subdivision at render, I think that could be possible with SubD at some point in the future. I imagine that getting it to play nice with all the different render engines will be quite a big ask.

                                          I remember Thomthom was talking with both Thomas (Jiminy) and Tomasz to make it happen. Maybe it's being developed as we speak, maybe it stalled.

                                          Anyway what I wanted was simply to have raw geometry without bevels, so I could design easily with sketchup and some method to fake bevels so I could render realistically, but I don't want to have permanent bevels.

                                          In the end I always sacrifice bevels so I can keep desiging but the results are always too CG... that's the best option I have for my workflow...

                                          www.casca.pt
                                          Visit us on facebook!

                                          1 Reply Last reply Reply Quote 0
                                          • HieruH Offline
                                            Hieru
                                            last edited by

                                            @jql said:

                                            I remember Thomthom was talking with both Thomas (Jiminy) and Tomasz to make it happen. Maybe it's being developed as we speak, maybe it stalled.

                                            Yes, some Skatter wisdom would probably help to move things in that direction.

                                            @jql said:

                                            Anyway what I wanted was simply to have raw geometry without bevels, so I could design easily with sketchup and some method to fake bevels so I could render realistically, but I don't want to have permanent bevels.

                                            The way I envisioned that working would involve a new version of Round Corner that adds the loops needed for SubD bevelling and then assigning a SubD @ Render condition to the geometry.

                                            Whilst it wouldn't reduce the geometry/calculations rendered, it would keep models manageable and be partly non-destructive.

                                            Naturally the ideal would be completely non-destructive bevels, but that's not going to happen without major changes to SUp's core engine.

                                            Personally I leave all bevelling until the last minute, when I know there won't be any design changes. Sometimes I'll save non-bevelled versions of components in my project file - just in case.

                                            www.davidhier.co.uk

                                            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