Every injection-moulding snap-fit manual assumes the undercut comes out the size you drew and the arm thickness is whatever you asked for. Neither is true for FDM. The undercut is a printed feature and carries process error; the arm is a thin wall and the slicer quantises it to whole perimeters. These two facts propagate straight into engagement depth and deflection capacity, and they do not appear in the moulding charts because moulds are not quantised and injection plastic flows into the cavity.
This guide shows how much of a textbook undercut survives FDM process error, how far an arm can legally bend before breaking, and why trying to make a PLA snap-fit push harder by changing the material is solving the wrong problem.
The arm thickness you asked for is not the one you get
A snap-fit arm is a thin wall. A slicer fills a thin wall with whole perimeters, so the achievable thickness is quantised to multiples of extrusion width. At a 0.4 mm nozzle, extrusion width is 0.450 mm (nozzle × 1.125). Asking for 1.00 mm gets you 0.90 mm (2 perimeters) or 1.35 mm (3), never 1.00.
| Perimeters | Thickness | vs 1.00 mm ask |
|---|---|---|
| 1 | 0.45 | −0.55 |
| 2 | 0.90 | −0.10 |
| 3 | 1.35 | +0.35 |
| 4 | 1.80 | +0.80 |
| 5 | 2.25 | +1.25 |
Deflection capacity is inverse in thickness (cantilever beam theory, ymax = εL²/6t), so that quantisation propagates straight into how far the arm can legally bend. Held fixed: PLA at 1.0% strain, 10 mm arm length.
| Perimeters | Thickness | ymax | vs 2-perim |
|---|---|---|---|
| 1 | 0.45 | 1.481 | +100% |
| 2 | 0.90 | 0.741 | 0% |
| 3 | 1.35 | 0.494 | −33% |
| 4 | 1.80 | 0.370 | −50% |
| 5 | 2.25 | 0.296 | −60% |
One extra perimeter costs a third of the travel. This is the single most consequential number on the page and it does not appear in any injection-moulding snap-fit manual, because moulds are not quantised.
The undercut is a printed feature, so it carries process error
Textbook practice: pick an undercut, design the arm to clear it. That silently assumes the undercut comes out the size you drew. It does not.
A snap undercut is a one-sided linear depth on a flat face. The calculator's
processTerms() returns diametral allowances for round
features, so two conversions are needed:
- Diametral → per-surface: divide by 2.
- Curvature: a flat slot wall has no curvature, so its correction floor is 1.0, not the small-hole multiplier that rounds see. Ignoring this inflates a planar feature by up to 40%.
At a 0.4 mm nozzle, 0.2 mm layer, a 5 mm round feature loses 0.345 mm per surface (hole) and gains 0.110 mm (shaft); a flat wall loses 0.255 mm and gains the same 0.110 mm. The repeatability band is ±0.080 mm.
Engagement depth lost per mating pair (slot face moves in, hook face moves out — both errors push the joint tighter, so they add):
- Flat wall: (0.255 + 0.110) / 2 = 0.182 mm
- 5 mm round: (0.345 + 0.110) / 2 = 0.227 mm
The geometry of a real hook sits between these two cases; the publishable range is 0.18–0.23 mm.
| Undercut drawn | Loss | Fraction eaten | Verdict |
|---|---|---|---|
| 0.30 mm | 0.182 | 61% | Over half eaten |
| 0.40 mm | 0.182 | 46% | Usable, must compensate |
| 0.50 mm | 0.182 | 37% | Usable, must compensate |
| 0.75 mm | 0.182 | 24% | Robust |
| 1.00 mm | 0.182 | 18% | Robust |
A 0.30 mm undercut, an entirely ordinary figure to copy off a moulding chart, loses 61% of its engagement to process error alone. It is not gone, but nothing is left to tolerance against.
Compare the repeatability band: ±0.080 mm on a 0.30 mm undercut is ±27%. Even fully compensated, a 0.30 mm undercut is not repeatable on a consumer FDM machine.
Minimum defensible undercut = loss + band = 0.182 + 0.080 = 0.26 mm, round up to 0.40 mm, and 0.60 mm if you want the snap to still work on a bad day.
Shrinkage on a 0.50 mm undercut, by material, is single-digit microns: PLA 1.5 µm, PETG 2.5 µm, ABS 4.0 µm, Nylon 6.0 µm. The process loss above is an order of magnitude larger. Do not spend effort compensating shrinkage on a snap hook.
Deflection capacity: travel by material
How far can an arm legally bend before it breaks? Cantilever beam theory gives ymax = εL²/6t, where ε is the permissible strain, L is arm length, and t is thickness. The table below uses published strain limits for one-time assembly (not cyclic fatigue), a 2-perimeter arm (0.90 mm at a 0.4 nozzle), and a 4 mm arm width.
| Material | ε | 6 mm | 8 mm | 10 mm | 15 mm |
|---|---|---|---|---|---|
| PLA | 1.0% | 0.27 | 0.47 | 0.74 | 1.67 |
| PLA-CF | 0.7% | 0.19 | 0.33 | 0.52 | 1.17 |
| PETG | 2.5% | 0.67 | 1.19 | 1.85 | 4.17 |
| ABS | 2.5% | 0.67 | 1.19 | 1.85 | 4.17 |
| PC | 3.5% | 0.93 | 1.66 | 2.59 | 5.83 |
| PA / Nylon | 4.5% | 1.20 | 2.13 | 3.33 | 7.50 |
| TPU 95A | 15.0% | 4.00 | 7.11 | 11.11 | 25.00 |
Travel scales with L², so length is the cheap variable and thickness is the expensive one. Doubling length quadruples travel; the same relief from thickness would need t/4, which the perimeter quantisation forbids.
Assembly force, and why PLA arms break
Deflecting any arm to its own permissible strain gives a force set by E × ε, where E is modulus and ε is strain limit. E spans 30–4500 MPa (150×) across common filaments, but E × ε only varies 17.9×, so every material lands in a narrow force band when pushed to its own limit.
The design lever is geometry, not material: force goes as t²/L, both of which you control. Material buys travel, and travel decides whether the arm survives, not how hard it pushes.
| Material | ymax | Insertion force | Stiffness |
|---|---|---|---|
| PLA | 0.74 | 2.0 N | 2.55 |
| PLA-CF | 0.52 | 1.8 N | 3.28 |
| PETG | 1.85 | 3.0 N | 1.53 |
| ABS | 1.85 | 3.0 N | 1.53 |
| PC | 2.59 | 4.6 N | 1.68 |
| PA / Nylon | 3.33 | 4.4 N | 1.24 |
| TPU 95A | 11.11 | 0.3 N | 0.02 |
The PLA trap, stated correctly: PLA is near the stiffest here and has the lowest permissible strain. It is not that PLA pushes harder — it does not. It runs out of travel first: 0.74 mm against Nylon 3.33 mm on the same arm (4.5× less), so it hits breaking strain while still feeling solid. That is the failure that surprises people. Nylon is the opposite, hence living hinges.
The Z-orientation knockdown
Everything above assumes the arm is isotropic. FDM parts are not. An arm printed standing up bends across layer bonds and fails in interlayer adhesion, not in the bulk polymer.
The calculator models dimension, not strength. It has no anisotropy term because it has no modulus or strain-limit data — only shrinkage and brittleness flags. So there is no Z-knockdown factor to print.
The honest statement is directional: lay the arm flat so it flexes in-plane. If it must stand, treat every ε above as unusable and prototype.
Recommended slot dimension, worked example
A 0.50 mm undercut on a 5 mm hook, PETG, 0.4 mm nozzle. The engaging faces of a snap-fit are a sliding pair — located, meant to come apart, must not rattle. That is the calculator's sliding fit, which uses ISO 286 class H7/h6.
Run your own numbers Enter the nominal size (hook diameter or slot width), pick the sliding fit class, choose the material, and the calculator returns the dimensions to model — with the undercut loss and process uncertainty already baked in.Frequently asked
Can I use a smaller nozzle to get around the perimeter quantisation?
Yes, but it scales down with you. A 0.25 mm nozzle gives extrusion width ≈0.28 mm, so 2 perimeters = 0.56 mm, still far from 1.00 mm. The quantisation constraint is structural — changing the step size does not remove the steps.
What if I want the snap to work more than once?
The strain limits above are for one-time assembly. Cyclic fatigue drops them: PLA goes from 1.0% to ≈0.5%, PETG from 2.5% to ≈1.5%. Design for half the travel, or prototype and measure how many cycles it survives at the higher strain.
Why not just make the undercut bigger to account for the loss?
You should. The table above shows that a 0.40–0.50 mm undercut is defensible after compensation. Anything smaller than 0.40 mm is fighting the machine.
Can I print the arm in a different orientation and keep the same travel?
No. If the arm is printed standing up, it bends across layer bonds and fails in interlayer adhesion, which is far weaker than the bulk polymer. The ε values in the tables are bulk-polymer limits and do not apply to cross-layer bending. Print flat or treat the travel as unusable.