Rhino Grasshopper - Create Tool Paths for CNC Routing

Tags: , , ,
Add content to your widget section through the widget control panel.

Get the Flash Player to see this player.

Software: Grasshopper in Rhino 4

Description: In this Grasshopper video tutorial we will be creating different patterns of Iso-curves that have the potential to be used as toolpaths for CNC milling machines. In this first version of the exercise we’ll create a “parallel cut” pattern on the surface by extracting parameters incrementally along one edge. We will then modify the “parallel cut” pattern to be affected as the surface climbs / descends in the Z value. This video encourages designers and students to design not only the parts, but also the fabrication techniques. Generating G-Code is not covered in this video.  As always, please let me know if you questions and/or inquiries.

Topics Covered:

  • Extracting BREP Wireframe / Edge Curves
  • Dividing Curves
  • Finding the Closest Point on a surface
  • Evaluating a surface at a parameter
  • Creating / Translating Iso-Curves
Share this Post on:
  • email
  • Twitter
  • del.icio.us
  • Facebook
  • Digg
  • Google Bookmarks
  • Mixx
  • Reddit
  • StumbleUpon
  • Tumblr
  • LinkedIn

17 Comments »

  1. uberVU - social comments
    January 25, 2010 @ 9:37 pm

    Social comments and analytics for this post…

    This post was mentioned on Twitter by fedenegro: RT @DesignReform Rhino Grasshopper Video Tutorial - Create Tool Paths for CNC Routing | Design Reform http://ow.ly/1nADIY...

  2. Josh Lobel
    January 27, 2010 @ 11:14 am

    nice post guys!

    Point B used a very similar algorithm a couple summers ago (albeit in rhinoscript) to generate tool paths for our Shopbot to fabricate a series of door and cabinet panels, pictures of which are available on our blog:

    http://www.pointbdesign.com/blog/2010/surface-explorations/

  3. Guan
    January 30, 2010 @ 5:19 pm

    Hi Micheal, thanks for sharing your skills. i am quite new in grasshopper, so there are some bits where i dont really get; i dont understand how do you define the isocurves to drape left or right by dividing the z factor by 10 and then adding them to the u components. it doesnt make sense to me when i am trying to understand…

    Please clear my doubts! thank you so much!!

  4. Michael
    February 3, 2010 @ 12:55 pm

    Hi Guan,

    I apologize if I was not clear. Let me explain. The part where I divide the “z” coordinate by 10 is just a project scale issue. If the surface varied in the “z” MORE then the z coordinates’ range from min to max would be greater. This could cause problems when adding the “z” coordinate to the U or V parameters of the surface. When you “reparameterize” a surface, the U & V domains reset to 0 to 1; therefore, if I add a “z” coordinate of (20) to a U parameter of (.2), the parameter resulting parameter of (20.2) would lie way off of our original surface! Basically the smaller the division factor the greater the modification of the isocurve. Hope this helps.

  5. Mark
    February 7, 2010 @ 12:52 pm

    I appreciate the tutorial. I wish you would post some samples. I am curious as to how you manage the redundancy in the tool paths when you get into surfcam.

  6. jorg
    February 22, 2010 @ 8:12 am

    Hi

    amazing capacity!
    i totally agree with your argument that mastercam is overcomplicated and constrained in its logic.
    How do you export the actual CNC code to the router?
    We use a onsrud 4 axis maschine. would grasshopper produce the machine code or the toolpath?
    would i need to go through mastercam at all?
    have you actually run that on a maschine? any errors?

  7. Jim
    February 24, 2010 @ 12:02 pm

    I have a question at the first place:

    I made a surface in rhino, but there are only four control points(at the corner of boundaries) that I can modify the surface, how do you make those control points inside?

  8. Michael
    February 24, 2010 @ 12:10 pm

    Jorg,
    I have not written a G-Code writer myself, but their are some definitions out there that other people have written already. I have been using MasterCam to follow the curves and have had no problems!

    Jim,
    You have to rebuild the surface in order to get more control points. I think I rebuilt the surface to 6

  9. Jim
    February 24, 2010 @ 12:42 pm

    one question further, how to make the final contours in a plane? I mean 0 value in Z-axis….

  10. Michael
    February 24, 2010 @ 12:43 pm

    Jim,
    I am a little unclear about your question….

  11. Jim
    February 24, 2010 @ 12:48 pm

    similar to the command in Rhino: Make2D….if you type this in rhino, it will make everything in two dimensional.

    I am just wandering how to do it in grasshopper….

  12. Michael
    February 24, 2010 @ 12:51 pm

    Oh! You can use the “project curve” component to project onto a referenced surface in the xy plane!

  13. Jim
    February 24, 2010 @ 12:52 pm

    all clear, thanks very much.

  14. Marc
    July 20, 2010 @ 11:42 am

    Hmm…. this is all well and good, but once you modify the isocurve pattern, aren’t you exceeding the tolerances of your bit step? Have you actually fabricated anything with this setup? I’d like to see the results…

  15. Marc
    July 20, 2010 @ 11:46 am

    Not to mention, the correlation of isocurve to toolpath only works for a surface that has perfect UV coordinates with respect to the projected xy plane. It appears you have been careful to drag your control points only in the z axis, which maintains an even UV distribution, but any kind of irregular surface or UV manipulation will destroy that correlation from the start…

  16. Rockon
    August 10, 2010 @ 3:51 am

    Thanks for sharing your skills. i am quite new in grasshopper, so there are some bits where i dont really get; i dont understand how do you define the isocurves to drape left or right by dividing the z factor by 10 and then adding them to the u components

  17. Michael
    August 10, 2010 @ 5:39 am

    Hi Marc,
    I have not fabricated anything with this specif definition. I have however used the same concept, but with more control over the step over. You are correct that if you have an even distribution of the isocurves you are more likely to predict and contol the toolpaths. This definition was for demonstration purposes only of a concept!

    Rockon,
    It is great that you are learning GH and I hope you continue to do so! The reason I was dividing the z by 10 was to have the height of the surface drive the shift magnitude and direction of the toolpaths. I.e. when the surface falls below the xy plane into the negative region the toolpaths shift left and vica versa.

    To Everyone,
    Are there any topics or specific issues that you would like to see demonstrated?

RSS feed for comments on this post. TrackBack URL

Leave a comment :)

Recent Comments

What I'm Doing...