Does Position Tolerance Belong in a 1D Stack-Up?
Sometimes — and the deciding question is direction, not the callout type. A position tolerance controls the location of a feature's axis or center plane. It belongs in a 1D stack-up only when the direction it controls runs along the stack axis: then the diameter zone folds into the chain as a plus-minus equal to half the zone. When the controlled direction is perpendicular to the stack, position contributes nothing to that chain — and adding it anyway is how stack-ups quietly double their own answer.
The only rule that matters
Project the tolerance zone onto the stack axis. Whatever width the zone has along that direction is the contribution; everything the zone does in the other directions belongs to a different chain.
Case A — perpendicular: no contribution
The classic forum example: a bolt-hole pattern positioned Ø0.4 to a face datum whose normal is the stack direction. The holes' axes run along the stack direction, so the position zones locate them within the plane of that face. The holes can wander to the edges of their zones and the axial gap never moves — nothing in the chain is measured in the direction the callout controls. Contribution to this stack: zero. Engineers who dump every printed tolerance into the sum get a confident wrong number for exactly this reason.
Case B — along the stack: halve the zone
When the located feature sits along the stack direction — a pin axis positioned along the gap it helps define, or a face controlled by a position zone — the zone becomes a genuine contributor. A Ø0.4 cylindrical zone lets the axis sit anywhere within 0.2 mm of true position in any direction, so along the stack axis: Øt → ±t/2. A non-diameter position zone on a planar feature halves the same way — a 0.4-wide zone of two parallel planes is ±0.2 about the centered face.
The modifiers and the surface callouts
- MMC bonus. The printed value is the zone when the feature is at maximum material condition. As the feature departs toward LMC the zone grows by the departure — for a hole, how much larger its actual mating envelope is than its smallest allowed size; for a pin, how much smaller than its largest. For worst-case chains the conservative and common practice is to ignore bonus entirely and treat the zone as fixed at the printed value; including it means the zone can reach printed value plus size tolerance. For RSS, practices differ — some add the bonus range as a contributor, inflating the variance — but counting it statistically while ignoring it worst-case is inconsistent. Recommendation: ignore bonus in worst-case, and state that in the report.
- Datum shift (MMB datum references). A separate effect, often confused with bonus. When a datum feature of size is referenced at maximum material boundary, the simulator is a fixed-size boundary; if the datum feature departs from that size the part can translate — and rotate — on the simulator. In a 1D chain it appears as an extra shift term: up to half the clearance between datum feature and simulator, so ±(envelope − MMB)/2 along the stack axis. Bonus enlarges a tolerance zone; shift moves the whole part. They stack.
- Flatness and profile on chain faces. A surface control on a face that is already a chain contributor consumes space in the same chain. The classic pairing: two dimensions at ±0.5 whose faces each carry a 0.5 flatness spec — each flatness zone lets the local surface stray ±0.25 about the face mid-plane, so the chain picks up two more ±0.25 contributors on top of the ±0.5 dimensions. Small callouts, same arithmetic.
- Orientation effects. Position zones also bound orientation for features of size, and a tilted feature can displace a face along the stack in ways the axis-location arithmetic does not capture. That is 3D interaction — flag it and read the boundary section below.
Worked example: two parts on pins, one gap
A base plate carries two dowel pins, each positioned Ø0.4 to datum B on the plate. Two parts mount over the pins — their bores locate on the pins with negligible clearance — and bolt down through clearance-hole patterns positioned Ø0.4 to the mounting face, datum A. The bolts clamp along the stack direction, so those hole position zones lie in the plane perpendicular to the chain. The key characteristic is the gap between the mounted parts' facing faces:
| Contributor | Callout | In the chain? | ±tol (mm) |
|---|---|---|---|
| Pin 1 location along the gap direction | position Ø0.4 to B | Yes — zone projected on the stack axis | 0.20 |
| Pin 2 location along the gap direction | position Ø0.4 to B | Yes | 0.20 |
| Part 1: pin bore axis to facing face | 30.00 ±0.10 | Yes | 0.10 |
| Part 2: pin bore axis to facing face | 30.00 ±0.10 | Yes | 0.10 |
| Parts 1 & 2 bolt-hole patterns | position Ø0.4 to A | No — controls in-plane location only | 0 |
With pin spacing 120.00 nominal, g = 120.00 − 30.00 − 30.00 = 60.00 mm. Worst-case: 0.20 + 0.20 + 0.10 + 0.10 = ±0.60, so g = 60.00 ±0.60 — guaranteed between 59.40 and 60.60 mm while the drawing values hold. RSS: √(0.20² + 0.20² + 0.10² + 0.10²) = √0.10 ≈ ±0.32 as a ±3σ-equivalent band.
Two ways to get this wrong. Fold the Ø zones in un-halved and the worst-case grows to ±1.00. Add the bolt-pattern positions too — because "they have position tolerances" — and you arrive at ±1.80, triple the honest answer, achieved by summing tolerances in directions the chain cannot feel. And in a real model there is one contributor this example set to zero on purpose: clearance float between pin and bore, which enters as a shift term the moment the locating fit is not line-to-line.
Where 1D stops being honest
Everything above works because each contributor projects cleanly onto one axis. Stop trusting the linear sum when:
- Zones interact in-plane. Two mating patterns each located by position, a rotated hole circle — the assembly failure is geometric and a 1D sum under-predicts it.
- Float drives the answer. Loose fasteners and locating clearances let parts translate and rotate until contact; which face seats can change the chain itself, not just its numbers.
- Orientation couples in. Tilt converts lateral tolerance into axial displacement through a lever arm — linear addition has no term for it.
Those are the cases where vector-loop and Monte Carlo tools — the 3DCS/CETOL class — earn their price. For genuinely single-axis chains, the free stack-up calculator runs worst-case and RSS on exactly the arithmetic above, and which of those two numbers you may believe is the decision covered in worst-case vs statistical tolerance. SuperNX runs the same arithmetic on the chains it finds in an uploaded NX part — worst-case plus RSS with per-contributor sensitivity — and where the geometry is not honestly 1D, the honest answer is that the problem belongs to a 3D tool.
The short version
- Position enters a 1D chain only along the stack axis — perpendicular callouts contribute zero to that chain.
- A diameter zone folds in at half width: Ø0.4 becomes ±0.2.
- Worst-case: ignore MMC bonus conservatively and document it; datum shift at MMB is a separate ± term.
- Flatness and profile on a chain face are contributors too — half the surface zone, per face.
- Float, tilt and in-plane interaction mean the problem is 3D — do not let a linear sum volunteer for it.
FAQ
- Does position tolerance always add into a stack-up?
- No — only when the direction it controls runs along the stack axis. A hole pattern positioned to a face whose normal is the stack direction contributes nothing to an axial chain; a pin or face located by position along the stack direction contributes half its zone.
- How do I convert a diameter position tolerance to a plus-minus value?
- Halve it. A Ø0.4 cylindrical zone lets the axis wander 0.2 mm in any direction from true position, so along the stack axis it enters the chain as ±0.2. A non-diameter position zone on a planar feature halves the same way: a 0.4-wide zone of two parallel planes is ±0.2 about the centered face.
- Does MMC bonus count in a worst-case stack-up?
- Conservative practice says no: treat the zone as fixed at the printed value and document the choice. Counting bonus is more optimistic — the zone can grow to printed value plus size tolerance — and for RSS it additionally inflates the variance. Whatever you choose, apply it consistently across the chain.
- What about a whole pattern of holes or pins?
- Each feature contributes only through the stack-axis component of its zone. For a pattern that locates a part, the chain runs through whichever features close the loop — typically the two extreme features along the stack direction — not through every hole in the pattern summed together.
- When do I have to stop using a 1D stack-up?
- When position and orientation interact in-plane — rotated patterns, floating fasteners, tilt acting through a lever arm, or contact order that changes which face seats. A linear sum under-predicts those cases; they belong to vector-loop or Monte Carlo tools in the 3DCS and CETOL class.