# Print-in-place: push button with flexure return and click

> How do you 3D print a spring-loaded push button with a click?

- Category: 3D printing › Print-in-place mechanisms
- Kind: Hardware
- Basis: Xem Studio design: compliant (flexure) mechanism, planar; one designed running gap of 0.40 mm
- Page: https://xemstudio.com/objects/print-in-place-push-button-flexure/ · JSON: https://xemstudio.com/api/geometry?object=print-in-place-push-button-flexure · Plain text: https://xemstudio.com/objects/print-in-place-push-button-flexure/sheet.txt
- License: dimension sheet CC BY 4.0 (Xem Studio); files Xem Studio Design License (free to use and sell from, not to redistribute as files: https://xemstudio.com/license/)
- Use in every chat: add https://xemstudio.com/mcp as a connector (https://xemstudio.com/use-with-ai/)

## Overall (mm)

| length | width | height |
|---|---|---|
| 52.0 | 48.0 | 8.0 |

**Exact dimensions.** True size, with no printing tolerance added.

## Notes

- 3D print in place — prints already assembled, moving, in one job. Drawn at true size with no printer tolerance added; the 0.40 mm running gaps are part of the design.
- Running gap 0.40 mm per side, 0.80 mm on diameter — part of the design, drawn as is. On the 45° faces the same 0.40 mm is measured square to the face (0.57 mm along the axis).
- Bed: flat, everything 8 mm tall straight up from the bed: housing, plunger, flexures and click arm are one printed part with 0.40 mm slots between the moving and fixed edges.
- Support while printing: none needed — a straight extrusion; the two mounting holes through the bottom wall are teardrops.
- Captured: the plunger hangs on two parallel flexure beams (21 × 1.0 × 8) from the housing's left wall; its shoulder sits 0.40 mm under the housing top, so it cannot come out, and a block 3.0 mm below it is the hard stop.
- Freeing it: press the plunger fully a few times; the first press clears any strands in the 0.40 mm slots.
- Motion: 3 mm of travel; the tooth on the plunger meets the bump on the click arm at 1.4 mm, pushes the arm 0.6 mm aside and snaps past at 2 mm (a click, and a second one on the way back); the flexures return the plunger. Beam shortening shifts it 0.26 mm sideways at full travel.

## Sizes

| key | value | what |
|---|---|---|
| gap_mm | 0.4 | running gap per side on every moving interface (radial, axial, under captured parts) — part of the design, not a tolerance |
| housing_mm | 52 × 44 × 8 | outside |
| plunger_w_mm | 12 | where it leaves the housing (opening 12.8) |
| plunger_out_mm | 4 | above the housing at rest |
| travel_mm | 3 | to the hard stop |
| click_contact_mm | 1.4 | travel where the plunger's tooth meets the click bump |
| click_mm | 2.0 | travel where the tooth snaps past the bump |
| click_overlap_mm | 0.6 | how far the bump arm is pushed aside |
| flexure_l_mm | 21.0 | two parallel beams |
| flexure_t_mm | 1.0 | beam thickness (in the plane) |
| flexure_h_mm | 8.0 | beam height = print height |
| side_drift_mm | 0.26 | plunger's sideways shift at full travel from beam shortening (0.6 d²/L), inside the 0.40 gap |
| up_stop_mm | 0.4 | shoulder under the housing top: the plunger cannot be pulled out |
| mount_holes | 2 × Ø3.4 through the bottom wall | teardrop |

## Where the files are

- Xem Studio: [Print-in-place mechanism design (geometry computed in the generator)](https://xemstudio.com/) — web — Xem Studio design

## Free STEP/STL (2 parts, Xem Studio Design License, Xem Studio)

Index: https://xemstudio.com/files/hardware/print-in-place-push-button-flexure/index.json · license: https://xemstudio.com/files/hardware/print-in-place-push-button-flexure/LICENSE.md

- print-in-place-push-button-flexure-assembly: [STEP](https://xemstudio.com/files/hardware/print-in-place-push-button-flexure/print-in-place-push-button-flexure-assembly.step) · [STL](https://xemstudio.com/files/hardware/print-in-place-push-button-flexure/print-in-place-push-button-flexure-assembly.stl) — The whole print as laid on the bed (1 bodies, already assembled); STEP keeps each moving body a separate solid
- print-in-place-push-button-flexure-button: [STEP](https://xemstudio.com/files/hardware/print-in-place-push-button-flexure/print-in-place-push-button-flexure-button.step) · [STL](https://xemstudio.com/files/hardware/print-in-place-push-button-flexure/print-in-place-push-button-flexure-button.stl) — Housing, plunger, flexure beams and click arm: one part

## Questions

**What makes it spring back?**

Two parallel flexure beams 21 mm long and 1.0 mm thick join the plunger to the housing; pressing bends them, and they straighten again when released.

**Where does the click come from?**

A 45° tooth on the plunger has to push a bump on a thin cantilever 0.6 mm aside; it snaps past it at 2.0 mm of the 3.0 mm travel.

## Fits with

- [Print-in-place: captive wheel on a printed axle (Ø40 × 12)](https://xemstudio.com/objects/print-in-place-captive-wheel-axle/)
- [Print-in-place: barrel hinge, three knuckles, folds 180° (48.8 mm)](https://xemstudio.com/objects/print-in-place-barrel-hinge-180/)
- [Print-in-place: seven-knuckle hinge on a captive through-pin (58.4 mm)](https://xemstudio.com/objects/print-in-place-multi-knuckle-hinge/)
- [Print-in-place: captive turntable with V-ridge retention (Ø80 platter)](https://xemstudio.com/objects/print-in-place-captive-turntable/)
- [Print-in-place: linear slider on a dovetail rail with end stops (100 mm)](https://xemstudio.com/objects/print-in-place-dovetail-slider/)
- [Print-in-place: articulated chain, 6 links, 20 mm pitch](https://xemstudio.com/objects/print-in-place-articulated-chain/)
- [Print-in-place: captive ball joint, Ø24 ball, limited cone](https://xemstudio.com/objects/print-in-place-ball-joint/)
