Add latches to the lid

This commit is contained in:
2026-06-11 17:00:04 +02:00
parent dfed581377
commit cab17d08e9
4 changed files with 218 additions and 16 deletions
+51 -9
View File
@@ -1,12 +1,13 @@
# Wargame Accessory Box & Dice Tray
A parametric OpenSCAD box for carrying tabletop wargaming accessories.
Three printable parts:
Four printable parts:
| Part | Purpose |
|----------|--------------------------------------------------------------------|
| `box` | Open tray. With the insert removed it doubles as a dice tray. |
| `lid` | Fully detachable friction-fit lid (no hinge to get in the way). |
| `lid` | Fully detachable lid, held shut by snap latches hinged on filament pins (or a classic friction fit). |
| `latch` | One-piece snap latch — print two per latch position. |
| `insert` | Removable compartment tray for tokens, measuring tapes, etc. |
![Assembly](docs/assembly.png)
@@ -19,14 +20,50 @@ the free space in your backpack — they are **outer** dimensions and
measured space exactly.
Pick what to render with the `part` variable (or the customizer):
`assembly` (exploded preview), `box`, `lid`, `insert`, `print`.
`assembly` (exploded preview), `box`, `lid`, `insert`, `latch`, `print`.
Or export everything from the command line:
```sh
make # exports stl/box.stl, stl/lid.stl, stl/insert.stl
make # exports stl/box.stl, stl/lid.stl, stl/insert.stl, stl/latch.stl
```
## The latch lid
By default (`lid_style = "latch"`) the lid is held shut by snap
latches that hinge on short pieces of filament:
* The **lid** carries pairs of lugs along its front and back edges.
* Each **latch** is a single printed part with a pivot barrel that
fits between a lug pair. Its window snaps over a chamfered catch
bar on the box wall; pull the flared tip outward to open.
* To assemble one latch: cut a ~23 mm piece of 1.75 mm filament,
slide it through lug → latch barrel → lug, and fix it with a drop
of glue **on the outer lug holes only** — the lug holes are sized
tight and the barrel hole loose, so the latch keeps pivoting
freely. Trim the pin flush.
Tuning knobs (all per side unless noted):
* `latches_per_side` — how many latches on each long wall
(default 2, evenly spread).
* `catch_proud` — how far the catch bar sticks out = how hard the
snap is (default 1.4 mm).
* `latch_play` — vertical play between latch and catch bar
(default 0.1 mm). Use a small negative value to preload the lid
shut.
* `filament_d` — hinge pin diameter, in case you want to use
2.85 mm filament or a piece of wire instead.
Note: lugs and latches stick out about 7 mm beyond the box on the
front and back, so allow `total_y + 14` of space in the backpack.
With latches doing the holding, a looser lip (`lid_clearance` around
0.30.4) makes the lid pleasant to take off.
Prefer the original hinge-free push-fit lid? Set
`lid_style = "friction"` and you get the old behaviour, including
the thumb grooves for prying the lid off.
## Configuring the insert layout
Compartments are defined by the `layout` list, one entry per row
@@ -55,10 +92,13 @@ of the automatic height and print two with different layouts.
## How the parts work together
* The **lid** is a flat plate with a lip that plugs into the box opening.
`lid_clearance` (default 0.2 mm per side) controls the friction fit —
print a test fit and adjust for your printer/material. Shallow thumb
grooves on the box's front and back walls let you pry the lid off; they
do **not** pierce the wall, so the dice tray stays fully closed.
With the latch lid the lip just aligns the lid (and keeps tokens in
their compartments); with `lid_style = "friction"` it carries the
whole fit. `lid_clearance` (default 0.2 mm per side) controls how
snug it is — print a test fit and adjust for your printer/material.
In friction mode, shallow thumb grooves on the box's front and back
walls let you pry the lid off; they do **not** pierce the wall, so
the dice tray stays fully closed.
* The **insert** sits below the lid's lip, so the lip also keeps loose
tokens from jumping compartments in the bag. Finger notches on its
short walls let you lift it straight out; then the empty box is your
@@ -68,7 +108,9 @@ of the automatic height and print two with different layouts.
## Printing notes
* No supports needed for any part. Print all parts flat side down
(the lid prints plate-down, lip up).
(the lid prints plate-down, lip and lugs up). The latch prints
standing on its flat side — that gives a clean pivot hole and puts
the layer lines along the strip, where the snap stress is.
* PLA or PETG, 23 perimeters, ~10 % infill (the parts are mostly walls).
* If the lid is too tight/loose, tune `lid_clearance` in steps of 0.05 mm.
Same for the insert with `insert_clearance` (looser is fine there —