MFG-CNC14-04 · Lesson 8 · 12 clock hours · demo
Tool-Length Compensation and Cutter-Radius Compensation
Objective. Students apply G43/G44 tool-length compensation and G41/G42 cutter-radius compensation in G-code programs, correctly entering offset values so the simulated cutter follows the part profile at the correct depth and wall location.
⚠ Pending professional review
This lesson, its worked examples and its practice questions has not yet been verified by a licensed engineer or certified journey-level tradesperson or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.
VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.
Why Compensation Exists
No two tools are exactly the same length, and no cutter is a perfect zero-radius point. When you load a 3-inch end mill and a 4-inch drill into the same program, the control has no way to know the difference — unless you tell it. Compensation is the system that bridges the gap between the ideal geometry your CAM software assumed and the real tools sitting in the spindle.
There are two separate compensation types you must master: tool-length compensation (TLC), which corrects the Z-axis position, and cutter-radius compensation (CRC), which corrects the X-Y position of the tool centerline relative to the part profile.
Tool-Length Compensation: G43 and G44
G43 activates positive tool-length compensation: the control adds the stored H-offset value to every Z-move the program commands. G44 subtracts it. In almost all shop practice, G43 is used with a positive offset value. G44 is rare and can be confusing — stick with G43 unless a specific application requires otherwise.
The H-word in the block points the control to the correct row in the offset table. For example:
```
T01 M06
G43 H01 Z1.0
```
This tells the control: activate TLC, use the value stored in offset register H01, and rapid to Z1.0 after the offset is applied. If H01 contains 0.625 (inches), the machine physically moves to Z1.625 relative to the machine home reference.
How offsets are measured and entered: A tool-length offset is typically the distance from the spindle gauge line (or a fixed reference point) to the tool tip. On a Haas mill you measure each tool with a tool-length probe or a 1-2-3 block at the work surface, then enter the result in the Offset page under the matching H number. The offset value compensates for the difference so that Z0 in the program always means the part surface.
Safe Z before activation: Always rapid to a safe Z height before or at the same block where you invoke G43. Activating compensation mid-cut or at an unexpected Z level can drive the tool into the workpiece. Cancel compensation with G49 or by commanding T0 H0 at the end of a tool call.
Cutter-Radius Compensation: G41 and G42
Your CAM software normally programs the tool centerline path. If the cutter has a 0.500-inch radius and you program exactly on the part wall, the tool removes 0.500 inches too much material — the wall is undersized. CRC fixes this by automatically offsetting the centerline path by the stored D-register value.
- G41 — cutter left (conventional climb note): Offsets the tool to the left of the programmed path in the direction of travel. Use G41 when machining the outside of a profile moving counterclockwise, or the inside moving clockwise, depending on your setup. Most external contour finishing uses G41.
- G42 — cutter right: Offsets the tool to the right of the programmed path.
A typical CRC sequence looks like this:
```
G41 D01 G01 X1.0 Y0.5 F10.0
```
D01 points to the radius (or diameter) value stored in offset register D01. On Haas controls the D offset usually stores the actual cutter radius. Verify with your machine documentation — some controls use diameter.
Lead-in and lead-out moves: You must give the control room to ramp into compensation. Program a straight-line approach move (at least equal to the tool radius in length) before the first contour element. Trying to activate G41/G42 directly on a corner causes an alarm or gouging. Cancel CRC with G40 on a clear move away from the part.
Leaving CRC active between tools is a common mistake that causes crashes. Always cancel G41/G42 before a tool change.
Reading and Editing the Offset Table
On a Haas control, press the Offset key to display the tool-offset page. You will see columns for Geometry (measured length or radius) and Wear (fine trim added to geometry). The control adds geometry + wear to get the active offset. When diagnosing a Z-error, check both columns — a technician or instructor may have entered a deliberate wear value to simulate a real-world error.
Single-Block Mode for Troubleshooting
When verifying or diagnosing offset problems, use single-block mode (MDI or the Single Block switch on the operator panel). The machine executes one block at a time and stops, letting you read the position display, compare it to your expected value, and catch errors before they become crashes. In simulation (CNCSimulator Pro), the same discipline applies — step through blocks one at a time and check the simulated Z and X/Y positions against your calculations.
Safety Reminders
- Confirm all offset values before pressing Cycle Start on a real machine. An incorrect TLC offset can drive the spindle into the fixture or vise.
- Keep hands clear of the spindle and work envelope when the control is in any active mode.
- On real equipment, lockout/tagout procedures apply whenever you reach inside the machine enclosure for tool changes or workpiece setup. Simulation does not replicate this hazard, but you must internalize the habit now.
- Wear safety glasses any time you are at or near an operating machine tool.
- Never override feed-hold or single-block stops to rush through verification.
Key terms9
Tool-Length Compensation (TLC)A control feature (G43/G44) that adds or subtracts a stored offset value to every Z-axis command so that different-length tools all reach the programmed part surface at Z0.
H-offset registerA numbered memory location in the CNC control's offset table that stores the tool-length value referenced by the H-word in a G43/G44 block.
Cutter-Radius Compensation (CRC)A control feature (G41/G42) that automatically shifts the programmed tool-centerline path left or right by the stored D-offset value so the cutter edge — not the centerline — follows the part profile.
D-offset registerA numbered memory location that stores the cutter radius (or diameter, depending on control) used by G41/G42 to calculate the offset path.
G40The G-code that cancels cutter-radius compensation (G41 or G42); must be programmed on a clear move away from the part before a tool change or program end.
G49The G-code that cancels tool-length compensation (G43/G44); good practice to include at the end of a tool call sequence or program.
Lead-in moveA straight-line approach segment programmed before the first contour element when activating G41 or G42; must be at least as long as the cutter radius to allow the control to ramp into offset smoothly.
Wear offsetA fine-trim value added to the geometry offset in the offset table; used to compensate for gradual tool wear without rewriting the geometry value.
Single-block modeAn operating mode in which the CNC control executes one program block at a time and stops, allowing the operator to verify position and detect errors before continuing.
Worked examples4
1. The program commands G43 H02 Z0.5. The offset table shows H02 Geometry = 3.750 inches, Wear = 0.000. What Z machine-coordinate position does the control move to?
- Identify the commanded Z value in the program: Z0.5
- Identify the active TLC offset: H02 Geometry (3.750) + Wear (0.000) = 3.750 inches
- G43 adds the offset to the commanded Z: 0.5 + 3.750 = 4.250 inches
- The machine moves to Z4.250 in machine coordinates.
Answer: The control moves to Z4.250 in machine coordinates.
2. A program calls G43 H03 Z-1.000 for a finish pass. H03 Geometry is entered as 4.125 inches but should be 4.375 inches (the tool is 0.250 inch longer than recorded). How far off is the actual cutter tip from the intended depth, and in which direction?
- Intended offset (correct): 4.375 inches. Commanded Z: -1.000. Correct machine Z = -1.000 + 4.375 = 3.375 inches.
- Actual offset entered: 4.125 inches. Actual machine Z = -1.000 + 4.125 = 3.125 inches.
- Difference: 3.375 - 3.125 = 0.250 inch.
- The machine Z is 0.250 inch lower than intended, meaning the tool tip is 0.250 inch deeper into the part than programmed — an overcut in Z.
Answer: The cutter tip is 0.250 inch too deep (over-cut in the Z direction).
3. A contour program uses G41 D04. D04 is set to 0.375 (the cutter radius). The programmed path runs along X = 2.000. What X position does the tool centerline actually travel to when cutting the left side of the profile with G41 active?
- G41 offsets the tool centerline to the left of the programmed path by the D-offset value.
- Programmed X = 2.000. D04 = 0.375 inch (cutter radius).
- With G41, centerline shifts left (in the direction of travel): centerline X = 2.000 + 0.375 = 2.375 inches.
- The cutter edge then contacts the part wall at X = 2.000, which is the intended surface.
Answer: The tool centerline travels at X = 2.375 inches; the cutter edge contacts the part wall at the programmed X = 2.000 inches.
4. A student sets up a contour without G41. The cutter has a 0.250-inch radius and the program path follows the intended part wall exactly. After machining, they measure the pocket wall and find it is 0.500 inch wider than the drawing dimension (0.250 inch overcut on each side). If G41 is now added with D05 = 0.250, by how much will each wall move inward?
- Without CRC, the centerline runs on the wall; the cutter removes one radius (0.250 inch) beyond the programmed line on each side.
- Total extra material removed each side = 0.250 inch, matching the observed 0.500-inch total width error.
- Adding G41 D05 = 0.250 shifts the centerline 0.250 inch away from each wall.
- Each wall moves inward by 0.250 inch, correcting the overcut and matching the intended drawing dimension.
Answer: Each wall moves inward by 0.250 inch, eliminating the overcut on both sides.
In class: Using a compensation-concept diagram, students manually calculate expected Z-position with G43 H-offset applied for three different tool lengths entered in the offset table, then verify in simulation. · Write a contour program that intentionally omits G41, observe the resulting wall error in simulation, then insert G41 with the correct D-offset and document the dimensional change in a before/after comparison table. · Offset-change drill: instructor secretly enters a wrong tool-length offset; students run the program in single-block mode in simulation, identify the Z-error symptom, locate the offset table entry, correct it, and re-run.
Materials: CNCSimulator Pro; compensation-concept diagram handout; offset-calculation worksheet; Haas operator manual Tool Offsets section; contour profile drawing
Check: Before/after comparison table must show correct dimensional change matching the inserted offset value; offset-change drill completed with correct diagnosis and fix within 10 minutes; instructor sign-off required.
Practice check8
Answer each question, then check it. Nothing is recorded; this is your own practice.
Record this lesson on my transcript. Sign in with your key and enrollment email to record lessons (enroll free if you have no key). This page stays open to read and practise.