Offsets
Machine versus Work Coordinates
At the heart of every CNC operation are two primary coordinate systems: Machine Coordinates (MCS) and Work Coordinates WCS.
Machine Coordinates
Machine coordinates are the fixed, absolute position of the CNC. This is the physical position of each axis and is limited by the physical dimensions of the machine.
- The Machine Origin is typically defined as the machine position where all axes are at their zero (or home) positions. For example, (X0,Y0, Z0).
- Machine coordinates tell the controller the exact position of the the axis gantries and the tool head (or spindle).
- Tool paths are rarely programmed in machine coordinates because the workpiece can be placed anywhere inside the machine envelope.
Work Coordinates
Work coordinates are a user-defined system that lives inside the machine's workspace.
- The Work Coordinate Origin is set manually (often called "zeroing") at a specific point on the raw material (stock) such as the front-left corner or center of a piece of wood or metal.
- Using work coordinates allows your tool path (g-code) to stay the same regardless of where the material is physically clamped on the bed.
How Work Coordinate Offsets (WCO) Work
A Work Coordinate Offset can be thought of as a translation layer that tells the machine, "The project's zero point is exactly X distance and Y distance away from the machine's home position".
Work Coordinate Offsets: Calculations
When you command the machine to X10 the controller looks at the offset and performs a simple internal calculation:
Target Machine Position = Work Coordinate + Work Coordinate Offset Value
For example, let's assume that the zero point of our workpiece is at X=100mm in machine coordinates. This means that the workpiece is +100mm from the X home position (X0)
When we command the machine to move to X10 in the work coordinate system we want the tool to end up +10mm from the X0 point of the workpiece.
Since the workpiece zero point (work offset) is already at +100mm in machine coordinates we need to move the machine to +110mm from the machine coordinate origin (X0).
The calculation looks like this:
Target Machine Position = Work Coordinate + Work Coordinate Offset Value Target Machine Position = 10 + 100 Target Machine Position = 110mm
CNC controllers perform this calculation automatically when working in the work coordinate system.
Vertical Offsets
To manage different tools and spindle configurations, two distinct vertical offsets are used: Spindle Length Offset and Tool Length Offset.
These offsets allow the controller to calculate the exact position of the tool tip relative to the workpiece.
Spindle Length Offset
The spindle length offset is the distance from the top of the Z axis travel (Z=0) to the point where the bottom of the spindle touches the tool setter.
This is a fixed calibration value that accounts for the distance from the Z-axis home position to a specific reference point on the spindle (typically the bottom of the spindle nose).
This establishes the "master reference" for the z-axis and allows the machine to know where the spindle ends before a tool is inserted.
Typically, you only need to measure the spindle length offset once after setting up the spindle on the machine as its position should not change relative to the Z-axis.
In cases where the spindle is moved relative to the Z axis, performing a new measurement of the spindle length offset will automatically compensate for any stored work coordinate offsets. This eliminates the need to re-enter or re-calculate work coordinate offsets if the spindle position changes.
Tool Length Offset
The tool length offset is defined as the distance from the spindle length offset point to the bottom tip of the cutting tool.
The controller automatically adjusts the Z axis position to compensate for the tool length offset with respect to the work coordinate offsets when a tool setter is used.
How Spindle Length Offset and Tool Length Offset Work Together
When the machine executes a move to a specific Z-height, it performs a real-time calculation:
ZAbsolute = ZWork + Spindle Offset + Tool Length Offset
By separating these two, you can change tools (updating the tool length offset) without ever needing to "re-home" the entire machine or redefine your Spindle Offset. This ensures that whether you are drilling a hole or surfacing a face, the machine always knows exactly where the "business end" of the tool is located.
Troubleshooting Vertical Offsets
| Symptom | Likely Cause | Fix/Check |
|---|---|---|
| "Air Cutting" (Tool is too high) "Tool Crash" (Z-axis/tool dives into workpiece) |
Incorrect tool length offset value: The current tool length offset is shorter than the actual tool | No toolsetter: Use tool setter controls to RESET the tool lengh offset to zero and re-zero or re-probe the Z-axis to the work piece. Tool Setter: Use the tool setter controls to MEASURE the tool length offset. IMPORTANT: Double-check the Z0 height as it may have changed due to the new tool length offset. Re-zero or re-probe as necessary. |
| Z-Axis Limit Error | Offset + Move exceeds travel: The combination of the Work Offset and the Tool Length exceeds the machine's travel limits | Check if your Z-axis is "topped out". You may need to lower your workpiece or use a shorter tool/holder. |