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

      Hmm, interesting I'll look at that cosmetic issue.

      Also, is there someone on a Mac who would be able to help me find the right key for the up arrow? You would just install the little ruby attached to this message like a regular ruby. Then run sketchup. Open the ruby console and type:

      load 'key_finder.rb'

      After you type that, leave the ruby console open. And click back into the Sketchup window. Then press the up arrow. A message will display in the ruby console. Hopefully something like

      The Key identifier is: 38

      Could you please copy and paste that message back here for me?

      Probably just delete the file from your plugins folder afterwards. Thanks

      Chris


      key_finder.rb

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

      1 Reply Last reply Reply Quote 0
      • 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
                                            • 1
                                            • 2
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 10
                                            • 11
                                            • 8 / 11
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement