Assemblies and tolerance stack-ups

4 min readUpdated Jun 2026

A single fit is easy: pick a clearance, print, done. The trouble starts when parts chain together. A bracket bolts to a plate, the plate carries a rail, the rail holds a carriage — and by the time you reach the last part, all the little errors from the earlier ones have piled up and the final hole misses its bolt by half a millimetre. Nobody designed that error in; it accumulated. Managing that accumulation is tolerance stack-up, and it's what separates an assembly that clicks together from one you have to file and swear at.

Errors add up along the chain

Here is the arithmetic that catches everyone. Say each printed part holds ±0.1 mm — a reasonable FDM tolerance. Stack three of them so their errors line up, and the chain can be off by ±0.3 mm. Stack five and you're at ±0.5 mm. The tolerances add, and they add in the worst direction exactly when you can least afford it.

So the real budget question isn't "how tight is each part?" It's "how much total error can the last feature in the chain absorb and still work?" Work backwards from that.

Datums: measure everything from one place

The single most effective way to stop a stack-up is to stop chaining. If part B locates off part A, and part C locates off part B, every error compounds. Instead, locate everything off one reference — a datum.

Pick one face and one edge (or one hole) as the origin for a part, and dimension every important feature from that same datum rather than from the previous feature. Now an error in one feature doesn't propagate to the next; they're all measured from the same fixed point, so they stay independent instead of adding.

diagram
Chained errors add; datum-referenced errors stay independent.

In a physical assembly the same idea is a locating feature: one boss, one pin, one shoulder that defines where two parts sit relative to each other, and everything else hangs off that. A RaspberryPi case that locates the board on its four mounting holes and lets the port cutouts float to a generous clearance will always close; one that tries to make the board and every port hug its walls will bind on the first print.

Don't fit the same thing twice

The most common self-inflicted stack-up is double-fitting — constraining one joint in two places at once. A lid that registers on both an inner lip and an outer rim has to hit two clearances simultaneously; miss either by a tenth and it won't seat. Two dowel pins in two tight holes fight each other unless the holes are perfectly spaced, which they won't be.

The rule: one feature locates, the rest clear. Make one pin a snug locating fit and the second pin's hole a slot or an oversized clearance, so it positions without over-constraining. Register the lid on the rim or the lip, not both. Let one feature do the precise job and free the others to absorb error.

Design one gap to swallow the stack

Once errors are independent and you're not double-fitting, give the accumulated slop somewhere to go: a single, deliberate clearance gap sized to absorb the whole chain.

In a stack of three plates that bolt down through a common hole, make the bolt holes in the middle and top plates generous clearance (using the numbers in Real-world printed clearances) and let the bottom one locate. The bolt finds its way through; the slop lives in holes that don't need to be precise. You're not eliminating the ±0.3 mm — you can't — you're choosing where it lands, in a gap that doesn't care, instead of in the one fit that does.

That's the whole discipline: name your datums, fit each joint once, and route the unavoidable accumulated error into a clearance you designed on purpose. Do that and a multi-part assembly goes together on the first print, instead of becoming a session with a file and a heat gun.