algorithmic modeling for Rhino

Hi all,

I have been consolidating ideas on making a CAM plugin for GH. This is due to the fact that more and more RH/GH people are working with a CNC router, with a plugin that adds the ability to parametric create 2D or 3D cuts are definitely helpful.

I'm still at the stage of drafting the goal and audience description for the plugin. and the next stage is to programme it. I don't have all necessary skills yet but will try, hopefully someone will join the team.

Goal (Draft)

A plugin that is easy enough for most GH users to use. It aims at creating toolpaths in a parametric way, allowing reuse of definition settings, quick design change, and able to process large batch of information without error.

Audience (Draft)

  • GH users who designed structures in GH, own or work closely with a CNC machine.
  • CNC machine owners who need a easy to use and reliable CAM package. Esp handling large batch of cuttings.

Functions - Toolpaths

  • 2D , 2.5D Curve following - with multi-level 
  • Drilling, Drilling cycles
  • 2.5D Profiling - with multi-level 
  • 2.5D Pocketing (Next Stage)
  • 2.5D Facing (Next Stage)
  • 3D Roughing (Next Next Stage)
  • 3D Sweeping (Next Next Stage)

Functions - Outputs

  • Direct NC File Generation (Easy to use header and footer info)
  • Multiple possibilities for postprocessor (Cater different machines)
  • Toolpath optimization for unorganized input
  • Support multiple tools (works with ATC machine)
  • Per toolpath based control for lead-in, lead-out methods, feed rates
  • Per toolpath based definition of cutters.
  • Combine multiple tool paths in NC file.
  • Handles data trees of input


Geometry engine will rely on Rhino SDK (Offsets, Transformations, 3D)

Most logic can be written in (I'll test write as custom VB component)

Package distributed as a plugin (I don't know how to do that at the moment)

---- On going edits to the post as ideas unfold ----

Todo List

  • Make an action plan on mile stones for the software development
  • Make a list of the required programmers role and who to fulfill it.
  • Start UI / logic design, create dummy scenario (usage case study) for brainstorming.
  • Discuss and decide on whether Open Source or not
  • Study and compare existing CAM software on market. (eg:MasterCAM, RhinoCAM, V-Carve Pro,MadCAM)
  • Study other plugins and look for potential to collaborate or integrate and to clearer define this project's stance. (eg:Beaver,Lobster,CAMel)

Views: 9592

Replies to This Discussion

That sounds great but I will have to wait to see it as that link keeps timing out.

So did you use GH to generate each drill cycle by changing X,Y and Z parameters to suit position and depth from 0 to tool diameter?

Did you write script to export the g-code?

hey. I will post the script in a day or so as I am traveling. I used the Xand y coordinates of the sample grid and the z value defined by grey value. I used a format command and a point decompose to get usable gcode. With all my scripts I output to a cull null and then panel. I then copy the data to a text file and save as a .NC file. is the link still not working? minor note, my gcode header is machine specific.

Hi Taylor, I can see that link now I'm back in the UK. Looks great! I will try somethign similar in the next few days hopefully!

Hi Taylor and Martyn,

I'm interested use this as an example if I'm writing the plugin later. 

I have already write a "drilling operation" and I think it would be nice as I write the plugin: the generation of the points would be separated to the CAM plugin, but the generated points can be fed directly to a "drilling operation".

Hi Taylor. I still can't get that link to work but it could be because I am in Turkey for a week so I'll try when I'm home. Perhaps someone else could comment on whether it works for them or not.
I'll try tho with my router soon too hopefully!

Correction:  The file I uploaded was an older, in progress, version.  I have posted my current plunge roughing script:

The script does not offset the roughing pass from the geometry at all, a feature that a typical user may be interested in as a roughing tool.  Next step for me is linking the centers of the tool-compensated points as a polyline for G-Code output.  Martyn, if you are still having trouble, PM me and I will send you the file that way.

Side tracking slightly...

I'd be really interested to hear your views on this problem I have concerning drawing surfaces that can be milled using a rotary milling technique - i.e. one axis rotates the part and the cutting tool can move on 2 axes - one axis radial to the part and one axis along the length of the part. This technique would be used to machine cylindrical cams to make cams that you might find in sewing machines for example.

Traditional sweeps and lofts only create a cam surface that could be machined with a zero diameter cutter. I need to work out how to draw a cylindrical cam surface that can be machined with a known cutter diameter.

Any Ideas?

More info and GH definition

My thought would be to:

- Set a rotation step and treat it like a stepover.  

- Then for each rotation step do the cutter tool projection I have been doing. (Just finished the surfacing script with cutter tool compensation.  Can Copy/paste that over).

- Mill a contour for each rotation step on the axis of the part.  This will leave scalloping and that may be alright if you take small enough steps.

- For a better finish we would then rotate the whole part 360 while adjusting the tool to the surface with steps down the axis of the part as a finishing process.

Mind you this is not taking into account the roughing of the part.  That may be done in 4 rotations?  

I have never worked with a 4th axis, nor programmed with one.  If you want to send me a description of your machine I can take a look at programming this lathe-ish process.  Otherwise, check out my profile for my other surfacing and tapping scripts.  They include the cutter tool offset and curve milling processes.  Tapping script is "point at bottom of cut" dependent.  

Let me know what works!


Compiled GRASS-CAM program.  Contains parallel surfacing, point based drilling, offset contour milling.  Haven't clustered and included the plunge roughing script yet.  Will mill this test piece tomorrow in blue foam and post results.







  • Add Photos
  • View All


  • Add Videos
  • View All

© 2021   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service