Cutter radius compensation
When you program a part on a lathe, you program the finished surface — the actual part dimensions. But the cutting tool has a nose radius, so the tool tip follows a slightly different path than the one you programmed. For straight cuts the error is negligible, but on tapers, radii, and contours it adds up fast.
Cutter compensation handles this automatically. Program the part geometry. The FluidBoard offsets the tool path by the nose radius for you.
This is standard practice on industrial lathes. On most hobby controllers, it simply doesn't exist.
Where the error comes from
When you touch off a turning tool, you touch it against a diameter and a face. The point the controller then steers is the "imaginary tool tip": the corner where those two touch-off lines meet. A real insert doesn't have that sharp corner. It has an arc, typically 0.2, 0.4 or 0.8 mm in radius, and the imaginary tip sits outside the material that arc actually touches.
On a cut parallel to Z or X this makes no difference, because the arc touches the work exactly where the touch-off said it would. On anything at an angle, the arc touches the work at a different point and the cut ends up short. For a 45° chamfer with a 0.4 mm nose radius, the chamfer comes out roughly 0.23 mm undersized in both X and Z, which is almost half a millimetre on diameter. On an arc, the error is zero where the arc runs parallel to an axis and largest at its 45° point.
You can compensate by hand in CAM, but then the program only works for that one nose radius. With cutter comp, the program describes the part, and the radius comes from the tool table.
How it works
Enable compensation, and the controller shifts the tool path perpendicular to the cutting direction by the tool's nose radius (looked up from the tool table):
- G41 — compensate to the left of the programmed path
- G42 — compensate to the right
- G40 — cancel compensation and return to the programmed path
Left and right are judged looking along the direction of travel: with G41 the tool runs on the left side of the programmed line. Which one you need depends on whether you are cutting an outside or inside profile, the direction you cut in, and on which side of the centreline your tool post sits. Turning and boring in the same direction always need opposite codes.
T1 M6 ; Load tool 1 and its offsets (radius 0.4mm from tool table)
G95 ; Feed per revolution (F below is mm/rev)
G42 D1 ; Right compensation using tool 1's radius
G1 Z0 X20 F0.1 ; Cut — path is offset by 0.4mm automatically
G1 Z-30
G1 X25
G40 ; Cancel compensation
The D word selects which tool's radius to use. Omit it or use D0 for the current tool.
Lead-in and lead-out
The controller can only offset a path once it knows which direction the tool is moving in. That makes the move right after G41/G42 and the move right after G40 special:
- Switch comp on in free air. Put G41/G42 before a move that starts clear of the stock and ends at the start of the profile. Make that move longer than the nose radius, so the controller has room to build up the offset.
- Switch comp off in free air. After the last profile move, retract away from the part, then G40, then the next move. Cancelling comp while the tool is still on the surface leaves a mark the size of the nose radius.
- Avoid tiny features smaller than the radius. A 0.4 mm radius tool can't cut a 0.2 mm inside corner, with or without compensation.
When to use it
Cutter comp matters most on profiles with curves and tapers. On a straight facing or turning cut, the nose radius has minimal effect. But the moment you cut a taper, a radius, or a contour, the error from the nose radius compounds — and compensation eliminates it.
Don't use it for threading tools or parting tools. Set their radius to 0 in the tool table, as the threading tool example there does, so a stray G41/G42 can't shift them.
Corner handling
The controller handles corners automatically:
- Outside corners — a smooth arc is inserted to round the transition
- Inside corners — the controller calculates the correct intersection point
Supported planes
| G-code |
Plane |
Typical use |
| G17 |
XY |
Mills |
| G18 |
ZX |
Lathes (most common) |
| G19 |
YZ |
Special setups |
Make sure your program selects G18 before turning comp on for a lathe profile. Most lathe post-processors already output it in the program header.
Checking it on your machine
- Enter the correct nose radius for the tool in the tool table. The insert designation tells you: the last digits of an ISO code like CCMT 09T304 give the radius in tenths of a millimetre (04 = 0.4 mm).
- Run the profile in air first, with the tool well clear of the part, and watch the side the tool moves to when comp switches on. If it moves into the part instead of away from it, you have G41 and G42 swapped.
- Cut a 45° chamfer on scrap and measure its length in Z. With the right radius and side, it matches the drawing. Without comp it comes out about 0.6 times the nose radius short.
Troubleshooting
| Symptom |
Likely cause |
Fix |
| Tapers and radii are off, straight diameters are fine |
Comp not active, or radius 0 in tool table |
Check G41/G42 in the program and the radius value |
| Tool moves toward the part when comp switches on, profile comes out undersized |
G41 and G42 swapped |
Swap them |
| Gouge at the start or end of the profile |
Comp switched on or off on the part |
Add lead-in and lead-out moves in air |
| Wrong amount of correction |
Radius taken from another tool |
Check the D word, or use D0 for the current tool |