# Snap-fit joints for 3D printing: designing a clip that holds without snapping off

The beam length, taper, angles, undercut, and clearance that make a 3D printed snap-fit clip hold, how to orient it so it does not snap off, and how to fix a bad fit with a slider.

---

You designed a lid that clips onto a box, printed it, and one of two things happened.
Either the clip flexed once, snapped clean off, and now sits on your desk in two pieces.
Or it went on so tight you needed pliers, and once it was on it never came back off. A
snap-fit that is too brittle and one that is too stiff are the same design problem seen
from opposite sides: the wrong beam dimensions, the wrong angles, or the wrong print
orientation.

The good news is that a cantilever snap-fit is one of the most predictable features you
can design. There are a handful of numbers that just work, and once you know them you can
make a clip that goes on with a satisfying click, holds, and comes back off when you want
it to. This post covers the beam dimensions, the insertion and retention angles, the
undercut and clearance, the one print-orientation mistake that kills most printed clips,
and how to tune any of it with a slider instead of remodeling the part.

## What is a cantilever snap-fit, and why is it the one to use?

A cantilever snap-fit is a flexible arm (a beam) with a hook on the end. As you push two
parts together, the hook rides up a ramp, the arm bends out of the way, and once the hook
clears the edge the arm springs back so the hook drops into a recess (the undercut) and
locks the joint. It is the classic clip on a battery cover, a remote's back panel, or a
project-box lid.

It is the right snap-fit to start with because it is the easiest to design and the easiest
to reason about. All the flex happens in one arm, so you control the whole behavior with
that arm's length, thickness, and the hook geometry. Torsion and annular (ring) snaps
exist and have their place, but for a lid, a panel, or two halves of an enclosure, a
cantilever clip is almost always what you want.

## How thick and long should the snap-fit arm be?

The arm has to bend far enough to let the hook clear the edge without the plastic
straining past its breaking point. Two levers control that: a longer arm bends more easily
for the same tip force, and a thinner arm bends more easily but carries less load. The
usual rule of thumb is to make the beam length at least 5 times its base thickness, and
stretch that toward 8 to 10 times for a stiffer material like PLA that does not like to
flex.

Worked example: say your hook needs to deflect 1.5 mm to clear its edge. Start with a beam
around 12 mm long and 1.5 to 2 mm thick at the base, 4 to 6 mm wide. If it feels too
stiff, lengthen it or thin the base; if it feels flimsy, do the reverse.

Three details separate a clip that lasts from one that cracks on the first flex:

- **Taper the arm.** Reduce the thickness from 100 percent at the base to about 50 percent
  at the tip. A straight beam concentrates all its bending stress right at the base, which
  is exactly where it snaps. A taper spreads that stress along the arm and uses less
  plastic.
- **Fillet the base.** A 0.5 to 1 mm fillet where the arm meets the wall removes the sharp
  inside corner that acts as a crack starter. This one radius is the single biggest
  difference between a clip that survives repeated use and one that fails at the root.
- **Keep the beam solid.** Print snap-fit arms at 100 percent infill, or thick enough that
  your perimeters fill them completely. A beam with gaps inside fails at the first void.

| Beam feature | Starting-point value | Why |
|---|---|---|
| Length vs base thickness | 5x (flexible) to 10x (stiff PLA) | Longer arm bends more easily |
| Base thickness | 1.5 to 2 mm for a small clip | Below ~1 mm gets fragile fast |
| Tip thickness | ~50 percent of the base | Spreads bending stress, saves plastic |
| Base fillet | 0.5 to 1 mm radius | Removes the crack-starting corner |
| Infill in the arm | 100 percent / fully solid | Voids are failure points |

## What insertion and retention angles should you use?

The hook has two working faces, and they do opposite jobs. The insertion face (the ramp
the hook slides up as you push the parts together) should be shallow so the clip goes on
with reasonable force: aim for a 20 to 30 degree lead-in. The retention face (the ledge
that holds the joint once engaged) sets how hard it is to pull the parts back apart.

| Retention face angle | Behavior | Use it for |
|---|---|---|
| 30 to 45 degrees | Removable, clicks apart with a firm pull | Lids, panels, anything you open |
| 45 to 60 degrees | Holds firmly, needs a deliberate release | Covers you rarely open |
| 90 degrees (vertical) | Permanent lock, only comes apart by breaking | Parts meant to stay together |

Pick the retention angle for how the part will actually be used. A battery door wants 30
to 45 degrees so it pops off in your hand. Two halves of a sealed housing you never plan
to open can use a near-vertical catch. If in doubt, go shallower: a clip that is a little
too easy to open is annoying, but a clip you can only remove by snapping it off is a
one-way trip.

## How much undercut and clearance does a printed snap-fit need?

The undercut is how far the hook overlaps the edge it grabs, and it sets the holding
strength. Around 1 mm of undercut is a solid starting point for a small clip. More undercut
holds harder but demands more deflection to engage, which means a longer or thinner arm to
avoid overstraining the plastic. Too much undercut on a stiff short arm is a guaranteed
snap.

Clearance is the gap you leave between the mating faces, and this is where FDM prints
differ from injection molding. FDM parts vary enough in real dimensions that a snap-fit
needs a looser fit than a static one: leave about 0.5 mm of clearance between the hook and
the surface it slides against. Design it too tight and the clip either will not engage or
binds and cracks. This is the same real-world-versus-modeled gap covered in our guide to
[3D printing tolerances and making parts that fit](/blog/3d-printing-tolerances-parts-that-fit),
just applied to a moving feature instead of a press fit, which is why the number is bigger.

## Which way should you print a snap-fit clip?

This is the mistake that breaks more printed clips than any dimension error: printing the
flexing arm standing straight up in Z, so the layer lines run across the direction it
bends. FDM parts are weakest between layers. When a snap-fit arm flexes, it pulls those
layers apart, and a beam printed upright can shear off along a single layer line the first
time you use it. Printing along the layer lines in this direction cuts elongation at break
by roughly half compared with printing flat.

The fix is to orient the part so the arm bends within the print plane (the X-Y plane), with
the layer lines running along the length of the beam rather than across it. Then the arm
flexes with the grain of the plastic instead of trying to peel layers apart. When you slice
your part, rotate it so any snap-fit arm lies flat and bends sideways, not up and down. If a
clip keeps snapping despite good dimensions, orientation is the first thing to check.

<TryMeshra />

## How Meshra helps you dial in a snap-fit

Here is where designing the part parametrically, instead of downloading a fixed mesh you
cannot easily edit, saves you a stack of failed prints. In Meshra you describe the part in
plain language, and it writes real parametric CAD (CadQuery on the OpenCascade kernel) and
builds an exact solid, not a triangle blob. You could ask for "a project box lid with two
cantilever snap clips, 12 mm long arms, 1 mm undercut" and get a solid part with those
features actually modeled.

The payoff lands on your second print. Every meaningful dimension Meshra generates,
including the arm length, base thickness, undercut, and clearance, becomes a slider in the
parameter drawer. If the clip snapped because the arm was too stiff, drag the length up a
couple of millimeters, or the base thickness down 0.2 mm, and the same code re-executes
deterministically with the new number: the geometry updates, nothing else in the part
moves, there is no AI call, and it is instant and free on every plan. If the clip is too
loose, nudge the undercut up 0.2 mm. That is a five-second slider drag instead of
re-modeling the arm or fighting a mesh editor.

Meshra also gives you a sanity check before you slice: the printability summary reads the
loaded part and flags a wall thin enough to be a printing problem, for example "2 walls may
be too thin to print reliably, estimate only," which catches an arm you accidentally made
too skinny. Be clear about what that is and is not: it is a print-reliability check on the
geometry, not a flex or fatigue simulation, so it does not tell you whether your clip will
survive 500 open-close cycles, and it does not set your print orientation for you. That
orientation call, keeping the arm flat so it bends in the print plane, is still yours to
make in your slicer. When the part is right, export STL for your slicer, or STEP if you
want to open it in another CAD tool later. For how that slider-driven re-execution works,
see [from a sentence to a printable part](/blog/from-a-sentence-to-a-printable-part), and
if your snap-fit is holding an enclosure together, our guide to
[designing enclosures for electronics](/blog/designing-enclosures-for-electronics) covers
the box around it. For a snap-fit you use every day, a
[cable clip that grips your exact cable](/blog/3d-printed-cable-clip-that-fits) is a
two-armed snap in disguise, same flex-and-hold thinking on a smaller part.

## FAQ

### Why did my snap-fit clip snap off on the first flex?

Almost always one of three things: the arm was too short or too thick to bend far enough
without overstraining, there was no fillet at the base so a sharp corner started a crack,
or it was printed upright so the flex pulled the layer lines apart. Lengthen the arm, add a
0.5 to 1 mm base fillet, and reprint it lying flat so the arm bends in the print plane.

### What clearance should I leave between the hook and the catch?

About 0.5 mm for FDM. That is looser than you would use for a static press fit, on purpose:
FDM parts vary enough in real dimensions that a tighter gap on a feature that has to slide
and engage tends to either bind or refuse to click home.

### Can I make a snap-fit that comes apart, and one that stays together forever?

Yes, and the retention face angle is the control. A 30 to 45 degree catch clicks apart with
a firm pull, good for a lid you open. A 90 degree (vertical) catch is a permanent lock that
only separates by breaking. Same arm, different ledge angle.

### Is PLA or PETG better for snap-fit clips?

PETG flexes further before it breaks, so it is more forgiving for a clip that bends a lot or
gets opened often. PLA is stiffer and more brittle, so it can work for a short-throw clip
but is less tolerant of a marginal design. Whichever you use, print the arm flat so it bends
along the layer lines, not across them.

## Where to start

If you have a lid, a panel, or two halves that need to click together, describe the part in
the [Meshra builder](/templates) with the clips called out, print one, and feel how it
engages. Then tune the arm length, undercut, and clearance with sliders until the click is
right, and reprint. The [template gallery](/templates) has enclosures and brackets with
parameters already exposed if you would rather start from something than from a blank
prompt. Free and Maker plans both include AI generations for this kind of iteration; see
[pricing](/pricing) for current allowances, or [create an account](/sign-up) to save your
part and dial in the clip after your first test print.

A snapped clip is not a dead end. Get the beam length and the base fillet right, leave 0.5
mm of clearance, print it flat so it bends with the layers, and when the first one is not
quite there, change the one number that is wrong instead of starting over.
