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

    [Plugin] Perpendicular Face Tools (UPDATED 26-03-09)

    Scheduled Pinned Locked Moved Plugins
    201 Posts 64 Posters 174.4k Views 65 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.
    • MALAISEM Offline
      MALAISE
      last edited by

      OK, let me see which plugin may be in conflict 👍

      MALAISE

      La Connaissance n'a de valeur que partagée

      1 Reply Last reply Reply Quote 0
      • MALAISEM Offline
        MALAISE
        last edited by

        Hi ALL

        Filtering the last downloaded plugins, I've found a conflict with Jim's cd_power_n.rb ( mover2.rb) Has someone experienced that? several times tested.

        ( SU V7, Windows XP SP3 )

        MALAISE ❓

        La Connaissance n'a de valeur que partagée

        1 Reply Last reply Reply Quote 0
        • Chris FullmerC Offline
          Chris Fullmer
          last edited by

          Very Interesting. I have that plugin installed with no conflicts. I'll dig around tomorrow and see what I can find. Sorry for the inconvenience,

          Chris

          Lately you've been tan, suspicious for the winter.
          All my Plugins I've written

          1 Reply Last reply Reply Quote 0
          • MALAISEM Offline
            MALAISE
            last edited by

            Thanks for playing attention, no matter for inconvenience, don't worry 😄
            MALAISE

            La Connaissance n'a de valeur que partagée

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

              @malaise said:

              Hi ALL

              Filtering the last downloaded plugins, I've found a conflict with Jim's cd_power_n.rb ( mover2.rb) Has someone experienced that? several times tested.

              ( SU V7, Windows XP SP3 )

              MALAISE ❓

              Mover2 does not use a file or method named cd_power_n.rb.

              Hi

              1 Reply Last reply Reply Quote 0
              • Chris FullmerC Offline
                Chris Fullmer
                last edited by

                I know, its cad_fathers's SCF powertools toolbar plugin that wrapped mover2 into a file called cd_power_n.rb. If you open that file, its just your script. So I'm guessing it has something to do with how its being loaded from his main plugin loader maybe? I don't know. I know I've got my whole script wrapped in a class so I thought I should not have conflicts. But perhaps there is more to it than that.

                Chris

                Lately you've been tan, suspicious for the winter.
                All my Plugins I've written

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  I'm not getting bug-splats with custom-face, BUT it does inconveniently make a group of the selected face and not explode it at the end. It's easily fixed by adding a line of code after line #299, to explode the temporary group...

                  @group.explode
                  

                  How's the orienting face rotation on end of line going ?
                  .

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • MALAISEM Offline
                    MALAISE
                    last edited by

                    I've tried this improvement, the group is still present, not exploded. ❓

                    MALAISE

                    La Connaissance n'a de valeur que partagée

                    1 Reply Last reply Reply Quote 0
                    • Chris FullmerC Offline
                      Chris Fullmer
                      last edited by

                      Hey Tig, I probably could explode the group without any conflicts. I was thinking I didn't want the added face to interefere with the model, but its probably not an issue. Or maybe I explode it by default and have a ctrl key modifier that leaves it grouped. I've been wanting to figure out modifier keys.

                      As for the rotation thing, I still have not got it worked out 😞 I'm having a hard time pinpointing point C from my diagram above. I got close and it sort of worked, but it fell apart if the face was too slanted or something and I got so frustrated I have not even looked to figure out why. I'm sure its a million times easier than I'm making it. Since I can't find "C" yet, I intersected a flat plane with the face plane to get an intersection vector. That vector is the vector that I want my top(or bottom) edge to exist on. So I then did an angle_between the 2 vectors (the found one and the existing edge one) to get the angle that I want to rotate the face. That seemed to work in testing, but did not work well once I put it in the script. Sorry to drag this out. I'll probably put some more time into it today since I got a few other scripts updated last night.

                      @Malaise, I think maybe that added the ungroup function to the custom face tool only, and maybe you tested it on one of the other tools. It would need to be added for each tool. I'll look into it, and maybe even get it implemented sometime this century 😄

                      Thanks everyone, thanks TIG!

                      Chris

                      Lately you've been tan, suspicious for the winter.
                      All my Plugins I've written

                      1 Reply Last reply Reply Quote 0
                      • TIGT Offline
                        TIG Moderator
                        last edited by

                        It's the original face that needs to be un-grouped. I agree that the face put on the end of the line is best left grouped to allow you to move its origin or rotate it about the line etc - you can explode it before doing a followme etc...

                        Here's my thinking on the rotation conundrum...

                        Let's do the square for now - seems to me that first you make a group containing a 'flat' square with its centre set at the origin and then move it to the select vertex at the end of the edge, transform rotating it so its face is perpendicular to the picked-vertex's edge... So far so good. Now we check the geometry of the square - it only has four vertices, so find the two with the lowest Z-value***. These are the vertices of the bottom-most edge. Now find the mid-point between them - we use this to work out the vector from the 'centre' (picked-vertex's location) to this mid-point and the angle between that and a 'vertical' vector in the same plane as the face: that 'angle' is the angle that we'll use later on to rotate everything so that it is 'orthogonal' to the XYZ axes.

                        Let's call the centre 'c' and two lowest points 'p1' and 'p2' - these are known - and the mid-point we'll call 'm' - that we need to get...
                        To find a point mid-way between two others use...

                         m = Geom;;Point3d.linear_combination(0.5,p1,0.5,p2) 
                        

                        We can then get the vector from 'c' to 'm', let's call it 'cm' - simply subtract the point values...

                         cm = c - m 
                        

                        Now to find the 'vertical vector' (let's call it 'vv') - first find a point ('t') 1 unit away from 'c' above the surface of the face by the edge's [positive] 'vector' and then project it down till it hits the face at 'v' - the line between 'c' and 'v' is the 'vertical vector' against which we'll rotate the face...

                         t = c.offset(vector,1)
                         ang = (t-c).angle_between(t-[0,0,-1]) # i.e. the tilt on face normal
                         hyp = 1/Math;;cos(ang) # i.e. the drop from t to face plane
                         h = [t.x,t.y,(t.z)-hyp] # i.e. the point t projected onto the face's plane
                         vv = c-h # the vertical vector
                        
                        

                        Now get it's angle to the 'mid-point vector'

                         angle = vv.angle_between(cm) 
                        

                        You then need to work on the face of the square and transform/rotate the whole thing around the picked-vertex's edge by the 'angle'... Done.

                        ***Note: IF the Z of all of the square's vertices is the same [simple test to look at the four] then it's 'flat' so then we'll find the lowest two Ys and rotate it to be orthogonal about the Z axis instead. Also note that in this 'flat' case the 'vertical' vector needs to be (0,-1,0) to match the Y...

                        For the custom face do something similar but group the face, copy it, explode the original back to where it was and then use the copy's bounding box centre as its 'origin', move and transform it to the vertex, use the new location's bounds to get an enclosing rectangle to get minimum Zs etc, all as above etc etc...

                        I haven't tried this code, but it should at least form the basis of something that''ll work...

                        .

                        TIG

                        1 Reply Last reply Reply Quote 0
                        • Chris FullmerC Offline
                          Chris Fullmer
                          last edited by

                          Thanks for walking me through this TIG. Hopefully I'll get a chance to try to get this implemented tonight or tomorrow. Lots of work-work and school-work today 😞

                          Chris

                          Lately you've been tan, suspicious for the winter.
                          All my Plugins I've written

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

                            looking at this, I wondered how difficult it would be to create a script that 'blended' between two diffrent faces at either end of a line.

                            1 Reply Last reply Reply Quote 0
                            • Chris FullmerC Offline
                              Chris Fullmer
                              last edited by

                              Unfortunately, it would be very difficult - for me! I have thought similar thoughts, and that is a plugin that is on my wishlist. I am working on anther ruby that begins to get into that arena of morphing from one shape to another, but it is really new territory for me. Maybe in time 😄

                              Chris

                              Lately you've been tan, suspicious for the winter.
                              All my Plugins I've written

                              1 Reply Last reply Reply Quote 0
                              • X Offline
                                xrok1
                                last edited by

                                @cosycat said:

                                looking at this, I wondered how difficult it would be to create a script that 'blended' between two diffrent faces at either end of a line.

                                Like this?


                                cap.jpg

                                “There are three classes of people: those who see. Those who see when they are shown. Those who do not see.”

                                http://www.Twilightrender.com try it!

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

                                  Not like that. That simply scales the shape. They are talking about morphing for instance a circle shape to a star shape.

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

                                  1 Reply Last reply Reply Quote 0
                                  • X Offline
                                    xrok1
                                    last edited by

                                    that would be a loft wouldn't it?

                                    “There are three classes of people: those who see. Those who see when they are shown. Those who do not see.”

                                    http://www.Twilightrender.com try it!

                                    1 Reply Last reply Reply Quote 0
                                    • pilouP Offline
                                      pilou
                                      last edited by

                                      In Nurbs language it's more kown as a sweep 😄sweep.jpg

                                      Frenchy Pilou
                                      Is beautiful that please without concept!
                                      My Little site :)

                                      1 Reply Last reply Reply Quote 0
                                      • Chris FullmerC Offline
                                        Chris Fullmer
                                        last edited by

                                        WOOHOO!!! I finally got it. Little by little I"m understanding transformations....after getting TONS of help from TIG on this script, and Fredo and pretty much everyone else. So I'm pleased to announce the updates to this script:

                                        Perpendicular Face Tools
                                        Description: Three Perpendicular Face tools to help create faces perpendicular to the end of lines.
                                        Usage: Activate it at Plugins>Chris Fullmer Tools>Perpendicular Line Tools. Change the size of squares by entering a new dimension into the measuerments box after the face has been created. Change the radius of circles by entering "12s" for 12 sides into the measurements box. To use the custom face tool, create your face flat on the groundplane. The script attempts to line up the x axis as the bottom edge of the face.

                                        v1.0 Updates:

                                        • The original face now explodes upon exiting the custom face tool.
                                        • Added support so that faces will stay oriented with a flat edge on the horizontal plane.
                                        • Holding ctrl while creating a face will over-ride the flat horizontal feature and revert back to the default SketchUp "Arbitrary Rotation".
                                        • Now faces can be added anywhere to a line - on the endpoint (existing feature), in the middle of a line, or on a vertex of 2 lines. The vertex of 3 lines is not supported.

                                        I think that is everything that was requested on this script and more. Faces now orient better, the custom face gets exploded on exiting the tool, AND being able to add perpendicular faces to a single edge, an endpoint and the vertices of 2 lines. Please let me know if there are bugs. Its quite possible. I've tried to test it thoroughly, but its always possible I've missed something 😄

                                        Hope it helps,

                                        Chris

                                        PS. I think I'll do some icons for this tomorrow. Also, the video is not updated yet on the front page. I'm too tied to do it right now. I'll do it tomorrow.

                                        Lately you've been tan, suspicious for the winter.
                                        All my Plugins I've written

                                        1 Reply Last reply Reply Quote 0
                                        • Chris FullmerC Offline
                                          Chris Fullmer
                                          last edited by

                                          I found a little bug where the custom face needs to be drawn with the back face pointing upwards. I'll try to fix that shortly so the face can be facing either way.

                                          Chris

                                          Lately you've been tan, suspicious for the winter.
                                          All my Plugins I've written

                                          1 Reply Last reply Reply Quote 0
                                          • W Offline
                                            wolfy
                                            last edited by

                                            Chris, thank you so much for this, as well as other, wonderful scripts. Your expertise is highly appreciated!! ☀

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

                                            Advertisement