Tool Length Offsets in CNC: G43, G44, G49 Explained with Practical Examples
In CNC machining, tool length compensation is critical to ensure that every tool reaches the correct Z-depth, even if the tools are different lengths.
That’s where G43, G44, and G49 come in.
🔧 What is Tool Length Offset?
Each CNC tool is a different length. Rather than manually adjusting your program for each tool, you store each tool’s length in a tool offset table (usually H01–H99), and use it dynamically with G-code.
This ensures:
- Consistent Z-depths
- Quick tool changes
- Accurate multi-tool operations
🧠 G-Code Summary
| G-Code | Function | Description |
|---|---|---|
| G43 | Apply tool length offset | Most commonly used |
| G44 | Apply negative offset | Rare, typically unused |
| G49 | Cancel tool length offset | Used after tool change or end of job |
📐 Typical Use: G43
T1 M06 ; Select Tool 1
G00 G90 G54 X0 Y0
G43 H01 Z100.0 ; Apply tool offset H01, rapid to Z100
H01refers to the offset stored for Tool 1 in the tool tableZ100is the safe height (before descending)
🔎 G43 always adds the length from the tool table to the current Z.
🧪 Tool Length Table Example
| Tool | Offset (H) | Length (mm) |
|---|---|---|
| T1 | H01 | 85.50 |
| T2 | H02 | 91.25 |
| T3 | H03 | 76.00 |
When you use G43 H02, machine compensates for 91.25 mm automatically.
⚠️ G44 – Negative Tool Offset (Rare)
G44 H01 Z100.0
- Applies the negative of the offset.
- Used only in very specific or legacy applications.
❗ Most modern controllers recommend avoiding G44.
⛔ G49 – Cancel Tool Length Offset
Used when:
- Ending a program
- Changing tools without
Txx M06 - Resetting the Z-axis
G49 ; Cancels tool length offset
It removes any G43/G44 influence on the tool length.
🔁 Practical Workflow Example
T2 M06 ; Select Tool 2
G00 G54 X50 Y50
G43 H02 Z100.0 ; Apply tool offset for Tool 2
G01 Z-5.0 F120 ; Move down to cutting depth
...
G00 Z100.0
G49 ; Cancel tool offset
M30
✅ This ensures that tool lengths are compensated automatically and safely.
💡 Visualization
Machine Zero (Z)
│
│ ← H02 = 91.25mm
│───────────── Tool Tip (after G43 H02)
│
└── Table Surface (Workpiece Zero)
- G43 shifts the Z motion upward so tool tip reaches programmed depth correctly.
🧰 Tips for Using Tool Offsets
- ✅ Always pair
G43with the correctHnumber - ✅ Set the tool length using a tool setter or manual measurement
- ✅ Include tool offset commands immediately after tool change
- ✅ Cancel offsets using
G49before changing to a new tool - ✅ Simulate your program to validate safe retract and depth
🔧 What Happens If You Skip G43?
Without G43, the tool won’t compensate for length. This results in:
- Crashing into the part
- Incorrect Z-depth
- Inconsistent machining
📌 Advanced Tip: Use G10 for Offset Setup
You can programmatically set tool offsets using G10:
G10 L1 P1 R0 Z85.50 ; Sets Tool 1 (H01) length to 85.50 mm
This is great for automated setups or when generating code from CAM.
🧠 Summary
| Code | Use Case |
|---|---|
| G43 | Apply tool length offset |
| G44 | Apply negative offset (rare) |
| G49 | Cancel tool length offset |
📚 Final Thoughts
Tool length offsets are a fundamental aspect of CNC machining:
- Ensures consistent depths
- Supports multi-tool programs
- Enhances safety and flexibility
Always use G43 with the correct H-code after every tool change to avoid crashes and ensure precision.
Leave a comment