CNC zero point explained
Every coordinate a CNC machine moves to is measured from a zero. There are several of them on one machine, and mixing them up is one of the most common causes of scrapped first parts. This page explains which zero is which and how the offsets between them actually work.

What a CNC zero point actually is
A CNC control does not know where the part is. It only knows numbers. The zero point is the origin those numbers are counted from, so it defines the coordinate system the toolpath lives in. Move the origin and every position in the program shifts with it.
Machine builders pick one physical spot on the machine as the permanent origin. On a mill this is normally the extreme of X, Y and Z travel; on a lathe it is usually the spindle face or the turret reference. This origin does not move when you change jobs. It is the anchor the machine returns to during homing, and it is what the absolute encoder or the limit switch establishes.
Most controls keep a second layer on top of that: a work offset. You probe the part or the vise once, store the offset in a G54-style register, and the program runs in part coordinates from then on. The gap between the two origins is the number that does the work.
Machine zero, work zero and tool zero
Machine zero is fixed by the builder and cannot be edited from the program. Work zero is where you decide the part sits. Tool zero is the length and radius of the cutter you bolted into the spindle. Three separate numbers, three separate places to make a mistake.
Tool length is stored as a Z offset, measured from the spindle gauge line to the tip. On a 40-taper machine that offset can be 100 mm or more. Get the sign wrong and the first rapid move drives the cutter into the stock. This is why most shops pre-set tool lengths offline and verify with a slow single block.
On a 5-axis machine the picture widens. There is a rotary center for the trunnion, a pivot distance to the spindle, and often a second work offset for the rotated frame. G54 gives way to G54.2 or a dynamic work offset, and the control recomputes part position as the table tilts.
For tight work we hold ±0.005 mm (±0.0002 in) with 16 simultaneous 5-axis centers and a Ø400 mm rotary table. At that level the rotary center has to be dialed in, not assumed.
How each zero gets set on the floor
Machine zero comes from homing. The control drives each axis to a limit or reads an absolute encoder and declares that spot zero. On a machine with absolute scales this happens once at power-up and survives a shutdown. On incremental systems you home every morning, and you home before you trust any stored offset.
Work zero starts with the drawing. The engineer picks a datum: a corner of the blank, a bored hole, a face that will be machined first. Everything downstream inherits that choice. Pick a datum on a rough cast surface and you are chasing a moving target for the whole run.
Setting the work offset is a touch-off job. On a mill you bring a probe or an edge finder to the datum edge and store the number in G54. On a lathe you face the part and store Z, then turn a diameter and store X. The reading is only as good as the surface you touched.
A face mill leaves a witness mark. Touch that instead of the true face and you are off by the depth of cut. We check the setup with a dial indicator before the first part, not after.
What happens when a zero is wrong
A wrong work zero in X or Y shifts the whole part. The geometry is perfect, the position is not. If the tolerance is ±0.05 mm and you are 0.2 mm off, every feature is out, and the scrap is the entire run. This is the most expensive class of error because it looks like a good part until you inspect it.
A wrong tool zero in Z usually shows up as a crash or as a floor that was not cut. Too long by 5 mm and the cutter hits the vise. Too short and you leave stock on the face. Both are caught by a single block through the first toolpath.
A wrong rotary center on a 5-axis job twists features around the pivot. Holes that should be coaxial come out skewed, and the error grows with distance from the center. Ball bar checks and a test cut on a known block catch this before production.
Offsets drift. Thermal growth on a long run moves Z by a few hundredths of a millimeter. We re-check critical offsets at set intervals and log the readings, which is part of how we hold a 99.99% qualification rate.
Which zero to use for which job
Pick the zero that matches what you are about to measure.
| Zero | Where it lives | Changes with | Set by |
|---|---|---|---|
| Machine zero | Machine travel extreme or spindle face | Nothing | Homing or absolute encoder |
| Work zero | Your chosen datum on the part | Every new setup | Probe, edge finder, indicator |
| Tool zero | Spindle gauge line to cutter tip | Every tool change | Presetter or in-machine touch-off |
| Rotary center | Trunnion pivot point | Machine geometry | Dial indicator and ball bar |
| Fixture offset | Vise jaw or tombstone face | Every fixture swap | Indicating the fixture |
| Program origin | First line of the G-code | CAM post decisions | Programmer |
The short version
If the part is a one-off, touch off on the machine and trust the probe. If it is a 10,000-part run, define the datum in CAM, preset the tools offline, and keep a written offset log so the second shift sets up the same way the first one did.
Questions we get about CNC zero points
Does the work zero have to be a corner of the part?
No. Any repeatable feature works: a bored hole, a machined face, a pin in a fixture. What matters is that the datum is defined on the drawing and reachable by the probe without a tool change.
A corner is popular because it is easy to describe in CAM. It is a poor choice on a rough casting, where the corner moves from part to part.
Can I run a program without setting work zero?
Only if the program was posted in machine coordinates and you loaded the blank in exactly the same place every time. That is a fixture-only workflow and it leaves no room for setup error.
For anything with a tolerance tighter than ±0.1 mm, set the work offset and verify it with a test feature before the run.
Why does my part measure correct but sit in the wrong place?
The work offset is wrong, not the geometry. The cutter followed the path correctly relative to a datum that was not where the control thought it was.
Re-indicate the datum, re-store the offset, and cut one test feature. If it lands, the program is fine.
How often should tool offsets be re-checked?
On a new setup, before the first part, and after any tool change where the holder was disturbed. On a long unattended run, re-check the finishing tools at a fixed interval.
Thermal drift on a 4,000 mm machine can move the effective Z by a few hundredths of a millimeter over several hours. That is enough to break a ±0.005 mm callout.
Do 5-axis machines need a separate zero?
Yes. The rotary center is a machine parameter, but the work offset for a tilted frame is a setup decision. Some controls handle this with a dynamic work offset that rotates the frame for you.
If the control does not, the programmer has to post the part in a rotated coordinate system, and the operator has to set both offsets. Skipping the second one is a common source of skewed holes.
Send us your drawing and we will set the zeros
Upload a STEP file and we return a quotation with a free DFM analysis within 12 hours. Production can start within 24 hours, and parts ship in 3–5 days.
12-hour quote100% inspectionNo minimum order