Model the hook’s arm lying flat on the bed, leave 0.20 mm of clearance per side around it, and give the hook a 30° lead-in and a 45° retention face (90° for a latch that never comes apart). The arm’s length and root thickness come from one strain formula, and the strain limit comes from the filament.
How do you calculate snap-fit dimensions for a 3D print?
To calculate snap-fit dimensions for a 3D print, use the cantilever formula from Bayer’s Snap-Fit Joints for Plastics guide: undercut y = 0.67 × ε × L² ÷ h. L is the arm length, h its root thickness and ε the strain the filament allows. Choose L and y, then solve for the thickest arm under ε.
constant arm: y = 0.67 × ε × L² ÷ h
thickness tapers to h/2 at hook: y = 1.09 × ε × L² ÷ h
width tapers to b/4 at hook: y = 0.86 × ε × L² ÷ h
thickest arm for an undercut: h = 0.67 × ε × L² ÷ y
strain an arm sees: ε = y × h ÷ (0.67 × L²)
force to bend the arm: P = b × h² × Es × ε ÷ (6 × L)
force to push it home: W = P × (μ + tan α) ÷ (1 - μ × tan α)
- y is the undercut: how far the hook stands proud of the edge it has to pass. Bayer sets the deflection during assembly equal to the undercut.
- ε is the allowable strain as a decimal (1.4% = 0.014), from the strain table below.
- L is the arm length from root to hook, h the thickness at the root in the direction it bends, b the width at the root.
- Es is the secant modulus at that strain. Filament data sheets give only the modulus at low strain, so the force comes out slightly high.
- μ is the friction coefficient and α the lead-in angle. For the force to pull the joint apart, use the retention angle instead.
Bayer MaterialScience, now Covestro, assumes the part the hook snaps into stays rigid. If both parts flex about equally, give each half the deflection. Tapering the arm’s thickness to half at the hook raises the allowable undercut by more than 60% at the same strain.
These formulas cover cantilever snap fits: hooks, tabs, latches and clips on a flexing arm. The Hubs design guide from Protolabs calls this the most common type. Bayer also lists U-shaped arms, torsion snaps and annular joints. Annular snap fits (caps, rings and ball joints) stretch a whole ring instead and follow their own sizing rules, as do snap-fit box lids.
Worked example: a reusable PLA clip
Say you need a battery-door clip in PLA (polylactic acid), printed flat and opened often:
- Strain: 1.4%, the repeated-use figure for PLA in the table below.
- Space: the arm can be 16 mm (0.63 in) long, and the catch should be 1.0 mm (0.039 in).
- Thickest arm: h = 0.67 × 0.014 × 16² ÷ 1.0 = 2.4 mm. Model it at 2.0 mm (0.079 in). That puts the root at ε = 1.0 × 2.0 ÷ (0.67 × 256) = 1.17%.
- Width: 6 mm. Hubs asks for at least 5 mm.
- Force to bend it: P = 6 × 2.0² × 3,019 × 0.0117 ÷ (6 × 16) = 8.8 N. The 3,019 MPa is the flexural modulus in UltiMaker’s PLA data sheet for flat-printed samples.
- Force to snap it on: with a 30° lead-in and μ = 0.6, W = 8.8 × 1.80 = 15.9 N (3.6 lbf) per hook. Bayer’s table has no PLA, and 0.6 is the figure its own example uses for a plastic sliding on itself.
- Force to pull it off: with a 45° retention face, the factor is 4.0, so 35 N (7.9 lbf) per hook.
At 16 ÷ 2.0, the arm is 8 times as long as it is thick. That sits inside the 8:1 to 10:1 starting range Sovol gives for PLA.
Printed flat with a constant section, the same 16 mm × 2.0 mm arm takes these undercuts in PLA, PETG (glycol-modified polyethylene terephthalate) and ABS (acrylonitrile butadiene styrene):
| Material and use | Allowable strain | Largest undercut |
|---|---|---|
| PLA, opened often | 1.4% | 1.2 mm |
| PLA, snapped once | 2.4% | 2.1 mm |
| PETG, opened often | 2.5% | 2.1 mm |
| PETG, snapped once | 4.1% | 3.5 mm |
| ABS, opened often | 1.7% | 1.5 mm |
| ABS, snapped once | 2.9% | 2.5 mm |
| PLA or ABS, arm printed upright | 1.0% | 0.86 mm |
Taper the arm to 1.0 mm at the hook and each undercut grows by a factor of 1.09 ÷ 0.67, or 1.6.
Small snap fits
Undercut scales with the square of the arm length, so a short clip catches very little. An 8 mm PLA arm 1.2 mm thick, opened often, holds a 0.5 mm undercut: 0.67 × 0.014 × 8² ÷ 1.2 = 0.50 mm. QIDI gives 1.2 mm as the thinnest PLA hook for a 0.4 mm nozzle and 0.8 to 1.0 mm for PETG.
How much strain can a 3D printed snap fit take?
A 3D printed snap fit printed flat can take about 2.4% strain at the root in PLA, 4.1% in PETG and 2.9% in ABS for a single snap, which is 70% of the yield strain UltiMaker measured on printed samples. A clip opened repeatedly gets 60% of that: 1.4%, 2.5% and 1.7%.
Both rules come from Bayer’s guide. Amorphous plastics may be strained to about 70% of their yield strain in one brief snap, and partially crystalline ones almost to the yield point. Materials with no yield point get about half their elongation at break. Joints that are separated and rejoined often get about 60% of these values.
| Material | How it is made | One snap | Repeated snaps | Basis |
|---|---|---|---|---|
| PLA | printed flat | 2.4% | 1.4% | 70% of 3.4% yield strain (UltiMaker) |
| PETG | printed flat | 4.1% | 2.5% | 70% of 5.9% yield strain (UltiMaker) |
| ABS | printed flat | 2.9% | 1.7% | 70% of 4.1% yield strain (UltiMaker) |
| PLA, PETG, ABS | printed upright | 1.0%, 0.9%, 1.0% | avoid | half of 2.0%, 1.8%, 2.0% break strain, no yield (UltiMaker) |
| Polycarbonate (Makrolon) | molded | 4% | 2.4% | Bayer |
| PC/ABS blend (Bayblend) | molded | 2.5% | 1.5% | Bayer |
| Acetal (Delrin 100) | molded | 8% | 2 to 4% | DuPont |
| Nylon 66 (Zytel 101), dry | molded | 4% | 2% | DuPont |
| Nylon 66 (Zytel 101), 50% relative humidity | molded | 6% | 3% | DuPont |
PETG and ABS are amorphous in UltiMaker’s PETG and ABS data sheets. UltiMaker lists a melting point for PLA but groups it with brittle materials that break without yielding, so the cautious 70% rule applies to all three here. The molded figures are for injection-molded resin, which has no layer joints to fail.
Fictiv’s table for printed parts lists PLA at 4 to 8% and ABS at 7%. Both sit above the yield strain in UltiMaker’s sheets, and 7% is past the 4.6% at which UltiMaker’s flat ABS samples broke. Use the lower figures to size the arm.
PLA or PETG for a snap fit?
PETG takes 1.7 times PLA’s strain, so the same arm holds 1.7 times the undercut. Hubs names ABS, PETG and nylon as preferred and calls PLA one of the brittle grades “less suitable.” Sovol suggests PLA for prototypes and permanent single-snap joints, and PETG for battery doors and reusable clips.
Which way should you print a snap-fit hook?
Print a snap-fit hook with its arm lying flat on the bed, so the bending stress runs along the extruded lines instead of across layer joints. Arms built standing up fail early: UltiMaker’s upright PLA samples broke at 2.0% strain without yielding, and Fictiv halves the allowable strain for any arm built along Z.
The data sheets show how large the gap is. Flat-printed samples yield first and break later: PLA yields at 3.4% and breaks at 7.8%, and PETG yields at 5.9% and breaks at 7.6%. Upright, the same materials snap at 2.0% and 1.8% with no yield at all.
Fictiv says a Z-built arm loses about 50% of its elongation at break and 20 to 30% of its tensile strength. QIDI’s interlocking-parts guide puts it plainly: a hook flexing across layer lines “delaminates instead of bending.”
A hook on the wall of a box printed upright has its arm pointing up, in Z. Three fixes:
- Turn the arm sideways. Cut a U-shaped slot so the arm runs horizontally along the wall and flexes in and out. Its length then lies in X and Y.
- Print the box on its side, so the arm lies flat.
- Print the clip as a separate flat part and fix it to the box.
Avoid supports under the arm. Sovol notes that support scars on the tension face start fatigue cracks. Make the arm solid perimeters too: Sovol uses 4 wall loops for arms 1.5 to 2.5 mm thick. The line width calculator gives the thickness N walls print at, so you can match the arm to a whole number of walls.
Snap fit design: undercut, angles and root fillet
| Feature | Value to model | Source |
|---|---|---|
| Undercut (catch depth) | 0.5 to 1.2 mm to start, checked against the strain formula | Sovol |
| Lead-in angle | 25 to 35°; Bayer’s and DuPont’s examples use 30° | Sovol, Bayer, DuPont |
| Retention face, removable | 45° (30° releases easily) | DuPont, Machine Design |
| Retention face, permanent | 90° | DuPont, Fictiv, Sovol |
| Root fillet radius | at least 0.5 × root thickness: 1.0 mm on a 2.0 mm arm | Hubs, Sovol |
| Arm length | 8 to 10 × thickness in PLA, 5 to 8 × in PETG | Sovol |
| Arm width | at least 5 mm | Hubs |
| Taper | root thickness down to half at the hook | Bayer, Sovol |
Permanent or removable: the retention angle sets the pull-off force
Bayer works out the force to separate a joint with the push-on formula. Only the angle changes: the retention angle replaces the lead-in angle. For the 8.8 N PLA arm above, with μ = 0.6:
| Retention angle | Force factor | Pull-off force per hook |
|---|---|---|
| 30° | 1.8 | 16 N (3.6 lbf) |
| 45° | 4.0 | 35 N (7.9 lbf) |
| 59° or steeper | no limit | locks; lift the hook to release |
| 90° | no limit | permanent |
At μ = 0.6, the formula’s denominator (1 - μ × tan α) reaches zero at 59°. Any retention face steeper than that will not pull apart, however hard you pull.
DuPont calls 45° “satisfactory for most applications” and makes a joint permanent with 90°. Fictiv adds that a 90° hook comes apart only through an opening that lets you push the hook off its ledge. A latch that must open for service needs that window or a finger tab on the arm.
Root fillet
Every arm in Bayer’s tables carries its peak stress at the root. Its stress-concentration curve flattens out at a fillet radius of about 0.6 × the root thickness, and its own testing sets a floor of 0.015 in (0.38 mm). Covestro’s design manual says the factor “climbs quickly” once the radius drops below about 0.2 × the thickness.
DuPont multiplies the bending stress by 2.0 for a poorly rounded root and by 1.0 for a filleted one. So a sharp root doubles the stress, and the strain limits in the table no longer hold.
What clearance does a 3D printed snap fit need?
Model 0.20 mm per side (0.40 mm total) between the arm and its slot. That is the snap or friction lid value in the tolerance calculator and the low end of Sovol’s 0.20 to 0.40 mm per side on non-locking faces. Between the hook’s retention face and the ledge it catches, QIDI gives 0.10 to 0.20 mm. That gap lets the hook clear the ledge and the arm spring back.
Those values are for PLA and PETG. Add 0.05 to 0.10 mm per side for ABS or ASA (acrylonitrile styrene acrylate), and 0.10 to 0.20 mm for unfilled nylon (QIDI).
The clearance has three jobs:
- Gap on the hook side eats the catch. If the arm sits 0.20 mm back from the edge the hook passes, only 0.80 mm of a 1.0 mm hook engages. Model the hook 0.20 mm deeper.
- The arm needs room to bend. Behind it, leave free space of at least the undercut plus 0.20 mm.
- The arm must end up straight. Bayer wants the hook stress-free once it is engaged. Fictiv warns that an arm left bent creeps until the joint goes slack.
Published clearances vary, and most do not say whether they are per side:
| Source | Clearance as published | Per side or total |
|---|---|---|
| QIDI interlocking-parts guide | 0.10 to 0.20 mm on the latching face | on the face |
| QIDI interlocking-parts guide | 0.20 to 0.25 mm for a snap-fit lid | per side |
| Sovol | 0.20 to 0.40 mm on non-locking faces | per side |
| QIDI snap-fit clip guide | 0.2 to 0.3 mm for PLA and PETG, 0.3 to 0.5 mm for ABS and ASA | not stated |
| Fictiv | 0.3 mm for close-fit snap joints | not stated |
| Hubs | 0.5 mm for filament (FDM) printing | not stated |
If the slot prints narrow, correct the printer first with the hole compensation calculator rather than adding clearance to every model.
Snap fit pins, pegs and push-in clips
A split snap pin, peg or push-in clip is two cantilevers back to back. Bayer sizes a slotted snap joint as cantilever arms, not as an annular joint, because the slots make the load mostly bending. DuPont notes that slots allow much deeper undercuts, usually at the cost of holding force.
Example: a permanent PLA pin through a 6.0 mm (0.236 in) hole in a 3.0 mm panel.
- Shank: 5.6 mm, which is 0.20 mm per side inside the hole.
- Slot: 1.6 mm wide. That leaves two prongs 2.0 mm thick, 10 mm long from the bottom of the slot to the barbs.
- Barbs, snapped once (2.4%): y = 0.67 × 0.024 × 10² ÷ 2.0 = 0.80 mm per prong. The barbs measure 6.0 + 2 × 0.80 = 7.6 mm across.
- Check the slot: the prongs close by 2 × 0.80 = 1.6 mm, exactly the slot width. A narrower slot stops them before the barbs clear the hole.
- Removable pin (1.4%): 0.47 mm per prong, so barbs 6.9 mm across.
- Grip length: shoulder to barbs equals the panel thickness plus 0.20 mm, or 3.2 mm.
Print the pin on its side with flat top and bottom faces. The prongs then lie in X and Y, and each one is close to the rectangle the 0.67 formula assumes.
When a printed snap fit breaks, binds or comes loose
- Breaks at the root on the first snap: recompute the strain, ε = y × h ÷ (0.67 × L²). Then thin, lengthen or taper the arm, and add the root fillet. Check that the arm was printed flat.
- Takes too much force to assemble: bring the lead-in to 30° or less and check the 0.20 mm per side clearance. The bending force grows with h³ for a fixed undercut, so 10% off the thickness cuts it by about 27%.
- Pops out too easily: steepen the retention face toward 45° or 90°, or deepen the undercut within the strain limit. The force also grows in step with width, so a wider arm holds harder at the same strain.
- Goes slack after weeks: the arm is still bent when engaged. Deepen the slot or add the 0.10 to 0.20 mm latching-face gap so the arm returns straight.
Written 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-10-26)
- Covestro, Engineering Polymers: Part and Mold Design, Thermoplastics (Table 4-1 and fillet radius guidance) (accessed 2026-10-26)
- DuPont, General Design Principles for DuPont Engineering Polymers, Module I (Table 9.04, snap-fit angles), copy hosted by Stellenbosch University (accessed 2026-10-26)
- Machine Design, Fundamentals of annular snap-fit joints (2005) (accessed 2026-10-26)
- Fictiv, How to Design Snap Fit Components (accessed 2026-10-26)
- Hubs by Protolabs, How do you design snap-fit joints for 3D printing? (accessed 2026-10-26)
- Sovol, 3D Printed Snap-Fit Joints: How to Design Clips That Work (accessed 2026-10-26)
- QIDI, 3D Printed Interlocking Parts: Clearance & Fit Guide (accessed 2026-10-26)
- QIDI, Best Clearance for 3D Printed Snap-Fit Clips and Latches (accessed 2026-10-26)
- UltiMaker, PLA technical data sheet v2.00 (printed-sample mechanical properties) (accessed 2026-10-26)
- UltiMaker, PETG technical data sheet v1.00 (printed-sample mechanical properties) (accessed 2026-10-26)
- UltiMaker, ABS technical data sheet v5.00 (printed-sample mechanical properties) (accessed 2026-10-26)