Cutter Radius Compensation
Cutter radius compensation is the feature that lets a program machine the part’s outline rather than the path of the tool’s centre. When the cutter is off to one side of the contour it is cutting — as it always is when profiling a wall — the tool centre does not follow the part edge; it follows a path offset by the tool radius. Programmed by hand, that offset path is a constant calculation for every feature. With cutter radius compensation the program is written from the drawing dimensions of the part itself, and the control offsets the tool by its radius automatically, using a value stored in the tool table. If the cutter wears, is reground, or is replaced with one of a different size, only the stored value changes — never the program. This entry covers the codes — G41, G42 and G40 — and the discipline of using them.
Left, right, and the direction of travel
The compensation codes place the cutter on one side of the surface it is cutting. G41 offsets the tool to the left of the programmed contour, looking in the direction of travel; G42 offsets it to the right. The way to choose is to imagine walking along the toolpath with the cutter, and ask which side of the wall the cutter is on: if the part is on the left and the tool cuts its right side, so to speak, the code is decided by that view. In practice the choice lines up with climb and conventional milling: on the common case of a right-hand cutter cutting an outside profile, G41 gives climb milling and G42 conventional. Since climb milling is the usual first choice for finish and tool life, G41 is the code most often seen, but the miller who wants a conventional cut — on a scale of hardened surface, or to press a thin part against its support — uses G42 for the same contour without changing anything else.
Why it is worth using
The first benefit of cutter compensation is that the program can be written straight from the print: a wall at X50 is programmed at X50, and the control works out where the tool centre must go. The second benefit is that the tool is no longer frozen into the program. A cutter that has worn can be compensated by adjusting the stored radius rather than by rewriting every contour; a reground cutter of smaller diameter needs only a new value; and a replacement cutter of a slightly different size needs only the same. Because the adjustment is a number in the register, one program can also serve both roughing and finishing — the operator adds a small allowance to the radius value to leave stock, then corrects it for the finish pass — and a part that measures a few microns off size can be corrected by nudging the value and running again, without a single line of code changing.
How the control applies it
Cutter radius compensation works by adding an offset at right angles to every programmed move. The value lives in the tool table, read with a D number, just as tool length is read with an H number; the length value shifts the tool in Z, while this radius value shifts it in the plane of the cut. When the control reads G41 or G42 it moves the tool to the offset position and then holds it at the radius distance from the programmed contour for as long as the code is active, following the shape and keeping the tool against the wall it is cutting. The motion falls into three stages — establishing compensation as the tool leads in, executing along the contour, and cancelling as it leads away with G40 — and the control needs room for those moves to work correctly.
The rules of using it
Cutter radius compensation has firm programming rules, and breaking them is how parts get gouged or programs get alarms. Compensation is established and cancelled only on straight moves — G00 or G01 — never on an arc, and the lead-in and lead-out moves must be long enough, at least the tool radius and ideally more, for the control to engage and disengage the offset cleanly. The contour being cut must be continuous: the tool cannot cut along a line, retrace it, or reverse direction while compensation is active, because the control keeps the offset on one side. Internal corners and internal radii must be larger than the tool radius; a corner tighter than the cutter cannot be made, and the control either alarms or the tool gouges the far wall. And compensation is modal, so switching from one side to the other means cancelling with G40 first. These rules are why cutter compensation is used for clean, continuous profiling work — not for zigzag pockets, where the tool path is known and compensation would only fight the motion.
Cutter comp in the job flow
Cutter radius compensation is the sideways partner of the tool length offsets this wiki describes separately: both are per-tool values that keep a written program true despite the tool that happens to be loaded, one in height and one in the plane of the cut. Both sit on top of the work offsets that place the part, and both reward the same discipline — values measured honestly, entered correctly, and verified before the first cut. In the wider practice of CNC machining, much of the geometric work has moved into CAM, which often outputs the compensated tool path already calculated; but the machine-side value remains, because the last word on part size belongs to the register the operator can adjust. Cutter radius compensation is, in the end, the feature that keeps the program and the tool independent of each other: change the tool, wear it down, or tune the size, and the code that made the part is still the code that makes it.