CNC Milling Precision: 5 Costly Mistakes and How to Catch Them
Tight tolerances rarely fail because of a bad machine. They fail because one link in the loop was never checked. This guide maps five common CNC milling precision problems to the symptoms you see on the bench, the causes behind them, and what to change on the next run.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Symptom, likely cause, and what to do
Read left to right. The same symptom can have more than one cause, so check the cheapest item first.
| Symptom | Likely cause | What to do |
|---|---|---|
| Bore drifts oversize as depth increases | Tool deflection and radial runout | Shorten gauge length, re-check runout under 3 µm |
| Wall bows after unclamping | Clamping load distorts the part | Lower clamp force, add support under the wall |
| First part good, part 20 off by 0.03 mm | Thermal growth in spindle and table | Warm up 20–30 min, re-set the work offset |
| Chatter marks on a thin floor | Weak setup, long tool, high radial load | Reduce radial depth of cut, add a tuned support |
| Dimensions move after heat treat | Residual stress released in the blank | Stress-relieve the blank before finish cuts |
| Good CMM reading, bad fit at assembly | Wrong datum chosen for inspection | Inspect from the drawing datum, not the vise face |
| Corner radius undersized on deep pocket | Tool corner wear not compensated | Measure flank wear, update the offset each shift |
| Surface finish fades on a long run | Chip recutting and heat buildup | Improve coolant aim, shorten the chip path |
Treating the machine spec as the CNC milling precision you will get
A positioning spec of ±0.002 mm is measured with no cutter in the spindle and no part on the table. Put a 300 mm aluminium bracket in a vise and take a 6 mm radial cut with a Ø12 mm end mill hanging 60 mm out, and the structure deflects. On a light cut the deflection is a few microns. On a heavy one it passes 0.03 mm, which is 15 times the number on the brochure.
This is the machine, tool, and workpiece stiffness loop. Each element adds compliance, and the total behaves like springs in series. The weakest link governs the result, so upgrading the machine while ignoring the fixture rarely helps. On the parts we run, the vise and the tool overhang are usually the soft spots, not the spindle.
The practical test is a cutting trial, not a spec sheet. Machine a test feature at the real depth of cut and the real overhang, then measure. If the size walks with depth, the loop is flexing. If it stays flat, the loop is stiff enough for that operation.
- 1Check overhang firstEvery extra 10 mm of gauge length adds visible deflection on a Ø10 mm tool.
- 2Cut a test featureSame depth, same feed, same fixture as production.
- 3Measure at two depthsA size change with depth points to the loop, not the control.
Ignoring toolholder runout and its effect on size
Runout at the tool tip adds directly to the cut radius. A 10 µm runout on a Ø8 mm end mill means one flute cuts deeper than the others, and the effective diameter is no longer 8.000 mm. The part comes out oversize on a slot or undersize on a pocket wall, and the operator chases it with cutter compensation instead of fixing the holder.
The damage does not stop at size. Uneven flute loading wears one edge faster, so the corner radius breaks down early. Surface finish drops off before the tool reaches the end of its nominal life, and the operator blames the material. On aluminium at 12,000 rpm, a badly balanced assembly also feeds vibration straight into the wall.
Shrink-fit and hydraulic chucks hold runout below 3 µm when the shank is clean and the bore is undamaged. That is the baseline we set on our 16 five-axis centers. Tool length and diameter are measured on a setter, then the offset goes into the control before the first cut.
Collets are fine for roughing. For a finishing pass on a tolerance under ±0.02 mm, check runout at the tip with a dial indicator, not at the holder body.
- 1Measure at the tipRunout at the holder taper tells you nothing about the cutting edge.
- 2Clean the shankA single chip under the collet can add 10 µm of runout.
- 3Match holder to operationRough with collets, finish with shrink-fit or hydraulic.
Using a generic vise on a part that cannot take the clamp load
A standard vise applies force through the part and closes it slightly. The cutter removes material while the part is squeezed, so the geometry is machined in the loaded state. Release the clamp and the part springs back. A thin-wall housing that measured 0.01 mm oval in the vise measures 0.05 mm oval on the bench.
The fix is not more clamp force. It is a fixture designed around the part. For thin walls, support the back of the wall with a matched block or a low-melt compound. For a ring or a joint housing, clamp on a sacrificial boss and machine it off in a later operation. For small batches, soft jaws bored to the part radius spread the load over a wider area.
Modular fixtures and dovetail blanks let you hold a part on a face that stays after machining. That face then becomes the datum for the second operation, which keeps the two setups aligned. On a 4,000 mm frame we machine in one pass, the rail and the supports are part of the fixture design, not an afterthought.
- 1Clamp on a face you keepSacrificial bosses are removed last, so the datum survives.
- 2Support thin wallsBacking blocks reduce both deflection and chatter.
- 3Never chase the clampMore force usually makes the spring-back worse.
Skipping in-process measurement on a long run
A warm spindle grows. Over a two-hour run, the Z axis on a typical machining center can drift 20–40 µm as the headstock heats up. The first part is on nominal and part 30 is out of tolerance, and nobody notices because the operator only checks the first one.
In-process metrology closes that gap. A probe check on a known feature every 10 to 20 parts tells you the direction and rate of drift. From there you can re-set the work offset or adjust cutter compensation before the drift leaves the tolerance band. On a run of 500 parts, this is the difference between one offset change and a full rework lot.
On our own runs, the pattern is to warm up the machine for 20 to 30 minutes, cut a warm-up part, measure it, then start production. In-process checks run at fixed intervals, and every part gets a final inspection before shipment. Reports are available on request.
- 1Warm up the machine20–30 minutes of run-in before the first production cut.
- 2Probe on a scheduleEvery 10–20 parts on a feature that matters.
- 3Act on the trendAdjust the offset before the part leaves tolerance.
Machining a blank that still holds residual stress
Rolled plate and extruded bar carry internal stress from the mill. Remove material from one side and the balance changes, so the part bows. The cut is accurate when it leaves the machine, and the part is out of flatness a day later, or after heat treatment.
Pre-conditioning the blank removes most of that risk. Rough machine, then stress-relieve, then finish. Leave 0.5 to 1.0 mm of stock per side for the finish pass so the stress-relief step has something to remove. On parts that will be heat treated after machining, do the roughing before treatment and the finishing after.
For aluminium, a rough-and-rest cycle works when a full stress relief is not practical. Rough to within 1 mm, let the part sit, then finish. On 17-4PH or 4140 that will be hardened, plan the sequence around the heat treat, not around the machine schedule. If the drawing calls for flatness under 0.05 mm over 300 mm, the sequence matters as much as the cut.
- 1Rough, relieve, finishLeave 0.5–1.0 mm per side before the final pass.
- 2Sequence around heat treatRough before, finish after, on hardened parts.
- 3Check flatness laterMeasure a day after machining, not an hour.
How to run a first-article check that catches all five
- 1Warm up the machineRun the spindle and axes for 20 to 30 minutes at production speed. Cut one warm-up part and set it aside.
- 2Measure tool runout at the tipUse a dial indicator on the cutting edge. If runout is over 5 µm on a finishing tool, change the holder or re-seat the shank.
- 3Cut a test feature at real depthSame overhang, same feed, same fixture as the production part. Measure at two depths to see if the loop is flexing.
- 4Check clamping distortionMeasure a critical dimension in the fixture, then unclamp and measure again. A shift over 0.01 mm means the fixture is loading the part.
- 5Set the in-process intervalProbe a known feature every 10 to 20 parts on a long run. Record the reading so you can see the drift direction.
- 6Confirm the heat treat sequenceFor hardened parts, rough before treatment with 0.5 to 1.0 mm of stock, finish after. Check flatness a day later.
Questions engineers ask before a precision run
What tolerance can you actually hold on a production run?
Our stated capability is ±0.005 mm on critical features, with surface finish from Ra 0.2–0.8 μm on a fine finish. Not every feature on a part needs that. We agree on the critical dimensions from the drawing and hold those, while the rest run to general tolerance.
If a drawing calls for ±0.005 mm on a 300 mm dimension, we will flag it during the free DFM check, because that tolerance depends on geometry, material, and sequence as much as on the machine.
How do you handle a part that is too thin to clamp?
We design the fixture around the part. That usually means clamping on a sacrificial boss, supporting the thin wall with a matched block, or boring soft jaws to the part radius so the load spreads.
On very thin sections we may add a low-melt support or machine the wall in two passes with a rest between them. The point is to keep clamp load off the finished surface.
Do you stress-relieve blanks before finishing?
When the drawing calls for flatness or when the material is known to move, yes. The sequence is rough, stress-relieve, then finish with 0.5 to 1.0 mm of stock per side for the final pass.
For parts that will be heat treated, we rough before treatment and finish after. That keeps the distortion in the roughing stage where it is easy to correct.
Can you inspect against a datum that matters at assembly?
Yes. We inspect from the drawing datum rather than from the vise face, and reports are available on request. If the assembly datum is a pin hole or a machined face, tell us at the quote stage so we build it into the setup.
All parts get 100% inspection before shipment, covering raw material check, in-process monitoring, and final inspection.
How fast can a precision run start?
Quotation and free DFM analysis within 12 hours. Production can start within 24 hours after that, and parts typically ship in 3–5 days. We run from one prototype to 10,000+ part runs, with no minimum order quantity.
There is no guaranteed delivery date, but the historical late-delivery probability on our floor is below 2%.
What do you need to give a useful DFM answer?
A 3D model, a 2D drawing with the critical dimensions and tolerances, the material, and the surface finish callouts. Tell us which dimensions are functional and which are reference. That lets us focus the sequence on the features that matter.
Uploads are secure and confidential, and an NDA is available on request.
Send the drawing before the first cut
We review the model and the tolerance callouts, flag the five risk points above, and send a quote with a DFM note within 12 hours.
12-hour quote100% inspectionNo minimum order