The formulas
Cantilever hook, rectangular section (y = undercut = deflection)
constant thickness: y = 0.67 × ε × l² ÷ h
thickness tapers to h/2: y = 1.09 × ε × l² ÷ h
width tapers to b/4: y = 0.86 × ε × l² ÷ h
strain at the root: ε = y × h ÷ (K × l²) K = 0.67, 1.09 or 0.86
thickest root: h = K × ε × l² ÷ y
force to bend the arm: P = (b × h² ÷ 6) × Es × ε ÷ l
Annular ring or cap (y = undercut on the diameter)
strain in the ring: ε = y ÷ d
largest undercut: y = ε × d
force to stretch the ring: P = y × d × Es × X
Both
push-on force: W = P × (μ + tan α) ÷ (1 − μ × tan α)
pull-off force: the same, with the return angle α′ for α
- y is the undercut: how far the hook stands proud of the edge it passes, which is how far the arm bends. On a ring, it is the bead’s diameter minus the bore’s.
- ε is the strain as a fraction (1.43% = 0.0143). l is the arm length from root to hook, h the root thickness in the direction it bends, b the root width.
- Es is the secant modulus at that strain, d the diameter at the joint and X a factor set by the ring’s wall (see annular snap fits below).
- μ is the friction coefficient. α is the lead-in angle, measured from the direction the parts move together.
Every formula comes from Bayer MaterialScience’s Snap-Fit Joints for Plastics design guide (Bayer’s plastics business is now Covestro). The guide assumes the part the hook catches on stays rigid. If both parts flex about equally, give each one half the undercut.
What is the snap-fit deflection formula?
The snap-fit deflection formula for a straight cantilever hook is y = 0.67 × ε × l² ÷ h (Covestro’s design guide). The deflection y equals the undercut, ε is the root strain, l the arm length and h the root thickness. A 16 mm PLA (polylactic acid) arm 2 mm thick deflects 1.22 mm at 1.43% strain.
Taper the arm and the constant grows: 1.09 when the thickness falls to half at the hook, 0.86 when the width falls to a quarter. Solved the other way, the formula sizes the arm. The thickest root for a given undercut is h = K × ε × l² ÷ y.
Worked example: a PLA clip that opens often
These are the calculator’s defaults: a constant-section PLA arm 16 mm long, 2.0 mm thick and 6 mm wide at the root, with a 1.0 mm undercut.
- Allowable strain: UltiMaker’s flat-printed PLA bars yield at 3.4%. Covestro allows 70% of that for one snap (2.38%) and 60% of 2.38% for a joint taken apart often (1.43%).
- Strain the arm sees: ε = 1.0 × 2.0 ÷ (0.67 × 16²) = 1.17%, or 82% of the limit.
- Largest undercut: y = 0.67 × 0.0143 × 16² ÷ 2.0 = 1.22 mm.
- Thickest root for the 1.0 mm undercut: h = 0.67 × 0.0143 × 16² ÷ 1.0 = 2.45 mm.
The arm passes. Snapped together only once, the same arm may take 2.38% strain and a 2.04 mm undercut.
Tapered cantilever snap fits
Covestro says tapering the thickness to half at the hook raises the permissible deflection by more than 60% over a constant arm. Here is the same 16 × 2.0 × 6 mm PLA arm with a 1.0 mm undercut, opened often:
| Arm shape | K | Strain at the root | Largest undercut | Force to bend it |
|---|---|---|---|---|
| Constant thickness | 0.67 | 1.17% | 1.22 mm | 8.8 N |
| Thickness tapers to 1.0 mm at the hook | 1.09 | 0.72% | 1.99 mm | 5.4 N |
| Width tapers to 1.5 mm at the hook | 0.86 | 0.91% | 1.57 mm | 6.9 N |
The undercut grows with the square of the arm length, so a short arm catches little. For print orientation, the root fillet and the clearance around the hook, see the 3D print snap fit guide.
How do you calculate snap-fit assembly force?
Multiply the force to bend the arm, P = b × h² × Es × ε ÷ (6 × l), by (μ + tan α) ÷ (1 − μ × tan α) for friction μ and lead-in angle α. At 30° and μ = 0.6, a PLA clip that bends at 8.8 N pushes on at 15.9 N.
Continuing the default PLA clip:
- Modulus: UltiMaker’s flat-printed PLA has a flexural modulus of 3,019 MPa.
- Force to bend the arm: P = (6 × 2.0² ÷ 6) × 3,019 × 0.0117 ÷ 16 = 8.8 N (2.0 lbf).
- Lead-in factor: at 30° and μ = 0.6, (0.6 + 0.577) ÷ (1 − 0.6 × 0.577) = 1.80.
- Push-on force: W = 8.8 × 1.80 = 15.9 N (3.6 lbf) per hook.
- Pull-off force: a 45° return face has a factor of 4.00, so 35.2 N (7.9 lbf).
The factor depends only on the face angle and the friction:
| Face angle | Factor at μ = 0.6 | Force for the 8.8 N arm |
|---|---|---|
| 20° | 1.23 | 10.9 N |
| 30° | 1.80 | 15.9 N |
| 45° | 4.00 | 35.2 N |
| 50° | 6.29 | 55.3 N |
| 55° | 14.2 | 125 N |
| 59° or steeper | no limit | locks |
The factor runs to infinity once the face angle plus the friction angle (the arctangent of μ) reaches 90°, which is 59° at μ = 0.6. A lead-in that steep jams. A return face that steep holds until the hook is lifted off its ledge.
For round snap fits, DuPont’s design guide calls a 45° return angle satisfactory for most applications and makes a joint permanent with 90°. It names a 30° lead-in as good practice. Those two angles are the calculator’s defaults.
Friction coefficient
Covestro’s table lists plastics sliding on steel. Two different plastics slide at about those values or slightly below. The same plastic on itself runs higher, by the factor the guide gives:
| Plastic | On steel | Factor, same plastic | On itself |
|---|---|---|---|
| Nylon (PA, polyamide) | 0.30 to 0.40 | × 1.5 | 0.45 to 0.60 |
| Polycarbonate (PC) | 0.45 to 0.55 | × 1.2 | 0.54 to 0.66 |
| ABS (acrylonitrile butadiene styrene) | 0.50 to 0.65 | × 1.2 | 0.60 to 0.78 |
The table has no PLA, PETG (glycol-modified polyethylene terephthalate) or ASA (acrylonitrile styrene acrylate). The default 0.6 is the value Covestro’s own worked example uses for polycarbonate on polycarbonate (0.50 × 1.2). A higher μ raises both forces and lowers the locking angle: at μ = 0.78 it drops to 52°.
Which modulus to use
Covestro asks for the secant modulus, which is stress ÷ strain at the design strain on the material’s stress-strain curve. Filament data sheets don’t publish it. The presets use the flexural modulus of flat-printed bars instead. That figure is measured at low strain, where the curve is steepest, so the computed forces run high. The strain and the undercut don’t depend on the modulus.
Annular snap fits
An annular snap fit stretches a whole ring over a bead. The strain is the undercut on the diameter divided by the diameter, so the largest undercut is ε × d. A PLA cap on a 25 mm post that comes off often allows 0.36 mm on the diameter (0.18 mm per side). Fitted once, the limit rises to 0.60 mm.
The annular snap fit guide sizes the bead, the groove and the print orientation. It works from Prusament PLA, which yields at 2.9% rather than 3.4%. Its undercuts come out 15% smaller than with this calculator’s PLA preset.
For the force, Covestro treats the ring as a beam resting on a resilient foundation. With the ring (the hub) flexing on a rigid post, d₀ its outside diameter and ν Poisson’s ratio (about 0.35 for plastics):
X = 0.62 × √((d₀/d − 1) ÷ (d₀/d + 1)) ÷ ([(d₀/d)² + 1] ÷ [(d₀/d)² − 1] + ν)
For a hollow inner part squeezed by a rigid tube, use d/dᵢ in place of d₀/d (dᵢ is its inside diameter) and subtract ν. A 25 mm PLA cap with a 2 mm wall and a 0.3 mm undercut gives X = 0.0236, P = 535 N and W = 964 N when pushed on square.
Covestro counts a groove at least 1.8 × √(d × t) from the open end as remote (12.7 mm here), and its tests put the force there at up to 3 times as much. To assemble by hand, tip the cap so most of the bead drops into the groove first, then press in the rest. Only part of the bead deforms at once, and Covestro notes the force is much smaller.
Strain limits for 3D printed snap fits
Each material preset fills in the strain limit and modulus below, from the maker’s data sheet for solid bars printed flat.
| Material | Yield strain, printed flat | One assembly | Taken apart often | Flexural modulus | Upright bars break at | Largest undercut, 16 × 2.0 mm arm, often |
|---|---|---|---|---|---|---|
| PLA | 3.4% | 2.38% | 1.43% | 3,019 MPa | 2.0% | 1.22 mm |
| PETG | 5.9% | 4.13% | 2.48% | 1,882 MPa | 1.8% | 2.13 mm |
| ABS | 4.1% | 2.87% | 1.72% | 1,430 MPa | 2.0% | 1.48 mm |
| ASA | 3.4% | 2.38% | 1.43% | 2,000 MPa | not published | 1.22 mm |
| Nylon (PA) | 6.1% | 4.27% | 2.56% | 1,872 MPa | 1.7% | 2.20 mm |
| Polycarbonate (PC) | 6.1% | 4.27% | 2.56% | 1,619 MPa | 2.0% | 2.20 mm |
The figures come from UltiMaker’s data sheets for PLA, PETG, ABS, nylon and PC, and from Prusament’s for ASA.
Covestro lets amorphous plastics such as PETG, ABS, ASA and PC take about 70% of their yield strain in one brief snap. Partially crystalline ones such as nylon may go almost to the yield point. The presets apply 70% to every filament, because a printed arm also depends on its layer bonds. For joints separated and rejoined often, Covestro uses about 60% of the one-assembly value.
Layer direction matters more than the material. UltiMaker’s upright bars, pulled across their layers, broke at 1.7 to 2.0% without yielding. Prusament puts ASA’s interlayer adhesion at 11 MPa, against a 42 MPa yield strength along the layers. Print a hook’s arm lying flat so it bends along its layers, and print a ring standing up so it stretches along them.
Molded plastics and other filaments
For an injection-molded part or a filament not listed, pick “Other” and type the strain limit and secant modulus from the resin maker. Covestro’s one-assembly limits at 23 °C are 4% for Makrolon and Apec polycarbonate, 3.5% for Makroblend blends and 2.5% for Bayblend PC/ABS. Makrolon with 10% and 20% glass fiber takes 2.2% and 2.0%.
Covestro’s own example makes a good check. A tapered Makrolon hook 19 mm long and 9.5 mm wide, with a 2.4 mm undercut, is strained to half its 4% limit. With Es = 1,815 MPa at 2%, the guide gets a 3.28 mm root, P = 32.5 N and W = 58.5 N. Typed into the calculator, the same hook returns 2% strain, 32.6 N and 58.6 N. The small gaps are rounding in the guide.
Built by 3D Calculators Team· Published · Figures last checked
Sources
- Bayer MaterialScience (now Covestro), Snap-Fit Joints for Plastics: A Design Guide (copy hosted by SparkFun) (accessed 2026-11-03)
- DuPont, General Design Principles for DuPont Engineering Polymers, Module I (snap-fit angles), copy hosted by Stellenbosch University (accessed 2026-11-03)
- UltiMaker, PLA technical data sheet v2.00 (printed-sample mechanical properties) (accessed 2026-11-03)
- UltiMaker, PETG technical data sheet v1.00 (printed-sample mechanical properties) (accessed 2026-11-03)
- UltiMaker, ABS technical data sheet v5.00 (printed-sample mechanical properties) (accessed 2026-11-03)
- UltiMaker, Nylon technical data sheet v2.00 (printed-sample mechanical properties) (accessed 2026-11-03)
- UltiMaker, PC technical data sheet v2.00 (printed-sample mechanical properties) (accessed 2026-11-03)
- Prusa Polymers, Prusament ASA technical data sheet v1.1 (2024) (accessed 2026-11-03)
- Prusa Polymers, Prusament PLA technical data sheet v1.1 (2022), in the Prusament PLA tech-sheet download (accessed 2026-11-03)