SuperNX—Learn

SuperNX / Learn

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

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:

ContributorCalloutIn the chain?±tol (mm)
Pin 1 location along the gap directionposition Ø0.4 to BYes — zone projected on the stack axis0.20
Pin 2 location along the gap directionposition Ø0.4 to BYes0.20
Part 1: pin bore axis to facing face30.00 ±0.10Yes0.10
Part 2: pin bore axis to facing face30.00 ±0.10Yes0.10
Parts 1 & 2 bolt-hole patternsposition Ø0.4 to ANo — controls in-plane location only0

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:

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

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.