3D printing doesn’t make perfect dimensions. Parts vary by ±0.5-1.0mm. Designing parts that fit together despite this variation is critical skill.
This guide covers tolerance basics and practical design rules for assemblies.
Why Tolerance Matters
Real scenario: You print a bracket with 10mm bolt hole. Your printed hole measures 10.3mm (slightly large). Bolt is 9.8mm (slightly small). Parts fit fine.
Next person prints same design. Their hole measures 9.7mm. Bolt is 10.2mm. Parts don’t fit.
Both prints are “correct” (within tolerance). But assembly fails for one user.
Solution: Design with tolerance bands. Ensure all prints fit even with variation.
Standard Tolerances for 3D Printing
Dimensional accuracy (how close to design specification):
| Dimension | FDM Typical | Resin Typical | Recommendation |
|---|---|---|---|
| Up to 10mm | ±0.5mm | ±0.2mm | Design for ±0.5mm |
| 10-50mm | ±0.8mm | ±0.3mm | Design for ±1.0mm |
| 50mm+ | ±1.0-2.0mm | ±0.5mm | Design for ±1.5mm |
Key insight: Design tolerances are ±0.5-1.0mm looser than you think.
Practical Tolerance Rules
Rule 1: Clearance is Better Than Tight Fit
Tight fit (bolt hole sized exactly to bolt diameter):
- Design: 10mm hole for 10mm bolt
- Actual: 9.8-10.3mm variation
- Result: Sometimes fits, sometimes doesn’t (50% failure rate)
Clearance fit (bolt hole 0.5mm larger):
- Design: 10.5mm hole for 10mm bolt
- Actual: 10.0-10.8mm variation
- Result: Always fits (95% success rate)
Practical approach: Add 0.3-0.5mm clearance to any press fit.
Rule 2: Snap Fits Need Precise Tolerances
Snap fit (plastic tab clicks into groove):
- Tab thickness: 1.5mm
- Groove width: Design for 1.5mm, actual is 1.3-1.7mm
- Problem: Tight tolerance, often fails
Solution: Make groove slightly wider (1.8mm) to compensate for variation.
Rule 3: Threads Are Impractical Without Special Nozzles
Standard approach (print bolt threads):
- Design: M5 bolt hole with 0.8mm pitch
- Actual: Tolerance on pitch ~0.3-0.5mm
- Result: Threads don’t grip reliably
Better approach: Use metal inserts
- Print hole for 6mm insert (larger tolerance band)
- Glue metal insert in place
- Thread into metal insert
- Result: Reliable threads
Or use M3+ screws minimum (5mm+ diameter = easier to print).
Design Rules for Fits
For parts that must fit together:
| Type | Design Tolerance |
|---|---|
| Snap fits | ±0.5-1.0mm |
| Press fits | ±0.3-0.5mm |
| Bolted assembly | ±1.0mm (generous clearance) |
| Sliding parts | ±1.5-2.0mm (loose) |
| Threads (metal insert) | ±1.0mm |
| Threads (printed) | Don’t use (problematic) |
Real Example: Phone Case Design
Goal: Print case that holds phone securely (iPhone ~77×160mm)
Bad design:
- Interior dimensions: 77.5×160.5mm (designed for exact fit)
- Actual tolerance: ±1.0mm
- Result: Interior becomes 76.5-78.5×159.5-161.5mm
- Impact: Some phones slip, some phones wedge too tight
Good design:
- Interior dimensions: 79×162mm (designed 1.5mm oversized)
- Actual tolerance: ±1.0mm
- Result: Interior becomes 78-80×161-163mm
- Impact: All phones fit with small clearance
Design strategy: Add 1.5-2.0mm clearance for “comfortable fit” applications.
Tolerance Stack-Up (Complex Assemblies)
Problem: Multiple parts, each with ±0.5mm tolerance, accumulate error.
Example: 3-part assembly
- Part A length: 50mm ±0.5mm
- Part B length: 50mm ±0.5mm
- Part C length: 50mm ±0.5mm
- Total designed: 150mm
- Actual minimum: 148.5mm (all parts small)
- Actual maximum: 151.5mm (all parts large)
- Tolerance stack-up: ±1.5mm total
Solution: Account for worst-case scenario.
- If 150mm assembly needs to fit in 150.5mm space: RISKY
- If 150mm assembly needs to fit in 152mm space: SAFE (1.5mm clearance)
For complex assemblies: Add clearance equal to (number of parts × 0.5mm)
Measurement Best Practices
How to verify your design works:
- Print one part at standard settings
- Measure actual dimensions (digital caliper, ±0.1mm accuracy)
- Compare to design (note variation)
- Adjust design if variation is larger than expected
- Print assembly test (make sure parts fit)
- Document tolerance (save settings that produced good fit)
Real workflow:
- Print phone case
- Measure interior: 79.2mm actual (vs 79mm designed)
- Phone fits: Good
- Print next version with confidence
Material Considerations
Tolerance changes with material:
| Material | Shrinkage | Dimensional Variation |
|---|---|---|
| PLA | Minimal | ±0.5mm |
| PETG | Moderate | ±0.7mm |
| ABS | High | ±1.0mm |
| Nylon | Extreme | ±1.5mm |
Impact: Design ABS tolerance looser than PLA (ABS shrinks more during cooling).
Common Tolerance Mistakes
Mistake 1: Designing to perfect dimensions
- “This bolt is 10mm, so I’ll design 10mm hole”
- Reality: Printing variance makes fit 50/50
- Fix: Add 0.5mm clearance (10.5mm hole)
Mistake 2: Assuming resin tolerances apply to FDM
- Resin is ±0.2mm, FDM is ±0.5mm
- Designing resin-tight tolerances for FDM fails
- Fix: Add ±1.0mm buffer for FDM designs
Mistake 3: Forgetting material shrinkage
- ABS shrinks 0.5-1.0% during cooling
- Designed dimension is wrong before print even starts
- Fix: Add 1-1.5% to ABS dimensions (100mm design becomes 101-101.5mm)
Mistake 4: Not testing assembly
- Design looks good in CAD
- Actual print doesn’t fit
- Fix: Always print test assembly with one part
Wall Thickness and Stress Concentration
Tolerance affects durability:
Thin wall (1.0mm):
- Nominal: 1.0mm
- Actual variation: 0.8-1.2mm
- Where thin (0.8mm), stress concentrates, cracks
Thick wall (2.0mm):
- Nominal: 2.0mm
- Actual variation: 1.8-2.2mm
- Minimum thickness is still 1.8mm, acceptable
Design rule: Critical dimensions need thicker walls to accommodate tolerance variation.
Snap Fit Design Formula
For snap fit to work across tolerance range:
Tab thickness: 1.5mm Groove width: 1.8-1.9mm (designed oversized by 0.3-0.4mm) Snap force: Designed for 1.6mm actual tab thickness
Why: If you design groove for 1.5mm tab exactly:
- If tab is 1.3mm: Gaps, won’t snap
- If tab is 1.7mm: Wedges too tight, breaks
Design groove for 0.2mm larger than nominal → works across tolerance range.
Tolerance for Different Print Speeds
Speed affects tolerance:
| Speed | Accuracy | Tolerance to Design |
|---|---|---|
| 40mm/s | Best | ±0.3mm |
| 80mm/s | Good | ±0.5mm |
| 120mm/s | Acceptable | ±0.8mm |
| 150mm/s | Loose | ±1.0mm |
Insight: If designing tight tolerance, print at slower speed.
The Honest Approach
Rule of thumb for assemblies:
- Add 0.5mm clearance for every 10mm dimension
- So 50mm bolt hole → design 50.25-50.5mm (extra large)
- Err on the side of loose, not tight
Test before committing:
- Print one part
- Measure and verify fit
- Document what works
- Use that as baseline for production
Most important: Tolerance is material property of FDM, not design flaw. Accept it, design around it, succeed.
3D printing’s tolerance isn’t a problem if you design expecting it. Tight tolerance designs fail. Loose tolerance designs succeed across all printers and settings.
Design with +0.5-1.0mm clearance and stop fighting printer limitations. Your parts will fit reliably.