Babysitter tolerance-stackup
Skill for dimensional tolerance analysis and stack-up calculations
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/domains/science/mechanical-engineering/skills/tolerance-stackup" ~/.claude/skills/a5c-ai-babysitter-tolerance-stackup && rm -rf "$T"
manifest:
library/specializations/domains/science/mechanical-engineering/skills/tolerance-stackup/SKILL.mdsource content
Tolerance Stack-Up Analysis Skill
Purpose
The Tolerance Stack-Up Analysis skill provides capabilities for dimensional tolerance analysis and stack-up calculations, enabling verification of assembly fits and functional requirements through systematic tolerance chain analysis.
Capabilities
- Worst-case tolerance analysis
- Statistical (RSS) tolerance analysis
- Monte Carlo tolerance simulation
- GD&T-based stack-up analysis
- Assembly feasibility verification
- Tolerance allocation optimization
- CETOL/3DCS integration
- Stack-up report generation
Usage Guidelines
Tolerance Analysis Methods
Method Comparison
| Method | Approach | Application | Result |
|---|---|---|---|
| Worst-case | All tolerances at limit | Safety critical | Maximum variation |
| RSS | Statistical combination | High volume production | Probable variation |
| Monte Carlo | Random sampling | Complex assemblies | Distribution |
| 6-Sigma | Process capability | Quality control | Defect rate |
Worst-Case Analysis
Linear Stack-Up
Gap = Nominal gap +/- sum of all tolerances For a simple assembly: Gap_min = Nominal - sum(all positive contributors) Gap_max = Nominal + sum(all negative contributors) Or using sensitivity: Gap = sum(ai * xi) Tolerance = sum(|ai| * ti) Where: ai = sensitivity coefficient (+1 or -1) xi = nominal dimension ti = tolerance on dimension i
Direction Convention
Define positive direction: - Dimensions adding to gap: positive (+1) - Dimensions subtracting from gap: negative (-1) Example (shaft in hole): Gap = Hole_dia - Shaft_dia Hole: +1 (increases gap) Shaft: -1 (decreases gap)
Statistical Analysis
Root Sum Square (RSS)
Statistical tolerance (RSS): T_rss = sqrt(sum(ti^2)) For unequal distributions (weighted): T_rss = sqrt(sum((ai * ti)^2)) Assumes: - Normal distribution - Independent variables - Process centered at nominal
Process Capability
Cp = (USL - LSL) / (6 * sigma) Cpk = min((USL - mean)/(3*sigma), (mean - LSL)/(3*sigma)) For 6-sigma quality: Cpk >= 2.0 PPM defective < 3.4 For tolerance analysis: sigma = T / (3 * k) Where k depends on desired Cpk: k = 3 for Cpk = 1.0 k = 4 for Cpk = 1.33 k = 6 for Cpk = 2.0
Monte Carlo Simulation
Simulation Process
1. Define distribution for each dimension - Normal: mean, sigma - Uniform: min, max - Skewed: appropriate parameters 2. Generate random samples (N = 10,000+) 3. Calculate assembly result for each sample 4. Analyze output distribution 5. Determine percent out-of-spec
Distribution Selection
| Scenario | Distribution | Parameters |
|---|---|---|
| Machined feature | Normal | Nominal, T/6 (Cpk=2) |
| Purchased part | Normal/Uniform | Per vendor data |
| Press fit | Truncated normal | Limits at tolerance |
| Unknown process | Uniform | Min, max |
GD&T in Stack-Ups
Including GD&T
Position tolerance contribution: Dia_positional / 2 = linear contribution (per direction) For MMC position: Contribution = (Position_tol + Bonus_tol) / 2 Bonus tolerance: Bonus = |Actual_size - MMC_size|
Datum Reference Frame
Stack-up must follow datum precedence: 1. Establish primary datum (constrains normal) 2. Establish secondary datum (constrains one rotation) 3. Establish tertiary datum (constrains remaining DOF) Feature control frame specifies: |Position|0.5 MMC|A|B|C|
Analysis Process
Stack-Up Procedure
-
Define the Problem
- What gap/clearance is being analyzed?
- What is the acceptance criterion?
- What components are involved?
-
Create the Loop Diagram
- Start at one surface
- Follow chain to other surface
- Identify all contributors
- Assign directions
-
Gather Data
- Nominal dimensions
- Tolerances (bilateral, unilateral)
- Process capabilities
- Distribution data
-
Perform Calculation
- Calculate nominal gap
- Calculate worst-case variation
- Calculate statistical variation
- Compare to requirement
-
Document Results
- Stack-up spreadsheet
- Loop diagram
- Conclusions and recommendations
Tolerance Allocation
Optimization Strategies
If tolerance too tight: 1. Increase gap nominal (if possible) 2. Tighten critical dimension tolerances 3. Add adjustment or shim 4. Change assembly method 5. Accept higher defect rate If tolerance too loose: 1. Relax non-critical tolerances 2. Reduce manufacturing cost
Cost-Tolerance Relationship
Approximate relationship: Cost ~ 1 / Tolerance^n Where n ~ 1.5 to 2 for machining Tighten tolerances on: - Lower cost features - Higher sensitivity contributors
Process Integration
- ME-004: GD&T Specification and Drawing Creation
Input Schema
{ "analysis_name": "string", "requirement": { "type": "gap|clearance|interference|alignment", "nominal": "number", "min": "number", "max": "number" }, "contributors": [ { "name": "string", "nominal": "number", "tolerance": "number (bilateral half)", "direction": "+1|-1", "distribution": "normal|uniform", "cpk": "number (if normal)" } ], "method": "worst_case|rss|monte_carlo|all" }
Output Schema
{ "analysis_summary": { "requirement": { "min": "number", "max": "number" }, "nominal_result": "number" }, "worst_case": { "min_result": "number", "max_result": "number", "pass_fail": "pass|fail", "margin": "number" }, "statistical": { "mean": "number", "sigma": "number", "min_3sigma": "number", "max_3sigma": "number", "percent_out_of_spec": "number", "cpk": "number" }, "monte_carlo": { "mean": "number", "sigma": "number", "min_observed": "number", "max_observed": "number", "percent_out_of_spec": "number", "histogram": "data reference" }, "sensitivity_ranking": [ { "contributor": "string", "sensitivity": "number", "percent_contribution": "number" } ], "recommendations": "array" }
Best Practices
- Define acceptance criterion before analysis
- Include all contributors in the chain
- Verify dimensions from actual drawings
- Use realistic process capabilities
- Document assumptions and simplifications
- Perform sensitivity analysis on tight results
Integration Points
- Connects with GD&T Drawing for tolerance inputs
- Feeds into DFM Review for manufacturing feasibility
- Supports FAI Inspection for verification
- Integrates with Design Review for approval