Fixture Offsets in CNC: G54 to G59 and G54.1 P1–P99 Explained
In CNC machining, fixture offsets define different work coordinate systems (WCS) — allowing the machine to “know” where the part is located on the table.
This is done using G54–G59 and extended offsets G54.1 P1–P99.
📌 What is a Fixture Offset?
The CNC machine’s home (machine zero) is fixed, but your workpiece zero can vary.
Fixture offsets allow you to tell the machine:
“Treat this location as (0,0,0) for this part.”
You can have multiple parts or fixtures on the table and switch between them programmatically.
🧠 G-Code Summary
| G-Code | Description |
|---|---|
| G54 | Work Offset 1 (most commonly used) |
| G55–G59 | Additional standard work offsets |
| G54.1 P1 | Extended offset (P1 = Offset #1) |
| G54.1 P99 | Up to 99 extended offsets |
🧭 Typical Use: G54
G54 ; Select fixture offset #1
G00 X0 Y0 Z100 ; Move to part zero (offset)
- G54 applies the X/Y/Z shift defined in controller settings
- G-code now runs relative to the workpiece
🧪 Tool Table Example
| Offset | G-Code | X (mm) | Y (mm) | Z (mm) |
|---|---|---|---|---|
| 1 | G54 | 100.0 | 200.0 | 50.0 |
| 2 | G55 | 300.0 | 200.0 | 50.0 |
| 3 | G56 | 500.0 | 200.0 | 50.0 |
| … | … | … | … | … |
Each offset defines a different workpiece zero on the machine table.
🔁 Switching Between Fixtures
G54
(program for left part)
G55
(program for center part)
G56
(program for right part)
This is common in tombstone setups, horizontal machining, or multi-vise work.
🔄 G54.1 Pn – Extended Fixture Offsets
Many modern controls support G54.1 P1 to P99:
G54.1 P6 ; Select the 6th extended fixture offset
- Great for pallet changers
- Ideal for high-volume or automation setups
- Allows more than 6 standard offsets
🧰 Practical Example: Multi-Part Setup
G54 ; Left vise
(run operation)
G55 ; Center vise
(run operation)
G56 ; Right vise
(run operation)
Each part has its own zero — no need to modify toolpaths or reprogram coordinates.
🛠️ Setting Fixture Offsets (Manually or via G10)
Offsets can be set:
- In the machine control panel
- With a probing system
- Programmatically with G10
Example:
G10 L2 P1 X100.0 Y200.0 Z50.0 ; Set G54
G10 L2 P2 X300.0 Y200.0 Z50.0 ; Set G55
L2 = work offset, P1 = G54, P2 = G55, etc.
📊 Visualization
┌─────────────┬─────────────┬─────────────┐
│ G54 │ G55 │ G56 │
│ Part A │ Part B │ Part C │
└─────────────┴─────────────┴─────────────┘
- Each part has its own fixture offset
- You can run the same program with different G-codes
⚙️ Tips for Fixture Offsets
- ✅ Always activate the correct G54–G59 (or G54.1 Px) before starting cutting
- ✅ Use probing cycles (like G65 or G43.4) for automatic offset setting
- ✅ Consider using G10 for fully automated setups
- ✅ Simulate multi-offset programs carefully to avoid tool crashes
🧠 Summary Table
| G-Code | Description |
|---|---|
| G54–G59 | 6 built-in fixture offsets |
| G54.1 Pn | Up to 99 additional offsets |
| G10 L2 Pn | Set offset values programmatically |
🔚 Final Thoughts
Fixture offsets allow CNC machines to:
- Run multiple parts in a single cycle
- Avoid modifying toolpaths for different setups
- Save time in high-volume or repeat production
Mastering fixture offsets is key to professional CNC automation, modular setups, and fast changeovers.
Leave a comment