Boxes.py


Keypad

Generator for keypads with mechanical switches.

Settings for Finger Joints

angle
style

style of the fingers

surroundingspaces

space at the start and end in multiple of normal spaces

bottom_lip

height of the bottom lips sticking out (multiples of thickness) FingerHoleEdge only!

edge_width

space below holes of FingerHoleEdge (multiples of thickness)

extra_length

extra material to grind away burn marks (multiples of thickness)

finger

width of the fingers (multiples of thickness)

play

extra space to allow finger move in and out (multiples of thickness)

space

space between fingers (multiples of thickness)

width

width of finger holes (multiples of thickness)

Keypad Settings

h

height of the box

top1_thickness

thickness of the button hold layer, cherry like switches need 1.5mm or smaller to snap in

top2_enable

enables another top layer that can hold CPG151101S11 hotswap sockets

top2_thickness

thickness of the hotplug layer, CPG151101S11 hotswap sockets need 1.2mm to 1.5mm

pcb_mount_enable

adds holes for pcb mount switches

led_enable

adds pin holes under switches for leds

diode_enable

adds pin holes under switches for diodes

cutout_type

Shape of the plate cutout: 'castle' allows for modding, and 'simple' is a tighter and simpler square

columns_definition

Each column is separated by '/', and is in the form 'nb_rows @ offset x repeat_count'. Nb_rows is the number of rows for this column. The offset is in mm and optional. Repeat_count is optional and repeats this column multiple times. Spaces are not important.For example '3x2 / 4@11' means we want 3 columns, the two first with 3 rows without offset, and the last with 4 rows starting at 11mm high.

Default Settings

thickness

thickness of the material (in mm) 🛈

format

format of resulting file 🛈

tabs

width of tabs holding the parts in place (in mm)(not supported everywhere) 🛈

debug

print surrounding boxes for some structures 🛈

labels

label the parts (where available)

reference

print reference rectangle with given length (in mm)(zero to disable) 🛈

inner_corners

style for inner corners 🛈

burn

burn correction (in mm)(bigger values for tighter fit) 🛈



Note that top layers use a different material thickness according to the top1_thickness and top2_thickness (if enabled).