Iterate and Measure
Nobody nails a functional part on the first try. The pivot comes out 0.15 mm too fat, the slot a hair too tight, the boss a touch too short. It isn't carelessness: the material moved the dimension as it cooled on the bed, and that drift never shows up on screen. The fast way to close a dimension isn't to predict it perfectly — it's to print a cheap part, measure how far it actually drifted, and feed that number back into the model. Two or three rounds of that loop get you closer than an hour spent guessing at a clearance you can't eyeball.
The nominal is a hypothesis; the calipers are the data
The number you typed into the model is what you asked for, not what came out. Everything in between is the process: the bead fattens shafts and narrows holes, cooling shrinkage pulls the outline in, elephant's foot swells the base. None of those effects show up in the nominal dimension, so treating it as the real measurement means designing blind.
That's why the first print isn't a failure — it's your first measurement. Reach for the calipers — not your eye — and measure the feature on the part once it has settled. A decent digital caliper resolves 0.01 mm, but its practical repeatability on an FDM part — with beads, layer lines, and the odd whisker of stringing — sits closer to ±0.03–0.05 mm. Measuring pressure and the not-quite-smooth surface widen that spread. Take three readings at rotated positions and average them; eyeballing it or "trying to see if it fits" doesn't give you a number to work from — a measurement does.
Measure the feature and compare it against its nominal value:
difference = measured − nominal
A pivot modeled at 8.00 mm that comes out at 8.18 mm has a difference of +0.18 mm: your printer is laying down an extra 0.18 mm of plastic there. Now you know the correction, and you know its sign. That's what separates measuring from guessing.

You know the direction of the bias — compensate for it
FDM drift isn't random noise: it has a fixed, predictable direction. Holes come out small and shafts come out big. The nozzle lays half a bead toward the void: inside a hole it eats diameter, outside a shaft it builds diameter on. Cooling shrinkage adds its share. You know in advance which way every dimension is going to move, so don't compensate at random — shift the nominal in the direction that cancels the bias you measured.
For the +0.18 mm pivot, drop the modeled diameter by 0.18 mm and reprint. For a hole that comes out 0.2 mm tight, open the dimension by 0.2 mm. The correction goes into the model, where it's exact and repeatable, not into the file, where it's irreversible and different every time. Apply the difference you measured — don't overcorrect by going "much smaller." If you overshoot, you bounce past the target and turn a two-print job into a five-print one.
One detail that saves you a pointless hunt: always measure away from the first layer. Elephant's foot fattens the base of a shaft and pinches the mouth of a hole only in the first few tenths of height, where the squished material spreads toward the void. There the effect overlaps with the bead bias, so calipers planted right at the start mix two causes and hand you a tighter dimension than the rest of the wall. Measure at mid-height, where the wall is already straight, and, if you have to, correct the base pinch separately — that's local geometry, not a drift of the whole dimension (covered in Holes, pegs and first-layer squish).
Iterate the cheap part and bank the correction
Iterating is only cheap if you iterate the cheap thing. Don't reprint the whole assembly on every attempt: load all the adjustment onto a single part — usually the smallest one, the one that takes minutes — and leave the others untouched as a reference. If a shaft and its hole don't fit, leave the shaft at its size and reprint just the hole again and again against the same shaft. A five-minute round you'll repeat without a second thought; a two-hour one tempts you to accept a mediocre fit.
There's a shortcut even cheaper than iterating the real part: iterate a coupon. Instead of reprinting the whole pivot to feel out its clearance, print a labeled strip of holes for the same shaft, each at a different clearance; pull it off the bed and feel by hand which one spins free and which one stays put. A coupon gives you several points on the curve in a single print, rather than one per round (it's the method in Test Coupons and Calibration). One caveat: calibrate it against the real shaft you're going to use. A printed hole tried against a printed shaft carries that shaft's error; if the final part runs a commercial metal pin, the clearance you found doesn't transfer directly.
And when the same error shows up on all your parts — your standard hole-shaft clearance, your printer's typical drift — stop measuring it over and over. Measure it once, write it down as your calibrated offset, and start new designs already compensated. That number carries over under three conditions. First, orient the part the same way as the coupon you measured it on, because the bias in the XY plane isn't the same as in height, and a hole printed horizontally comes out oval and closed off at the top — something a caliper on a single diameter won't catch. Measure two axes. Second, keep the diameter similar, because the bead error weighs more, relative to the feature, as the diameter shrinks. Third, don't touch material or temperatures. Shrinkage isn't a fixed bias — it depends on the thermal swing and the length of the dimension, so switching from PETG to PLA, opening an enclosure, or raising the bed can wipe out your correction entirely. Reuse it within those conditions; save iteration for each part's surprises, not for relearning constants you already measured (the material-by-material values are in Real printed clearances).
| Step | What you do | Using |
|---|---|---|
| the cheap part, not the assembly | the coupon or the small half | |
| Measure | the feature against its nominal | calipers, at mid-height, already cool |
| Compute | difference = measured − nominal | with its sign |
| Correct | move the dimension in the model | the measured difference, no overshoot |
| Stop | when the fit lands inside the clearance the function needs | the part's behavior |
The target is a range, not a point
The loop isn't after the perfect dimension: it's after a fit that does its job, and that's a range, not a point. A pivot that has to spin free accepts any clearance between, say, 0.10 and 0.25 mm per side depending on diameter and layer height; the moment you land inside that window, it turns without binding and without wobble, and chasing tenths further buys you nothing. Go over on clearance and the pivot wobbles; come up short and it seizes. Chasing the "exact" number beyond the range spends prints to improve a figure the function can no longer tell from any other.
That's why the stopping criterion isn't the caliper reading but the behavior of the part: Does it turn without binding? Does it slide without play? Does the pin go in by hand and hold? When the answer is yes, you've closed the dimension, even if the number isn't round. The target clearance for each function — free, sliding without play, located, press-fit — and why each is a range rather than a single value are in Real printed clearances; the loop in this article is the tool you use to land inside that range.
Put the whole process together, and the final stage is always this short cycle: print the cheap thing, measure against nominal, apply the difference to the dimension, update the model, and reprint. Each pass costs less than the last because you're correcting a known amount instead of exploring blind. The first print isn't the answer: it's the first measurement, and everything after it is letting the model absorb what the calipers tell you.
