Annular snap fit for 3D printed caps and ball joints: undercut size

Make the bead larger than the bore it snaps through by the allowed strain times the diameter: about 2% in PLA and 3.6% in PETG, so 0.51 mm and 0.89 mm on a 25 mm cap (0.25 and 0.45 mm per side). Print the cap standing up so the ring stretches along its layers.

Written by 3D Calculators Team·Published

An annular snap fit stretches a ring over a bead, so the undercut is set by how far the ring may stretch: undercut on the diameter = permissible strain × diameter. A PLA (polylactic acid) cap on a 25 mm post takes about 0.5 mm (0.25 mm per side) and PETG (glycol-modified polyethylene terephthalate) about 0.9 mm, if the cap prints standing up. Printed on its side, the same cap can take less than 0.2 mm before it splits between layers.

How much undercut does an annular snap fit need?

An annular snap fit needs an undercut, measured on the diameter, equal to the permissible strain times the joint diameter. A printed PLA cap on a 25 mm post takes 2.0% × 25 mm = 0.51 mm, or 0.25 mm per side. PETG takes about 0.89 mm, and caps removed often take 60% of those figures.

The formula is the permissible undercut from Covestro’s snap-fit design guide (first published by Bayer MaterialScience):

y = ε × d

y   undercut: bead diameter minus the bore it must pass through
ε   permissible strain, as a fraction (2% = 0.02)
d   diameter at the joint

ε, one assembly:     70% of the yield strain
                     half the elongation at break, if there is no yield point
ε, removed often:    60% of that

How to read it:

  • y is a difference of diameters. Hoop strain is the stretch of the circumference, and the circumference grows with the diameter, so ε = y ÷ d. Machine Design’s annular example agrees: a 66 mm motor-stator ridge pushed into a 64.5 mm housing is a 1.5 mm undercut on the diameter, which the article puts at 2.3% strain. Per side, the bead stands half of y proud of the bore.
  • The strain rules are Covestro’s. For one brief snap, amorphous plastics may take about 70% of their yield strain and partly crystalline ones nearly their full yield strain. Plastics with no distinct yield point take about half their elongation at break. For frequent separation, Covestro says to use 60% of these values.
  • One part is assumed rigid. A solid printed post barely flexes, so the cap takes the whole stretch. If the post is a thin tube as flexible as the cap, Covestro halves the strain on each part, so the undercut can double.
  • Wall thickness is not in the formula. In Covestro’s force equation a thicker wall raises the push force, not the strain.

Undercut for a 25 mm cap, by material

Each value is ε × 25 mm (0.98 in), for a ring printed with its axis vertical.

Material Strain data (source) ε, one assembly Undercut on the diameter Per side Removed often
PLA 2.9% yield, printed (Prusament PLA) 2.0% 0.51 mm 0.25 mm 0.30 mm
PETG 5.1% yield, printed (Prusament PETG) 3.6% 0.89 mm 0.45 mm 0.54 mm
ABS (acrylonitrile butadiene styrene) 2.4% yield, molded (INEOS Terluran GP-35) 1.7% 0.42 mm 0.21 mm 0.25 mm
PC (polycarbonate) 4.0% allowable, molded (Covestro Makrolon) 4.0% 1.00 mm 0.50 mm 0.60 mm
TPU (thermoplastic polyurethane) 5% round undercut, molded (Covestro, for its Texin and Desmopan TPU) 5% 1.25 mm 0.63 mm 0.75 mm
  • Printed rows: Prusa Polymers’ tensile specimens were printed flat and on edge on an Original Prusa i3 MK3, so their strain runs along the layers, as in a cap printed standing up.
  • Molded rows: Covestro’s 4.0% for Makrolon polycarbonate is its own snap-fit limit for one assembly. The TPU figure is the round undercut Covestro lets molded TPU strip off a mold core: 5%, and up to 10% under ideal conditions.
  • Filaments differ. Forward AM’s printed Ultrafuse PET broke at 2.7% along its layers, below Prusament PETG’s 5.1% yield point. If your filament’s data sheet lists only a break value, use half of it: 1.35% for that PET, or 0.34 mm at 25 mm.

Worked example: a PLA snap-fit cap on a 25 mm cylinder

The post is printed solid at 25.00 mm. It carries a bead near its top, and the cap has a matching groove inside its open end.

  1. Cap bore: 25.00 + 2 × 0.10 = 25.20 mm, a snug fit at 0.10 mm per side from the tolerance calculator.
  2. Undercut: 0.0203 × 25.2 = 0.51 mm, so the bead on the post is 25.20 + 0.51 = 25.71 mm.
  3. Groove in the cap: 25.71 + 0.20 = 25.91 mm. Covestro says a snap should be stress-free once seated, so the groove clears the bead instead of gripping it.
  4. Groove position: keep the groove near the cap’s open end. Covestro counts a groove at least 1.8 × √(d × t) from the end as “remote”, and a remote groove takes up to 3 times the push force. With a 2 mm wall, that is 1.8 × √(25 × 2) = 12.7 mm in.
  5. Print both parts standing up: the post on its base, the cap on its open end.
  6. Assemble at a tilt: hook one side of the bead into the groove first, then press the rest. Covestro notes this takes much less force than pushing square, since only part of the bead deforms at once.

In PETG the undercut is 0.0357 × 25.2 = 0.90 mm, so model the bead at 26.10 mm. For a 1 in (25.4 mm) PLA cap, the undercut is 0.020 in (0.52 mm).

The cap bore is a hole, and holes print small. If yours lose 0.20 mm on the diameter, like the 5 mm test hole that measures 4.80 mm in the hole compensation calculator, the PLA undercut grows to 0.71 mm. That is 2.8% strain, just under the 2.9% yield point. Correct the hole size first, then trust the formula.

Should a snap-fit ring be printed standing up or on its side?

Print it standing up, with the axis vertical. Each layer is then a whole ring, and the stretch runs along the extruded lines. On its side, the hoop crosses the layer lines at the two points level with the axis, and the ring splits there. Protolabs states the rule: when tension is perpendicular to the layers, “part weakness tends to occur.”

Material makers’ printed test bars show how big the gap is:

Filament (Forward AM, printed) Break strain along layers (XY) Across layers (ZX) Undercut at 25 mm, ring on its side
Ultrafuse PLA 4.2% 1.2% 0.15 mm
Ultrafuse PET 2.7% 1.1% 0.14 mm
Ultrafuse ABS 7.4% 1.8% 0.23 mm
Ultrafuse TPU 85A 600% 320% not the limit

The last column is half the across-layer break strain, Covestro’s rule for plastics with no yield point, times 25 mm. Prusa Polymers’ sheets show the same thing: interlayer adhesion of 17 MPa for Prusament PLA against a printed tensile yield strength of 51 MPa, and 18 MPa against 47 MPa for PETG.

An undercut of 0.15 mm on the diameter is under 0.08 mm per side, too little for the bead to catch. If the part’s shape forces it onto its side, print the snap ring as a separate part, standing up. TPU is the exception: at 320% across layers, its orientation barely matters.

Do you need slots in a round snap fit?

Slots help when a material is too stiff to stretch as a ring, such as PLA on a small socket. Covestro treats a slotted ring as cantilever arms rather than a ring. Each finger bends outward, so the strain sits at the slot’s end and depends on the finger’s length and thickness, not the diameter. Longer, thinner fingers take a bigger undercut.

There are two costs:

  • The fingers bend across layers. On a cap or socket printed standing up, each finger is a small vertical cantilever, which Protolabs Network and Sovol both say to avoid in FDM (fused deposition modeling) printing. Make the slots long and use PETG rather than PLA. Round each slot end with a fillet at least half the finger’s thickness, the root radius both guides give.
  • The seal is gone. Covestro notes that a continuous annular joint gives a semi-hermetic seal. A slotted cap does not.

What angle should the snap-fit bead have?

Give the bead a lead-in face of 30° or less from the axis. The return face, the one that resists pulling apart, sets how hard the cap is to remove:

Return angle Behavior (Machine Design) Sovol’s ranges
30° separates easily
45° typical for joints meant to come apart 45 to 70° for removable clips
90° permanent 90° for permanent locks

Sovol gives 25 to 35° for the lead-in. Covestro’s lamp-housing example uses 45° faces with a rounded edge, which it treats as an effective 30°.

The angle also decides how the bead prints. On a part printed standing up, a bead face that points down is an overhang. Protolabs Network says overhangs up to 45° usually print without support, so a 45° return prints clean, and a 90° return under a bead needs support.

How do you make a rotating snap fit?

Size the undercut the same way, then add running clearance everywhere after the bead, so the cap turns on clearance instead of rubbing on a stretched ring. The tolerance calculator gives 0.20 mm per side (0.40 mm on the diameter) for a turning pin. Use it on the bore, the groove diameter, and above and below the bead.

For a PLA swivel cap on a 25.00 mm post:

Feature Size Where it comes from
Cap bore 25.40 mm 25.00 + 0.40 running clearance
Bead on the post 25.92 mm bore + 0.0203 × 25.4 = 0.52 mm undercut
Groove in the cap 26.32 mm bead + 0.40 running clearance
Groove height bead height + 0.40 mm 0.20 mm above and below the bead

In PETG, the bead becomes 25.40 + 0.91 = 26.31 mm and the groove 26.71 mm. If the cap turns stiffly, check whether the bore printed small before you touch the undercut.

How do you size a 3D printed ball joint socket?

The socket’s mouth must be smaller than the ball by the undercut, ε × ball diameter, and the socket wraps past the ball’s equator far enough to make that mouth. Inside, leave the running gap Flashforge gives for PLA and PETG joints: 0.2 to 0.3 mm between the surfaces for a joint that holds with friction, or 0.4 to 0.5 mm to move freely.

mouth diameter       d_m = D − ε × D
socket sphere        D_s = D + 2 × c
mouth height above the ball's center:
                     h = √((D_s ÷ 2)² − (d_m ÷ 2)²)

D  ball diameter    c  running gap per side    ε  strain from the table above

With c = 0.25 mm and the strains from the table above:

Ball Material, ε Mouth diameter Undercut per side Mouth above the ball’s center
10 mm PLA, 2.0% 9.80 mm 0.10 mm 1.89 mm
10 mm PETG, 3.6% 9.64 mm 0.18 mm 2.08 mm
10 mm TPU, 5% 9.50 mm 0.25 mm 2.24 mm
20 mm PLA, 2.0% 19.59 mm 0.20 mm 3.01 mm
20 mm PETG, 3.6% 19.29 mm 0.36 mm 3.47 mm
20 mm TPU, 5% 19.00 mm 0.50 mm 3.85 mm

A solid 10 mm PLA socket holds its ball by only 0.10 mm per side. A hole that prints that far off either jams the joint or drops the ball. For small PLA joints, slot the socket (see above) or print it in TPU or PETG. A bigger ball also helps. Print the socket mouth up, so the mouth ring lies in the layers. Flashforge also asks for joint axes in the XY plane, since strength along the layer stack is weaker than within a layer.

What if the snap fit cracks, won’t go on, or falls off?

  • Cracks on the first push: check that the ring printed with its axis vertical. Then check the bore with the hole compensation calculator, since a bore that prints small raises the strain. If both are right, drop to the “removed often” undercut or move from PLA to PETG.
  • Too hard to push on: cut the lead-in to 30° or less, move the groove toward the cap’s open end, and assemble at a tilt.
  • Falls off: steepen the return face toward 45°. If it still comes off, measure the bead and bore. An undercut lost to a large bore or a small bead holds nothing.
  • Loosens or cracks after many cycles: use the “removed often” column, 60% of the one-time strain.
  • Still unsure: print short test rings at the “removed often” and the one-assembly undercut first, then adjust in 0.05 mm steps, the increment Sovol suggests for tuning snap fits.

Written by 3D Calculators Team· Published · Figures last checked

More from the blog

  • tolerances
  • dimensional accuracy

Counterbore holes in 3D prints: sizes for socket head screws

Counterbore hole 3D print sizes: for M3, model 6.5 mm wide and 3.4 mm deep over a 3.4 mm hole. Tables for M2 to M8 and #4 to 1/4 in, and printing it face down.

  • tolerances
  • dimensional accuracy

3D print countersink: sizes for flat head screws and how to print them

3D print countersink sizes: 90° for metric and 82° for inch flat head screws, 0.2 mm over the head's sharp diameter. M3 socket: 6.92 mm over a 3.4 mm hole.

  • tolerances
  • dimensional accuracy

3D print living hinge: thickness, length and filaments that last

A 3D print living hinge needs a web 0.4 to 0.6 mm thick, two or three layers. In a fold test, PP passed 1 million folds and PLA about 160. Sizes and settings.