Skip to content

Home / Monte Carlo / Additional Tools / Linear Tolerancing / Linear Tolerancing How-To

Linear Tolerancing How-To

This walkthrough creates a linear tolerance stack-up worksheet. The command hands Excel a template and nothing is calculated at that point: the arithmetic lives in the sheet you are given.

Sample Data

Five parts stacked end to end. The sheet carries its column headings in row 9 and twenty numbered rows under them, and the columns you fill are Part Num, Description, Dim, Tol - and Tol +. The three to their right, Assumed Cpk, Sigma Est and % Cont, are formulas the template already holds, so this block stops short of them and nothing is pasted over a formula.

Part Num Description Dim Tol - Tol +
SZ-1001 Base plate 25.00 0.10 0.10
SZ-1002 Spacer 12.50 0.05 0.05
SZ-1003 Bearing shim 3.20 0.02 0.02
SZ-1004 Cover 8.40 0.08 0.08
SZ-1005 Gasket 1.60 0.04 0.04

Steps

  1. QXL Monte Carlo New > Additional Tools > Linear Tolerancing > Simple 20 Part Sheet.

    A new workbook is made from 20PartLinearTolSimple.xltx in the Templates folder of the installed product.

  2. Enter your parts, one per row: the nominal dimension and its tolerance.

    Press Copy for Excel above the table, click cell B9, the cell holding Part Num, and press Ctrl+V. The block's own heading row lands on the sheet's heading row, which carries the same five words, and the five parts land in rows 10 through 14.

  3. Read the stack-up the sheet computes.

What the sheet works out from those five parts

Leave Assumed Cpk in cell I4 at 1 and Num Digits in I3 at 4, which is how the template arrives. Every number below follows from the five rows you pasted and those two settings.

Sigma Est is each part's tolerance divided by three times the assumed Cpk, and % Cont is that value squared as a share of the sum of squares of the whole column:

Row Part Sigma Est % Cont
10 Base plate 0.033333 47.847%
11 Spacer 0.016667 11.962%
12 Bearing shim 0.006667 1.914%
13 Cover 0.026667 30.622%
14 Gasket 0.013333 7.656%

The Base plate holds nearly half the variation off a tolerance of only a tenth of a millimetre, and the Bearing shim holds under two per cent. That is the column to read first: % Cont ranks the parts by how much of the assembly's spread each one is responsible for, and it is squared, so a part with twice another's tolerance carries four times its share.

The Total row, row 30:

Cell What it holds Value
D30 the nominal dimensions added up 50.7
E30, F30 the tolerances added up, each side 0.29
H30 the root sum of squares of the Sigma Est column 0.048189
I30 the % Cont column, which always totals 1 100%

The five ways of setting the assembly tolerance

Rows 33 to 37 compare five choices, each judged against that same 0.048189:

Row Tol - and Tol + Cpk Cp dpm
Worst Case 0.2900 2.0060 2.0060 0.0
RSS 0.1446 1.0002 1.0002 2,694.0
RSS Plus Safety Factor 0.2169 1.5003 1.5003 6.8
Six Sigma 0.2891 1.9997 1.9997 0.0
Design Limit 1.0000 6.9171 6.9171 0.0

Worst Case adds the five tolerances up. RSS adds them in quadrature, which is why it is less than half as wide: 0.1446 against 0.2900. The safety factor row is exactly 1.5 times the RSS row, cell B35 holding the 0.5.

Cp and Cpk are equal on every row, and that is not a coincidence: the Slider in AA98 starts at 150, the shift it sets is (slider - 150) / 100, so a fresh sheet has no shift and the distribution sits centred. Move the slider and Cpk falls away from Cp.

The dpm column is the reason the comparison exists. Allowing only the RSS tolerance leaves about 2,694 parts per million outside the assembly limits; allowing half as much again brings that to under seven.

Which of the three to use

Command Template When
Simple 20 Part Sheet 20PartLinearTolSimple.xltx up to 20 parts, the plain stack
Advanced 20 Part Sheet 20PartLinearTolAdvanced.xltx up to 20 parts, with the extra columns the advanced sheet carries
Advanced 1000 Part Sheet 1000PartLinearTol.xltx a long stack

Ask for the size you need. The sheets differ in how many rows they carry, so a 25 part stack needs the 1000 part sheet even though the number sounds far larger than the job.

What this is not

It is not a Monte Carlo simulation. No cell is marked, no distribution is sampled and no model is read. If you want the stack-up with distributions rather than tolerances, build the model and use Run Model instead.

Things to try next

  • Open the Advanced 20 Part Sheet and compare its columns with the simple one.
  • Model the same stack as a marked worksheet and run it, then compare the two answers. The worksheet gives a worst case and a statistical estimate; the simulation gives a distribution.

See Also