The Universal Workflow
Every job, rotary or flat, is basically these steps:
- Load your model — an STL or STEP file (also PLY, OBJ, OFF, GLB, 3MF; 2D takes DXF or SVG). Conversational strategies need no model; you type dimensions.
- Set up your stock and fixture — for rotary work the bar diameter (this is your starting radius, get it right), the length, and how far the part sits from the chuck. The preview shows a translucent bar and a wireframe 3-jaw chuck so you can see the part inside the stock and clear of the jaws. Flip or rotate the model if its long axis is not pointing down the bar.
- Add one or more operations to the Operations queue and pick a strategy for each. A typical rotary part is two operations: a rough, then a finish. The queue runs them in order with tool-change and spindle pauses between.
- Pick the tool for each operation. Diameter and shape drive the toolpath, so they must match what you physically load. The tool number is emitted as a tool-change pause.
- Set feeds and, for rotary, the chuck-RPM cap.
- Set the Work Zero — chuck center or top of stock, matched to how you touch off on the machine.
- Generate the toolpath.
- Preview it — backplot and Spin/sim playback. Your free dry run.
- Post and export — choose your controller, confirm the rotary axis letter and units, save the G-code file.
- Run it on the machine, with your machine zero set the same way you chose in step 6.
That is the whole thing. Everything below is variations on steps 3 through 6.
Coordinate system and work zero
The axes:
- X = along the bar (down the length, away from the chuck).
- A = rotation (your rotary axis; default letter is A).
- Z = up and down, which in a rotary job physically means in and out along the radius. RotatoCAM treats Z as the radius from the center of rotation, which is exactly why zeroing matters.
Chuck center (axis centerline). Z0 is the center of rotation. The native, most robust
frame: diameter-independent, so depths stay correct even if you re-chuck or change stock. Set the
Work Zero offset to 0. On the machine, touch the top of the stock and set Z to
+(stock radius).
Top of stock (surface). Z0 is the outer surface at the top. Easiest to set physically (touch the top, hit zero) and it behaves like normal flat milling (cutting in goes negative). Set the Work Zero offset to your stock radius. Accurate only if your real stock diameter matches what you entered.
Two more datums to know:
- X0 is the start of the cutting area, not the chuck face. Zero X where the toolpath begins down the bar.
- The A (rotational) zero is arbitrary. It is just where the part starts turning; pick a repeatable spot.
Which strategy do I pick?
- A round-ish 3D part turned on the bar axis (handles, finials, knobs, sculpted cylinders): rough_radial to clear the bulk, then finish_spiral for the final surface. The bread-and-butter job.
- Text or artwork wrapped around a cylinder: wraparound (or wrap_vcarve for a V-carved look). No 3D model needed, just your 2D art.
- Flat plate or slab work: threeaxis, adaptive_clear for clearing, engrave2d or vcarve for lettering.
- Faceted or prismatic features (hex flats, square, angled features): indexed_surface or mill_flats.
- Shop features with no CAD model (turn to a diameter, face an end, bolt-circle of holes, thread a stud, cut flutes or splines): the Conversational strategies.
Strategy reference
Free ships in the free Community Edition. Pro requires RotatoCAM Pro. Every strategy uses the Universal Workflow; each card lists only what is specific to it.
rough_radial Free
Clears stock in radial levels from the outside diameter down to the deepest valley. The everyday rougher.
Options radial depth of cut; rest-roughing.
rough_helical Pro
A single continuous back-and-forth helix that ramps in with very few retracts. Gentler on a flexy mini-mill.
Options stepdown / pitch; ramp.
finish_spiral Free
The headline strategy: one continuous simultaneous X + A + Z spiral. Best surface, most continuous motion.
Options stepover / scallop; Max radial depth (bridges deep ports at constant radius).
finish_raster Pro
Bidirectional rings where rotation stays within 0–360° (no windup). When you don't want the A axis to accumulate turns.
Options stepover; ring direction.
finish_axial Pro
Lengthwise zig-zag along the bar for a different surface lay (grain along the part instead of around it).
Options stepover; direction.
pencil Pro
Cleanup pass following valleys and groove floors, linked along the length. Run after a finish to clean corners.
Options valley threshold.
indexed_surface Pro
Clocks the part to N positions 360/N apart, then runs a normal 3-axis raster on the up-facing wedge at each.
Options number of faces (N); per-face 3-axis settings.
mill_flats Pro
Cuts hex, square, or any N-sided flats on round stock by indexing and facing each side.
Options number of sides; across-flats; depth.
threeaxis_finish / rough Pro
Standard 3-axis milling of a model on flat stock (no rotary).
Options stepover; stepdown; finish / spring passes.
adaptive_clear Pro
High-efficiency clearing with concentric inward offsets at constant engagement. For pockets and bulk removal.
Options stepover; stepdown.
troch_slot Pro
Trochoidal slotting (small circular loops) to cut slots narrower than a safe straight plunge, easy on the tool.
Options slot width; loop step.
engrave2d Free
Follows 2D line art (DXF/SVG) at a set depth. For lettering, logos, outlines.
Options depth; number of passes.
vcarve Pro
V-bit carving that varies depth for sharp corners and variable line width from 2D art.
Options V-bit angle; flat depth.
wraparound Free
Wraps 2D art around the cylinder and engraves it on the rotary axis. The classic "text around a tube" job; sets bar diameter directly.
Options bar diameter; engrave depth; position along bar.
wrap_vcarve Pro
Wraparound, but V-carved for variable-width lettering.
Options V-bit angle; depth.
profile_cut Pro
Laser and plasma profile cutting of 2D shapes (outline cutting, not milling).
Options laser/plasma mode; passes; power / feed.
ProtoTRAK-style: you type dimensions, no CAD file required.
turn_round Pro
Turn stock down to a target diameter over a length.
turn_profile Pro
Turn a non-round or oval profile (radius as a function of angle).
face Pro
Face the end of the stock flat.
pocket Pro
Rectangular or round pocket at a set depth.
drill_pattern Pro
Bolt-circle, grid, or line of holes, optionally rotary-indexed, with peck drilling + helical boring for oversize holes.
flute Pro
Straight or twisted grooves along the part (flutes, rifling-style).
thread_mill Pro
External single-point thread milling with a standards picker.
index_slots Pro
Evenly spaced slots around the part for gears, splines, and knurls.
Tools, feeds, and the chuck-speed cap
- Tool table: pick or edit the tool; diameter and shape (flat, ball, bull, V) drive the path. A ball-nose is typical for 3D finishing. The tool number is emitted as a tool-change pause, so match it to what you load.
- Speeds and feeds: a built-in helper for carbide vs HSS with chip-thinning. You set one surface feed target; you do not set a separate rotation speed.
- Why there is no "C speed" knob: the rotation rate is derived. RotatoCAM blends the rotary arc into the move length and uses G93 inverse-time, so the whole move (X, Z, and A together) finishes in one shared time. Change the surface feed and the rotation scales right along with it.
On a rotary move, a thin section of the part has to spin fast to keep surface speed up. This cap stops RotatoCAM from commanding a chuck speed your rotary cannot turn (which would stall or lose steps). If a move would exceed it, RotatoCAM slows that whole move proportionally, preserving surface quality rather than just clipping the rotation. Set it to a safe maximum RPM for your rotary.
Controllers and posting
Choose your controller in the post/export step. Supported: grblHAL, GRBL (3-axis only),
LinuxCNC, Mach3, Mach4, Centroid, MASSO (and you can drop custom posts into
~/.rotatocam/posts/).
Before exporting, confirm the rotary axis letter matches your controller config (default A) and the units (mm or inch) match your machine.
The Mach post emits no comments on purpose. Some Mach3 installs refuse to load a file that has comment lines, so RotatoCAM strips them. That is expected. Side effect: open a Mach-posted rotary file in RotatoVIEW and it will ask you to type the bar diameter, because the line that normally carries it was one of the stripped comments.
Preview and verify before you cut
- Backplot draws the toolpath, colored for the selected tool.
- Spin / sim plays the job back, shows a material-removal simulation, and can color the surface by deviation (green = on target, red = gouge or leftover). It estimates time and distance too.
- The backplot/sim can run on the actual exported G-code, so what you see is what runs.
If anything looks wrong here, fix it before you make chips. This is free; a crash is not.
Troubleshooting and FAQ
My depths are off by a lot (about one radius).
Your Work Zero setting and your machine touch-off do not match. Chuck center → touch off to the centerline (top of stock, then Z = +radius). Top of stock → touch off on the surface. Pick one and be consistent.
My rotations come out wrong (part over- or under-rotates).
Your controller's steps-per-degree for the rotary axis is not set for your gear reduction. A rotary geared down (say 4:1) needs the controller told about that ratio. This is a machine config setting, not RotatoCAM.
Mach3 will not load my file / errors on a comment line.
Use the Mach3 post; it emits no comments. If you posted with a different controller and run Mach3, re-post as Mach3.
RotatoVIEW is asking me for the bar diameter.
Normal for Mach-posted rotary files (the comment carrying it is stripped). Type your stock diameter.
A rotary move ran at the wrong (dangerous) feed.
RotatoCAM uses G93 inverse-time on every rotary move and has a built-in feed verifier for exactly this. If you hand-edit G-code, do not remove the G93 lines; a rotary move left in G94 has an undefined feed and can snap a cutter.
My finish dove into a bore or port.
Set Max radial depth on the finish so it bridges over deep openings at constant radius instead of diving to the far wall.
Which strategies are free?
finish_spiral, rough_radial, engrave2d, and wraparound are in the free Community Edition. Everything else is Pro.
Glossary
- Bar / stock: the round blank in the chuck. Its diameter is your starting radius.
- Chuck center: the axis of rotation; the natural zero for rotary work.
- Surface feed: the one feed target you set; rotation speed is derived from it.
- G93 inverse-time: the feed mode that keeps X, Z, and rotation coordinated on a simultaneous move.
- Chuck-RPM cap: the safety limit that keeps thin sections from being told to spin faster than your rotary can turn.
- Rest-roughing / rest-machining: only cutting the material a previous larger tool left behind.
- Deviation coloring: the sim's green/red map of how close the cut surface is to the model.
- Indexed (3+1): rotate to a fixed angle, then cut with normal 3-axis moves; not simultaneous.
- Conversational: type dimensions instead of loading a model.