For awhile now, I have been playing with Grasshopper as a compliment to Rhino3d. It is a very useful tool for parametric shape generation, but it also is very good at keeping track of large lists of coordinates in 3D space! This means that it can also be very good at producing Gcode for our machines!
The main stumbling block a lot of people have run into when making their DIY CNC is the cost of CAM software. I have never found an inexpensive choice that is very good and, unfortunately, I am asked all the time what I can recommend for CAM software. It is hard to tell someone with a newly built $500 machine that they should consider buying a $2500 piece of software.
Most everyone I know that has used 3D printers and CNC routers much prefers the router based on material choices and because of the size of the work that can be produced. Why then are 3D printers getting all of the attention? I think it is because of the accessibility of the CAM software that drives the machine, not what the machine can do. Sounds obvious, but I think if there was a good, easy to use CAM software out there, this gap could close substantially. Especially since more and more people are converting their machines to an optional function based platform that can do routing and 3d printing.
So what I have done over the past couple months is to come up with Grasshopper functions for most of the paths that I write regularly and that are included with most CAM packages. These functions include 2D Contour, 2D Pocketing, 2D Engraving, Projection Engraving, Parallel Roughing, and Parallel Finishing. In addition, I have a simulator component to preview the path.
I also made up a list of some functions that I wished were part of my CAM package that include Isocurve Machining, Offset Pocketing, Tween Pocketing, Boolean Pocketing, Lithophane, Halftone, and Displacement Map machining. Most of these functions I am not sure if any CAM packages can do (mine can't). I was able to write definitions for all of these with more to come!
I am also working on definitions including drag knife as well as other functions for roughing as this is probably the most difficult operation for me to define in Grasshopper. I am trying to find a way to reliably write a path for multiple surfaces at a time. If you have any suggestions let me know! I am putting this out there for feedback as well as to hopefully help someone out there that hasn't been able to afford a CAM package yet!
Link to large version:
http://www.grunblau.com/Brian/Assets...ons%20full.jpg
If you are familiar with Rhino, Grasshopper and basic CAM functions, the definitions file should be pretty straight forward. Here are a couple more screenshots....
Attachment 270212 Attachment 270214 Attachment 270216
Attachment 270218 Attachment 270220 Attachment 270222
Attachment 270224 Attachment 270226 Attachment 270228
The current project file is available for download here:
GRUNBLAU 3 Axis G-CODE Generator
This is my first time posting about it. Try it out and let me know what you think! I think there is a lot of potential in this and I hope to have some videos of my machine running some "GHcode" soon!
Best,
Brian