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.
    • 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
                                          • PixeroP Offline
                                            Pixero
                                            last edited by

                                            Don't know if it's possible but if so, running a script right before and after render could perhaps create a fairly non destructive workflow.

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

                                            Advertisement