Proving a CNC Setup: Offset Cross-Checks and the First Good Part
Cross-check work and tool offsets before the first cut, read first-part errors to find which offset is wrong, and hand off a setup that holds up.
Table of contents
Once you can set up a CNC job, the next step is setting one up with nobody checking behind you. That changes the job. You are now the last person who can catch a wrong number before the machine moves fast. A mid-level setup person does not just enter offsets. They prove each one by a second method, and when the first part comes out wrong they can look at the errors and say which number caused them. Reminder before you start: machine motion near the part happens in single block, with rapid override turned down and a hand on feed hold.
What You Will Be Able to Do
- Cross-check a work offset and a tool length by a second method before the first cut.
- Find leftover values from the last job that can wreck a repeat setup.
- Cut a first part safely with stock left on tight features.
- Read a pattern of first-part errors and trace it to the right offset.
- Hand off a setup with a record the next person can trust.
Why One Check Is Not Enough
An offset can be wrong in ways that look fine on the screen. The number has the right number of digits. The control does not alarm. The tool still heads for the part. Setup crashes often come from a number that was typed once and never compared with anything.
The fix is simple. Every number that can crash the machine gets checked by a method that does not depend on how it was first set. If you set G54 with an edge finder, check it with a move and a look. If a tool length came from a presetter, compare it with the tool you can see in your hand.
Clear the Last Job First
Offset pages remember everything. On a repeat job or a machine that just finished another part, old values are a common trap.
| Page or field | What to look for | Why it hurts |
|---|---|---|
| Wear columns | Values left from the last run | Your new tool starts off size |
| Common or external work offset | Anything other than zero | Shifts every work offset at once |
| Unused G55 to G59 | Old values the program may call | The job runs in the wrong place |
| Tool diameter (D) | A value that does not match the tool | Every wall comes out wrong |
| Lathe nose radius and tip number | Values for a different insert | Tapers and chamfers go off size |
The common offset deserves its own line on your checklist. Many controls have a page, often labeled 00 or EXT, that adds to every work offset. If someone left Z 0.500 in it during a test, every program on that machine runs 0.500 inch from where the offsets say. Your G54 will look perfect. Your shop may use this page on purpose, so ask before you clear it, but always look at it.
Never assume the values from the last time you ran this job are still right. A vise may have moved, a fixture may have been pulled and replaced, or someone may have reset the machine. Stored values are a starting point to check.
Cross-Checking a Work Offset
Do this after work zero is set and before any tool cuts.
- In MDI (manual data input, where you type a line and run it), call a tool you have already measured.
- Set rapid override low and turn on single block.
- Run a move to a known spot, well above the part:
G90 G54 G00 X0 Y0
G43 H01 Z2.0
- Stop and look. The spindle center should sit over the point the setup sheet calls work zero. A pointer or a center finder in the spindle makes this easy to judge.
- Read the gap to the part with a scale or a block. It should match the Z you commanded.
- Check the machine position page. With no common offset, machine X and Y at this point should equal the G54 X and Y values.
Worked example. You commanded Z 2.0, so the tool tip should be 2.000 inches above the top of the part. You slide a 2-inch block under it, and it will not fit. A 1-2-3 block fits on its 1-inch side with about 7/8 inch left over, so the gap is about 1.875 inches. You are 0.125 inch low. That is too big to be tool wear or a touch-off slip. Either the wrong H number is active or the stored length is off by a block or a parallel. Find out which before you go on.
If you run two vises or a fixture with several stations, repeat this for every work offset the program calls. A correct G54 proves nothing about G55.
Cross-Checking Tool Lengths
Tool lengths have a built-in check: the tools themselves. Lay them out in order, or read the tool list, and compare what you see with what is stored.
Worked example. Your shop stores true tool length from the spindle gauge line.
| Tool | Description | Stored H value |
|---|---|---|
| T1 | 3-inch face mill | 4.125 |
| T2 | Spot drill | 3.310 |
| T3 | Long 1/4 drill | 3.980 |
| T4 | 1/2 end mill | 3.760 |
T3 is a long drill, and in your hand it clearly sticks out farther than the face mill. The stored value says it is shorter. That number is wrong, and the most likely story is that the drill was measured in a different holder, or at a different stickout, than the one in the machine. If T3 ran with 3.980 and its real length is 5.210, the tip would reach the part 1.230 inches before the control expects it, likely at rapid speed.
Three quick checks catch many errors:
- Order. The tool that looks longest should have the largest length, or the most positive value if your shop stores touch-off values from the part.
- Differences. Hold two tools side by side. The gap you can see should match the difference between their stored numbers, to within an eighth of an inch or so.
- Match. Each H number should match its T number, unless the setup sheet says otherwise. Read the G43 line for each tool in the program.
Leaving Stock on the First Part
On a tight feature, you do not want the first cut to be the final cut. You want it to leave a little stock, so you can measure and then come down to size. This costs a few minutes and removes most of the risk of an undersize part.
Worked example on a mill. A pocket is 2.0000 +0.0010 / -0.0000 wide, cut with cutter compensation. Your control's D offset is in radius mode.
- Before the finish pass, add +0.005 to the D wear value. The control now thinks the tool is 0.005 larger in radius, so each wall stops 0.005 short.
- Run the finish pass. The pocket should measure about 1.9900.
- Measure it. Say it reads 1.9896. That is 0.0004 narrower than expected, so the tool is pushing off a little, or its real size differs from the stored one.
- The target is the middle of the tolerance, 2.0005. You need 2.0005 - 1.9896 = 0.0109 more width.
- Each wall moves half of that, 0.00545. So change D wear from +0.005 to +0.005 - 0.00545 = -0.00045.
- Rerun the finish pass and measure again.
Your first thought might be to take the 0.005 back out. That adds 0.010 to the width, and the pocket comes out 1.9996, under the low limit. The measurement told you what the tool really does.
Not every feature can be recut. If the program does not repeat the finish pass easily, ask for an M00 stop before it, or use your shop's method for rerunning one tool. Do not jump into the middle of a program without following a restart procedure.
Reading First-Part Errors
A first part that fails is telling you something. Do not fix each dimension on its own. Write down every error first, with its sign, and look for the pattern.
| Pattern on the part | Most likely cause | Where to fix it |
|---|---|---|
| Every X location off by the same amount | Work offset X | G54 X |
| Every depth off by the same amount | Work offset Z | G54 Z, or your shop's Z method |
| One tool's depth off, the others good | That tool's length | H value |
| One tool's walls off, the others good | That tool's size | D value or wear |
| Hole-to-hole spacing good, whole pattern twisted | Part or vise not square | Indicate again, reseat the part |
| Wall good at the top, too thick at the bottom | Tool bending away from the cut | Lighter finish pass, shorter tool |
| Errors change from part to part | Part moving, chips, loose clamp | Workholding, not offsets |
Worked example. The print locates three holes from the left datum edge at 1.500, 3.000 and 4.500, each +/- 0.002.
| Hole | Measured | Error | |
|---|---|---|---|
| 1 | 1.500 | 1.5040 | +0.0040 |
| 2 | 3.000 | 3.0042 | +0.0042 |
| 3 | 4.500 | 4.5039 | +0.0039 |
All three are about 0.004 too far from the left edge. The spacing between holes is correct. So the program is fine and the drill is fine. Work zero sits about 0.004 to the right of the real edge.
Now find the direction. The tool has to land 0.004 closer to the left edge, which is the minus X direction. So lower the G54 X value by 0.004. If G54 X was -18.3620, it becomes -18.3660. Record the change on the setup sheet, and work out why it happened. A burr on the edge or a slip with the edge finder would both explain it.
Compare that with a different result: hole 1 is +0.001, hole 2 is +0.004, hole 3 is +0.007. The error grows along the part. An offset cannot cause that, because an offset moves everything by the same amount. Look at whether the part is square to the table, or whether the holes were measured from the wrong surface.
Lathe Setups
The same logic applies, with a few differences.
- Turret checks. Index each tool to a safe spot and read the X and Z positions. Boring bars sit on the other side of center in the numbers, so a sign that looks wrong may be right. Check it against a sister tool or the setup sheet.
- Soft jaws. Bore soft jaws while they are gripping a plug or ring at the same pressure you will run. Jaws bored with no load will not fit the part the same way when clamped.
- Second operations. When you flip a part, the Z zero now comes from a finished face. Confirm the part is seated against the stop in the jaws, because a chip here shifts every length on that side.
- Center height. A tool set above or below center changes the diameter it cuts and how it cuts near center. Look for a small nub left on a faced part.
Warning: Chuck pressure set for one part can be wrong for the next. Check the setup sheet each time, and confirm the chuck is closed on the part before you start the spindle.
First-Article Checks From the Setup Side
The first part proves the setup. The way you measure it matters as much as the numbers.
- Let it cool. A warm part reads large. Aluminum grows about 0.000013 inch per inch for each degree F. A 10-inch part that is 10°F warmer than the gauge reads 10 x 10 x 0.000013 = 0.0013 inch long. On a +/- 0.001 tolerance, that alone can fail or pass it falsely. Steel grows about half as much.
- Deburr before you measure. A burr on a datum edge tilts the part in the gauge.
- Measure from the print's datums. A hole location measured from the wrong edge passes on paper and fails at the customer.
- Check every line on your plan, including notes. Do not stop at the features you worry about.
- Run a second part before you trust the first. One part cannot tell a steady error from a one-time slip. If two parts agree, you can correct with confidence.
If your plan calls for a formal first article, the inspector needs the same print, the same revision and the same part. Hold the run until sign-off. Being sure it is good is not the same as having it signed.
Handing Off the Setup
A setup is not finished until someone else can pick it up. Before you leave it, record:
- The final work offset values and the location of the stop or fixture.
- Any wear values you set, and the part count when you set them.
- Any change you made to the setup sheet, with the reason.
- What you saw on the first parts. Note it if a tool ran near its limit.
Good note: "G54 X moved -0.004 after first part, burr on left edge. Filed the edge, clean it each load. Bore runs 0.0003 small after 30 minutes, expect one correction."
Weak note: "Setup good."
Common Mistakes
| Mistake | What it costs | How to avoid it |
|---|---|---|
| Trusting last run's offsets | Crash or scrap on a repeat job | Check them like a new setup |
| Ignoring the common offset page | Every program shifted | Look at it on every setup |
| Fixing each dimension on its own | Offsets fighting each other | List all errors, then find the pattern |
| Measuring a warm part | Corrections that overshoot | Let it reach room temperature |
| Going to size on the first pass | An undersize first part | Leave stock on tight features |
| Checking G54 only | A crash at the second vise | Check every offset the program calls |
Check Your Understanding
1. You run a check move to G54 Z 3.0 with T5, and a 3-inch block slides under the tool with 0.060 inch of air above it. What does that suggest, and what do you do?
The tip is about 3.060 inches above the part, so it is 0.060 inch high. That is too much for a touch-off slip. Stop, confirm the right H number is active, and recheck that tool's stored length before cutting.
2. On a first part, four pockets cut by T6 are all 0.002 too shallow. Pockets cut by T7 are on depth. Where do you look?
At T6's length. If every tool were off, the work offset would be the cause. Because only one tool is off, correct T6 with its length wear value and find out why its length was off.
3. A hole pattern measures +0.003 in X at one end of the part and -0.003 at the other. A coworker wants to split the difference in G54. Why is that wrong?
An offset moves everything the same way, so it cannot fix an error that changes along the part. The part may be crooked in the vise, or the measurement may be from the wrong surface. Find that first.
4. You are about to go to size on a bore with a +0.0005 / -0.0000 tolerance on the first part. What should you do instead?
Add a small amount to the wear offset so the tool leaves stock, cut, measure, then correct to the middle of the tolerance. The measurement shows what the tool really does before you commit.
Key Takeaways
- Check every crash-capable number by a second method before the first cut.
- Look at wear columns, the common offset and unused offsets on every setup, including repeat jobs.
- Read tool lengths against the tools you can see.
- Leave stock on tight features, and correct from the measurement rather than from the math alone.
- Write down all the first-part errors before you change anything. Same error everywhere points to a work offset, one tool's features point to that tool.
- A setup is finished when the next person can trust your notes.