Cutter Compensation G41 and G42 — Program to the Part, Not the Tool

Cutter radius compensation (also called cutter comp or CRC) lets you program the exact profile of the part — the actual geometry you want to cut — and tell the controller to offset the tool path by the cutter radius automatically. When you change to a different diameter cutter, you update the offset value in the tool table rather than rewriting the program.

G41 activates compensation to the left of the direction of travel. G42 activates compensation to the right.

Why Use Cutter Compensation?

Without compensation, you calculate the tool center path yourself — offsetting every move by the cutter radius. This works for simple shapes but becomes complex and error-prone on profiles with many features.

With compensation active, you program the part profile directly. The controller handles the offset math. This also makes it easy to:

  • Fine-tune the finished dimension by adjusting the offset value (not the program)
  • Use the same program with slightly different cutter diameters
  • Leave stock for finishing passes by increasing the offset beyond the actual radius

G41 vs G42 — Left vs Right

The direction of compensation is relative to the tool's direction of travel, not the orientation of the part.

G41 — Left of travel
If you're moving in the +X direction and the part profile is below the tool (in -Y), you want the tool to stay to the left of the profile. G41 offsets the tool in the -Y direction.

G42 — Right of travel
If you're moving in +X and the part profile is above the tool (in +Y), G42 offsets the tool in +Y.

A practical way to remember it: imagine you're walking in the direction the tool is moving. G41 keeps the part wall on your left; G42 keeps it on your right.

For conventional milling (tool climbing against the feed direction), G41 is typically used for external profiles and G42 for internal pockets. For climb milling (standard on modern machining centers), these are reversed.

Syntax

G41 D_ (compensation left, offset from D register)
G42 D_ (compensation right, offset from D register)
G40    (cancel compensation)

The D word references the tool diameter offset register in the controller. D1 typically corresponds to the offset stored for tool 1, though this varies by machine setup.

Activation and Cancellation Rules

Cutter comp must be activated on a linear move (G1 or G0) — not on an arc. The activation move is called the lead-in and must be long enough for the controller to calculate the first offset. If the lead-in is shorter than the tool radius, most controllers will alarm.

Similarly, comp must be cancelled on a linear move with G40. Cancelling on an arc causes a controller alarm on most Fanuc systems.

G0 X-15. Y0.          (approach outside the part)
G1 G41 D1 X0. F300    (lead-in — activate comp on linear move)
Y50.                   (cut along profile)
X100.
Y0.
X0.
G1 G40 X-15.          (lead-out — cancel comp on linear move)

Complete Example — External Rectangular Profile

Part: 80mm × 60mm rectangle, 10mm deep. Tool: 10mm end mill.

%
O3000 (EXTERNAL RECTANGLE WITH COMP)
G17 G21 G40 G49 G80 G90
G28 G91 Z0.
G90

T1 M6                         (10mm end mill)
G0 G90 G54 X-20. Y-20. S4000 M3
G43 H1 Z50.
M8

Z2.
G1 Z-10. F200                 (plunge to depth)

G1 G41 D1 X0. Y-10. F400     (lead-in, activate G41)
Y60.                           (left side)
X80.                           (top)
Y0.                            (right side)
X0.                            (bottom)
G1 G40 X-20. Y-10.            (lead-out, cancel G41)

G0 Z50.
M9 M5
G28 G91 Z0.
G28 X0. Y0.
M30
%

The program defines the actual part corners (X0/X80, Y0/Y60). The controller offsets the tool center by the radius stored in D1 — in this case 5mm for a 10mm cutter.

Using Comp for Finishing Allowance

One of the most useful applications of cutter comp is leaving deliberate stock for a finishing pass. If D1 stores a value of 5.5mm instead of the actual 5mm radius, the controller offsets 0.5mm more than needed — leaving 0.5mm of material on the wall. A finish pass with D1 set to exactly 5.0mm removes the stock and brings the part to final size.

This technique means a single program handles both roughing and finishing:

Roughing pass: D1 = 5.5 (leaves 0.5mm stock)
Finishing pass: D1 = 5.0 (cuts to final dimension)

No program edits required — only the tool table value changes.

Common Mistakes

Lead-in too short — the activation move must be longer than the tool radius. If you activate G41 with a 1mm move and the cutter is 10mm diameter (5mm radius), the controller cannot compute the offset and alarms.

Activating on an arc — always use a linear move (G0 or G1) to activate and cancel comp. Arcs during activation produce unpredictable offsets or controller errors.

Cancelling inside the profile — if you cancel G40 while the tool is still engaged with the part, the tool snaps to the programmed (uncompensated) position, potentially gouging the part.

Wrong G41/G42 — activating the wrong direction cuts into the part instead of around it. Always verify with a simulation before cutting.

Simulate Cutter Comp Before Cutting

Cutter compensation errors are among the hardest to predict by reading G-code alone. The offset direction, lead-in length, and cancellation position all interact in ways that only become obvious in simulation. Eureka3X shows the actual compensated tool path on the 3D machine model, so you can verify the offset direction and lead-in before any material is cut.

Try Eureka3X free for 30 days →

Related Articles

Start verifying your real G-code today.

Ensure your programs are safe and accurate with Eureka 3X Pro.

Start 30-Day Free Trial