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.
    • jeff hammondJ Offline
      jeff hammond
      last edited by

      The Key idenetifier is: 63232
      (that's for the up arrow)

      [took me a while to figure out how to open the ruby console πŸ˜† ]

      dotdotdot

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

        Excellent, thanks! I'll try to get that worked into the code tonight.

        Also, I've thought about trying to make it more compatible with multiple faces. It would not be all that difficult to make it work with multiple flat faces. It would take a little bit more work to get it to work with non-planar faces. But I have a feeling that if I sat down and tried to make it work like that, I would also iron out the bug that makes the custom face tool slightly unpredictable. So maybe it would be good. But multiple planar faces would actually probably be pretty straightforward to implement.

        Thanks for the help and suggestions everyone,

        Chris

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

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

          Don't the key constants work? It seems like the most portable solution.

          Hi

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

            Well, yes. But I would nee dot figure out how to use those 😳

            Also, I didn't spend a lot of time with them because I wanted to use the up arrow key, which it seems is not supported with the key constants.

            Have any hints how to you use those and which is best? I like ctrl on the PC, but it apparently conflict on the Mac.

            Chris

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

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

              Well, then we woo nee dot show lkie tihs.

              
              if key == VK_UP
                # do this
              end
              
              

              Hi

              1 Reply Last reply Reply Quote 0
              • jeff hammondJ Offline
                jeff hammond
                last edited by

                @chris fullmer said:

                I like ctrl on the PC, but it apparently conflict on the Mac.

                actually, i'm not quite sure ctrl would conflict..
                ctrl is used with some other tools:

                cmd-ctrl-leftclick = orbit
                shift-ctrl with the eraser = unsoften/unsmooth

                i was just saying earlier that it's generally used for right clicking if you use apple's one button mouse.

                with the orbit example, i can ctrl-leftclick and get the context menu or i can add the command key and start orbiting.. i'm guessing it won't be a problem to use ctrl for the rotate function in your script and besides, it would probably be nicer to have a key on the left side of the keyboard instead of the right..

                is there anyway i can test a ruby with a ctrl modifier to see if it works on a mac?

                dotdotdot

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

                  @jim said:

                  Well, then we woo nee dot show lkie tihs.

                  
                  > if key == VK_UP
                  >   # do this
                  > end
                  > 
                  

                  I am a bad typer and a fast typer.....they don't go together well!

                  Thanks for the tip Jim. Is there a way to list all the constants? I tried constant_variables (like global_variables does for globals), but thats not it. Is there a variable that contains all the initialized constants?

                  Chris

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

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

                    Chris, I've been playing with this plugin some more. I like it in case you haven't noticed. πŸ˜„

                    Drawer Pull.jpg
                    This is a drawer or door pull or maybe a handle for the lid of an Asian influenced box.

                    Etaoin Shrdlu

                    %

                    (THERE'S NO PLACE LIKE)

                    G28 X0.0 Y0.0 Z0.0

                    M30

                    %

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

                      Dave, how are you getting the scale to change over the length of the shape? My tool only places the face on the line, but your shapes are all changing scale along their path quite smoothly. What is the trick there?

                      Chris

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

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

                        Chris, I'd love to tell you something like, "I found a loophole in your script." πŸ˜† Alas, I'm just scaling the faces after placing them. In the case of the last image I posted, I drew a Bezier curve for the path--the curve you see in the top view--and another for the curve you see in the side view. I drew the custom face as half the profile and used your script to put it at the vertices along the curve. I rotated the large end profile 5Β° off vertical for this pull and then scaled all of them to height to match that upper curve.

                        After that was all done, I exploded the faces, deleted the faces leaving the edges and used the Skin plugin to fill things in. I only made a quarter of the handle, made it a component and copied/fipped it to make the other three quarters.

                        I probably don't need to use your plugin to create this but it is so quick at putting the faces in at the desired points and I think the end shape looks a bit nicer with the faces turned at each vertex to split the angle.

                        Etaoin Shrdlu

                        %

                        (THERE'S NO PLACE LIKE)

                        G28 X0.0 Y0.0 Z0.0

                        M30

                        %

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

                          @dave r said:

                          Chris, I'd love to tell you something like, "I found a loophole in your script." πŸ˜†

                          Ha, yeah right. A "loophole" in my script would be more likely to crash your system indefintely than create unexpected awesome geometry πŸ˜„

                          Thanks for the explanation. I was wondering how you were getting the scaleing to come out so evenly. The bezier above them makes a lot of sense,

                          Chris

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

                          1 Reply Last reply Reply Quote 0
                          • takesh hT Offline
                            takesh h
                            last edited by

                            An interesting Ruby, Chris. This can be really handy.
                            One wish from me - Is it possible to pick a reference point (a vertice that sticks to the path) when placing profiles onto a path?
                            Right now it uses centers (more or less) of faces?

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

                              Chris, I don't mean to be getting off topic but here's sort of a deconstruction of the thing. The horizontal guides intersect the Bezier curve at the nodes or vertices. (Is it proper to call them nodes?) You can see the Bezier drawn on the ground plane, too. I copied that one and used the copy as the "path" for placing the faces with your plugin. All of this runs parallel to the red axis. Which you would glean from the position of the original face shown in green off to the right.

                              I did have to scale the faces in the green direction to get the vertical edges to lie on the centerline of the handle.

                              Drawer Pull Explained.jpg

                              Etaoin Shrdlu

                              %

                              (THERE'S NO PLACE LIKE)

                              G28 X0.0 Y0.0 Z0.0

                              M30

                              %

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

                                @unknownuser said:

                                Thanks for the explanation. I was wondering how you were getting the scaleing to come out so evenly. The bezier above them makes a lot of sense,

                                wouldn't it be awsome if you could get you're script to do that automatically?!! πŸ˜› scale to curves. WOW! how about this; draw to curves (rails) at get the profile to copy and scale at given intervals, say /6 or /12 or whatever. πŸ˜›

                                now that would be a great tool!!!!!!!!!!!

                                β€œ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
                                • X Offline
                                  xrok1
                                  last edited by

                                  @takesh h said:

                                  An interesting Ruby, Chris. This can be really handy.
                                  One wish from me - Is it possible to pick a reference point (a vertice that sticks to the path) when placing profiles onto a path?
                                  Right now it uses centers (more or less) of faces?

                                  place a constuction point and you should be able to use that.

                                  β€œ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
                                  • Chris FullmerC Offline
                                    Chris Fullmer
                                    last edited by

                                    Yeah, it would be very easy to make it recognize a construvtion point as the placement point. So next round:

                                    Near future:
                                    Add construction point placement
                                    Fix rotation keys
                                    Add multiple flat face support for the custom tool.

                                    Distant Future:
                                    Re-write custom face tool to rotate correctly always.

                                    My Next Life:
                                    Turn it into a proper sweep tool with multiple deformation methods.

                                    Lets hope for the best πŸ˜„

                                    Chris

                                    And thanks for the detail on that Dave, quite useful. It might be possible to implement that funcitonality. Is that something that is wideuly used enough that it woul be helpful?

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

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

                                      Chris, if the function was available I think it would be used a lot by certain woodworkers who are using SU for designing their work. I can imagine others would use it as well. I've drawn a number of pieces utilizing the method I used for that handle such as table legs but I've always had to manually place the faces. I always found that the more tedious part of the process.

                                      If you could automate the sizing of the faces, it would be very handy. I think working to nodes on the curves would be good.

                                      I tend to halve or quarter more complex shapes such as that handle because they're generally a small part of a larger project and I don't want their contribution to the file size to exceed their worth if you know what I mean. I wonder if there would be a way in a dialog box to ask if the shape is half of a symmetric profile and should one edge of the profiles be aligned. Or maybe the scaling could be done such that the faces fit between top and bottom lines and left and right lines. If one of the pair of lines is straight, it could be used as the line of symmetry. Does that make any sense?

                                      Not to dump a lot on you but the topper would be to roll the Skin plugin into your script. The process would be place the faces along the path, scale them to fit between the "sweep" curves, explode the face groups, delete the faces leaving the edges, skin between them and smooth the edges. What do you think of that?

                                      Etaoin Shrdlu

                                      %

                                      (THERE'S NO PLACE LIKE)

                                      G28 X0.0 Y0.0 Z0.0

                                      M30

                                      %

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

                                        I've got a few scripts in mind that deal with similar functions. We'll see if I attempt to write it into this one, or create a totally new script. I would definitely like to investigate this area of scripts. They sound like a lot of fun.

                                        Chris

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

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

                                          A Scaling function between each click of a face along the curve β˜€
                                          (with the arrows Right / Left for example Increase / Decrease)

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

                                          1 Reply Last reply Reply Quote 0
                                          • jeff hammondJ Offline
                                            jeff hammond
                                            last edited by

                                            @unknownuser said:

                                            A Scaling function between each click of a face along the curve β˜€
                                            (with the arrows Right / Left for example Increase / Decrease)

                                            to go even further off topic πŸ˜„ :

                                            what if you could scale the faces via some sort of weighing mechanism? (and i'm not sure if 'weighing' is the right term here -- i basically mean that everything isn't scaled equally and the 'pressure' is greatest at a determined point and dissipates as it gets further away ... i can sort of give an idea using the smoove tool but that only works up/down.. if this could somehow work with the scale tool instead, it would open up a lot of options.

                                            [flash=425,344:27kpptas]http://www.youtube.com/v/3AwbiNkwG9c&hl=en&fs=1[/flash:27kpptas]

                                            dotdotdot

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

                                            Advertisement