Creating a Trochoidal Slot Milling Toolpath

I am looking for suggestions for the best way to use Rhino to generate a planar curve (toolpath) that loops on itself guiding a CNC milling tool forward to cut a straight slot using rotating motions. Example:


As a feasibility test, I approximated this path with a tilted helix projected to the Cplane:

This path slipped nicely into my CAM plugin and generated Gcode nicely:


To finesse this, I am now looking for suggestions as to the best way to approach a practical process that would let me (a) specify/control the Y width value of the loop, (b) stepover X value between lobes and © modify the back of the return curve to shorten the non-cutting travel time so my output 2D tool path better resembles the first example … while keeping the entire output as a single curve…

My inexperience with the many different, advanced Rhino options has me humbly seeking higher pay-grade guidance :^)

All thoughts and suggestions welcome.

Best regards,

Hi Bruce,

Not a solution, I’m afraid, but an observation on your example: shouldn’t the cutter be moving forward on the upper face rather than the lower one (i.e. flip the loops vertically)? Maybe in CNC it doesn’t matter, but if hand routing that would be the case - the router can jump nastily if you do it the way shown.


Dear Bruce
i would suggest to draw / design a single loop using any of the curve tools.
draw some reference for your desired measurements (a,b,c) first. (red)
in my case: _ellipse (3) _trim (part of ellipse ) _blendCrv (2) _line (1)
you might want to scale them
_scale1d _scaleNU to the desired size.
and join them - make sure to join (1) and (2) first, then this result to (3) to handle the overlap / identical point.
then use _array to multi-copy the result.

hope that helps

best regards


Hi Jeremy,
You are right this would be a challenge to do by hand.

The good thing about CNC is a rigid head/control system allow you to do it either way: Climb milling or Conventional Milling. Both have advantages/disadvantages depending on the type of operation you are attempting. Here is a good article on your point:


1 Like

There’s a trochoidal milling component in Bark Beetle which Jens Dyvik has been working on and testing on steel:

I haven’t looked at the code myself so I also don’t know if it meets your requirements but perhaps you can find some info in there.

Hi Bruce,

Thanks for sharing the link, I found it most informative.


I experimented with your idea and it worked nicely the first time.


Actually that was easier than I thought. Nice!

The trick now is two fold:

  1. Making sure each stepover is cutting right and
  2. Determining a method to define a slot X long, Y wide, tool diameter D and % tool diameter stepover.
    … to produce a completed toolpath in the construction plane.

This problem seems like it would lend itself well to Grasshopper. I have been surfing GH videos, but have not used it yet, so I might have to jump into the meatgrinder curve and start learning. :^)

Thanks for the idea!!!


Wow! Just Wow!

After spending 10 min reading Jens Dyvik’s work, so many possibilities fell into place. I felt Rhino/Grasshopper would have a high level of capability, but it looks massively more impressive now.


Jen’s work is quite exceptional. I am simply blown away … and humbled :^).

Thank you for that GitHub link. It will take me a while to get my arms around that.

Best regards,