An exact mechanical keyboard plate creator that doesn't result in 13.99999mm cutouts
This server-side plategen has been succeeded by a client-side revision.
The successor can be viewed here.
This project will be archived for the time being.
- Alternate generators don't have either the features or exactness that designers need.
- This plate generator is designed to save keyboard designers significant amounts of time, while also providing top-notch accuracy required for designs costing hundreds of dollars.
- Filleting. Fillet all corners during generation so Fusion 360 doesn't have to crash 50 times later attempting it.
- Exactness. No more 13.99999mm or 14.00001mm cutouts; this generator will always produce exact, accurate dimensions.
- A variety of cutout options based on actual production-use dimensions.
There are two methods of use: As a CLI tool, or as a web app.
plategen.py [-h] [-ct CUTOUT_TYPE] [-cr CUTOUT_RADIUS] [-st STAB_TYPE]
[-sr STAB_RADIUS] [-at ACOUSTICS_TYPE]
[-ar ACOUSTICS_RADIUS] [-uw UNIT_WIDTH] [-uh UNIT_HEIGHT]
[--debug-log]
Run python plategen.py -h
to see detailed information on each argument.
An example of generating based on raw data in a file:
cat kle-raw | python plategen.py > plate.dxf
To use the CLI tool, requirements from requirements.txt must be installed.
Simply run web.py with requirements from requirements-web.txt installed.
In addition to feeding in typical Keyboard-Layout-Editor data, custom fields may be added to fine-tune the outcomes:
-
_rs:
Rotate the stabilizer cutout independently from the key. (Idea from SwillKB Builder)For example, for bottom row flipped spacebars, a 6.25U spacebar may have the data field
{w:6.25,_rs:180}
. -
_rc:
Similar, but for rotating the switch cutout independently of the key.
- Python 3.7
- Everything in requirements.txt (or requirements-web.txt if hosting web service)
- More stabilizer cutout options.
- More switch cutout options.
- Fix certain rotated switches dying. However, this is mostly due to awful KLE syntax, so I don't plan to repair it soon.