← Main page

Pin–Slot Located Non-Alignable Assembly Calculator

Worst-case fit check between Part L and Part U with shoulder bolts, for assemblies that are seated on the pins once and can never be nudged or re-tried afterward — a crane- or hoist-lowered part, or anything too heavy to slide by hand. All values in mm. Part features use position/perpendicularity at MMC with datums B and C at MMB. Gauge tolerances are applied so that a gauge error can never pass a bad part.

Background & theory

This tool checks a fixed-fastener assembly: Part L carries two locating pins (Pin 1 at datum B, Pin 2 at datum C) and four clearance holes for shoulder bolts; Part U carries the mating hole and slot that the pins engage (Hole 1U at datum B, the slot at datum C) and four threaded holes that the bolts screw into. All of these engagement features are located by position or perpendicularity at MMC, with datums B and C held at MMB — the ⓜ modifier on the datum features themselves, not just on the located feature. That combination is what lets a worst-case calculation reduce the whole assembly to a handful of numbers instead of a full tolerance stack-up.

The key idea is the virtual condition (VC): the boundary a feature can never cross once its size and location tolerances are both used up in the same direction. A pin (external feature) grows its effective envelope at MMC, so its VC adds the location tolerance to the MMC size. A hole or slot (internal feature) shrinks the same way, so its VC subtracts the location tolerance from the MMC size. Comparing the two parts' VCs at each engagement location — never their nominal sizes — gives the true worst-case fit, because each VC already represents the worst mating condition that part is allowed to present:

VC_B_L = D_Pin1 + tol_D_Pin1 + tol_Perp_Pin1   (Pin 1, datum B)
VC_C_L = D_Pin2 + tol_D_Pin2 + tol_Pos_Pin2   (Pin 2, datum C)
VC_H_L = D_Hole1234L − tol_D_Hole1234L − tol_Pos_Hole1234L   (clearance holes, Part L)
VC_B_U = D_Hole1U − tol_D_Hole1U − tol_Perp_Hole1U   (Hole 1U, datum B)
VC_W_U, VC_L_U = W_Slot / L_Slot − tol_W_Slot / tol_L_Slot − tol_Pos_W_Slot / tol_Pos_L_Slot   (slot, datum C)
VC_T_U = Mthread + tol_Pos_Thole1234   (threaded holes, projected zone, Part U)

The datum-feature fits are each half the difference between the two matching VCs — the minimum radial gap (or, if negative, the maximum interference) guaranteed under worst case, at Pin 1/Hole 1U and at Pin 2/the slot:

G_B  = (VC_B_U − VC_B_L) / 2   Pin 1 in Hole 1U — a round pin in a round hole, so this is free play in any direction
G_CW = (VC_W_U − VC_C_L) / 2   Pin 2 in the slot, width direction (perpendicular to the slot)
G_CL = (VC_L_U − VC_C_L) / 2   Pin 2 in the slot, length direction (along the slot)

If any of G_B, G_CW or G_CL goes negative, the pins cannot seat in the mating hole and slot at all — nothing past this point means anything until all three are zero or positive (that's what the warning banner above the results is checking for).

Why this page is different from a hand-assembled fit check. Once Part U is lowered onto Part L's pins and seated, it is done — there is no sliding it into a better position afterward (the real case this page was built for: a half-ton part lowered by crane onto two tapered locating pins, with no way to lift and retry once seated, for Working-at-Height / Human-Factors reasons). So the shoulder-bolt fit cannot assume the two parts' datum reference frames happen to land centered on each other. Part U's whole body can sit anywhere the pin/hole and pin/slot play structurally allows — some translation (dx, dy) of its datum origin, plus some rotation θ about that origin, with Pin 1 free to translate anywhere inside a disk of radius G_B and Pin 2 constrained to stay inside the slot's width (G_CW) and length (G_CL) play. Whichever combination actually occurs on a given real assembly is not knowable in advance, so every shoulder-bolt hole has to be checked against the worst combination the tolerances allow — not the centered, zero-shift case.

At a given (dx, dy, θ), a shoulder-bolt hole at basic location (x, y) relative to Pin 1 sees its mating threaded hole in Part U displaced from that same basic location by a registration shift:

shift_x(x,y) = dx + x·cosθ − y·sinθ − x
shift_y(x,y) = dy + x·sinθ + y·cosθ − y

A hole farther from Pin 1 sees more shift from the same rotation than one close to it, which is why each of the four holes must be checked independently rather than sharing one number — the narrowest result is the critical hole, and the shoulder bolt must still fit it with all of its own tolerances applied, with a zero or positive gap. The Calculate button below runs a dense numerical search of every (dx, dy, θ) combination the pin/slot play structurally permits and reports, for each hole, the single worst registration shift found anywhere in that search — not an analytical shortcut, and not an assumption that the shift is small. That search is what runs on the private server (see the note by the button) rather than live in the browser, because checking it this thoroughly is too slow to repeat on every keystroke.

The one simplifying assumption in this model is that both parts are rigid — they don't flex or deform as they seat under their own weight or the crane's handling loads. That assumption gets more accurate for heavier, stiffer parts, not less, so it fits the scenario this page is built for.

The two functional gauges turn the datum-feature VCs into go/no-go hardware. Each gauge element is built at the mating part's VC, then tightened further by that element's own gauge-maker tolerance and a wear allowance — so a worn gauge can only reject a few more good parts near the limit, never pass a part that is actually outside its MMC/MMB zone. Part tol. used tracks how much of the part's own position or perpendicularity tolerance that margin consumes: comfortable under 25%, worth a second look above it, and at 100% or more the gauge is as tight as (or tighter than) the part's own tolerance zone and will start rejecting perfect parts at MMC. Gauging a single part is itself only possible because of MMC (fixed gauge-element sizes) and MMB (datum-feature float) — it does not depend on which assembly case this page is for, so it is unchanged from the hand-assembled version of this calculator.

This is a single worst-case snapshot, not a statistical stack-up: it answers whether the assembly is guaranteed to go together and how tight the resulting gauges are, not how often a given process will actually land near that limit.

Part L

Part L — drawings

Isometric drawingPart L, annotated with the values entered on the left. (to be done)
Minimum free circle — datums A, B, CHole 1L–4L: the circle left free once position to A|B(M)|C(M) is applied. (to be done)
Minimum free circle — A, B, C and MMBSame circle, reduced once the MMB bonus from datums B and C is introduced. (to be done)

Gauge L

Gauge L — drawing

Gauge designGauge L, annotated with the tolerances entered on the left. (to be done)

Part U

Part U — drawings

Isometric drawingPart U, annotated with the values entered on the left. (to be done)
Minimum free circle — datums A, B, CThole 1–4: the circle left free once projected position to A|B(M)|C(M) is applied. (to be done)
Minimum free circle — A, B, C and MMBSame circle, reduced once the MMB bonus from datums B and C is introduced. (to be done)

Gauge U

Gauge U — drawing

Gauge designGauge U, annotated with the tolerances entered on the left. (to be done)

Shoulder bolts

Shoulder bolts — drawing

Not decided yetWhat to show here is still open — to brainstorm later. (to be done)

Suit parameters (for the drawings)

Suit parameters — drawing

Reference drawingPoints out what each suit_ parameter refers to on the parts.

Datum-feature fits (worst case)

Minimum radial gaps. A negative value is an interference; its absolute value is the maximum interference. Pin 1/Hole 1U and Pin 2/the slot must both be zero or positive before the shoulder-bolt fit below means anything.

Shoulder bolt fit — worst-case registration shift

This search (every translation/rotation combination the datum play allows) runs on a private server, not in the browser, because it is too slow to repeat on every keystroke. Click Calculate once your inputs are set; it can take up to about 20 seconds.

Positive = guaranteed gap. Negative (red) = guaranteed clash at that hole under worst case. The highlighted row is the critical (narrowest) hole — the shoulder bolt must clear it with a zero or positive gap. Gauge tolerances and wear do not enter this result.

Gauge L — checks Part L

Gauge U — checks Part U

Before gauging, screw the four threaded setting pins into Thole 1–4. The part passes when it seats fully on the gauge face with all gauge elements engaged.

To do on the drawings (suit_ parameters)

    These parameters do not affect the fit results or gauge sizes, but each drawing must define them.