Tutorial S: Tolerance stack-up of a grooved pin

Book

Bryan R. Fischer, Mechanical Tolerance Stackup and Analysis, 2nd ed., Example 7.1 (worst case, fig. 7.11 and 7.12) and Example 8.1 (statistical, fig. 8.16 and 8.17)

You learn

Analysis › Tolerance Stackup, measured contributors, the stack direction, worst case against RSS, a requirement, fewer contributors, associativity

Sizes

The book’s axial sizes: 45 ±0.5 overall, 30 ±0.2 from the head end to the groove, 13.2 ±0.5 from the tip to the groove, so a groove 1.8 wide. Its diameters are not given: the pin here has a Ø14 × 5 head, a Ø10 shank and a Ø8.6 groove root.

The question is the book’s: how wide can the groove be, at least and at most, when the pin is made to these three dimensions?

Step by step

1. The pin

Ctrl+N, Revolve with nothing selected, the XY plane, and the half section with Profile (Z). Dimension it fully; name the groove’s width GrooveWidth. Ctrl+Q continues into the Revolve dialog: the X axis, 360°, OK.

2. The loop

Analysis › Tolerance Stackup. Pick the groove’s side towards the head (point A) and the head’s end face, then Add Measured: 30.000, against the stack direction. Then the head end and the tip (45.000, +), and the tip and the groove’s other side (point B: 13.200, −). The stack direction is the outward normal of A, across the groove.

Type the descriptions and the tolerances into the table: ±0.2, ±0.5, ±0.5.

The Tolerance Stackup dialog: the three contributors and the live report
Fischer NX-Style Min to max

Nominal

1.8

1.8000

Worst case

±1.2

±1.2000

0.6000 to 3.0000

RSS

±0.74

±0.7348

1.0652 to 2.5348

Adjusted RSS (1.5 × RSS)

±1.1

±1.1023

0.6977 to 2.9023

The book rounds; the numbers are the same.

3. A requirement

The groove has to take a DIN 471 retaining ring for a Ø10 shaft, which needs a groove at least 1.1 wide. Tick Minimum and type 1.1. Worst case (0.6) and adjusted RSS (0.70) fail; the Monte Carlo run of 100 000 pins finds about 2 000 per million too narrow. With three contributors the report recommends the worst-case result, as Fischer does.

OK puts the report in the Information window; the loop stays in the graphics window beside the pin, numbered as in the table.

The stack-up loop drawn beside the pin

4. Fewer contributors

Fischer’s remedy is not tighter tolerances but a better dimensioning scheme: dimension what the function needs, with the fewest dimensions in the loop. Select the stack-up and click Tolerance Stackup to edit it, Remove the three rows, and add the groove’s width itself: A to B, ±0.1. The worst case is now 1.7 to 1.9 and passes.

5. A design change

Change GrooveWidth in the sketch to 2.0. The stack-up follows: it measures the faces, it does not keep a copy of the numbers.

The pin after the design change

The replay

# In the book (NX) In FreeCAD NX-Style Result Notes

S1

File > New (Ctrl+N), Model template

Ctrl+N

same

S2

Revolve, nothing selected

ribbon 'Home › Feature > Revolve'

same

S3

Sketch on the XY plane

plane row + MB2

same

XY-plane (Base plane)

S4

Profile (Z): the pin’s half section, 10 lines, MB2

Z key + 11 MB1 clicks + MB2

same

tool True; 10 curves; ended True

S5

Rapid Dimension: 45 overall, groove 30 from the head and 1.8 wide; Ø14 head, Ø10 shank, Ø8.6 groove root

values applied (the groove width named GrooveWidth)

differs

solver 0 (0 = fully constrained)

S6

Revolve about the X axis, 360°, OK

axis 'Base X-axis', MB2 = OK

same

volume 3874.5 mm^3, expected 3874.5; 1 solid(s)

S7

Analysis > Tolerance Stackup

ribbon 'Analysis › Tolerance > Tolerance Stackup'

differs

NXStyle’s own command: FreeCAD has no stack-up tool (NX’s is the separate Tolerance Stackup Validation)

S8

Pick groove side A to the head end, Add Measured

two MB1 picks + 'Add Measured'

same

measured -30.000 mm along (1.0, 0.0, 0.0)

S9

Pick head end to tip, Add Measured

two MB1 picks + 'Add Measured'

same

measured +45.000 mm along (1.0, 0.0, 0.0)

S10

Pick tip to groove side B, Add Measured

two MB1 picks + 'Add Measured'

same

measured -13.200 mm along (1.0, 0.0, 0.0)

S11

Tolerances ±0.2, ±0.5, ±0.5: worst case 0.6 to 3.0, RSS ±0.74, adjusted RSS ±1.1 (0.7 to 2.9)

typed into the table’s cells

same

nominal 1.8000; worst case 0.6000 to 3.0000; RSS ±0.7348; adjusted 0.6977 to 2.9023: Fischer’s figures 7.12 and 8.17

S12

Requirement: the groove takes a DIN 471 ring for a Ø10 shaft, so A-B >= 1.1

Minimum ticked, 1.1 typed

differs

verdict: worst case FAILS, adjusted RSS FAILS; Monte Carlo 2,230 ppm out (100000 assemblies). The book states no requirement: this one shows what the numbers mean

S13

OK: the stack-up report

MB2 = OK; the report in the Information window

same

the stack-up stays in the Part Navigator and recomputes with the part

S14

Change the dimensioning: the groove’s width dimensioned directly, 1.8 ±0.1

three rows removed, A to B added, ±0.1 typed

differs

worst case 1.700 to 1.900; worst case OK, adjusted RSS OK. One contributor instead of three (Fischer: dimension what the function needs, with the fewest dimensions in the loop)

S15

Design change: the groove widened to 2.0 in the model

the sketch’s GrooveWidth = 2.0

same

the stack-up follows: nominal 2.000, worst case 1.900 to 2.100 (it measures the faces, not a copy of the numbers)

S16

The pin and its stack-up loop in the graphics window

render of the graphics window

same

10.9% of the view shows the part (an occupancy check: something is drawn; the shape itself is checked by its geometry)

Result Means

same

The book’s NX steps work as written.

differs

It works, but the FreeCAD way is different; the notes say how.

limit

The book’s way fails in FreeCAD itself; a workaround follows in the next steps.

missing

FreeCAD has no such function; a stand-in follows.

skipped

Not replayed; the notes give the reason.

FAILED

Did not work.

What differs from NX

  • NX’s stack-up tool (Tolerance Stackup Validation) is a separate product working from PMI; NX-Style’s measures the model directly, takes PMI too (tutorial T), and is a feature of the part.

  • The dimensions are set through FreeCAD’s API, the equivalent of typing them into Rapid Dimension.