An exact mechanical keyboard plate creator
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
favicon Add favicon Nov 5, 2018
img Begin web frontend work Nov 4, 2018
templates Small html tweak to match rest of website Nov 28, 2018
test-data
#plate.dxf Continue work on rewrite using blocks Feb 11, 2019
.gitignore
.plate.dxf.swp Continue work on rewrite using blocks Feb 11, 2019
LICENSE Initial commit Oct 21, 2018
README.md Update README.md Nov 5, 2018
plate.dxf Continue work on rewrite using blocks Feb 11, 2019
plategen.py Continue work on rewrite using blocks Feb 11, 2019
plategen2.py
requirements-web.txt Remove wtforms Nov 5, 2018
requirements.txt Begin web frontend work Nov 4, 2018
test.py Clean up directory Oct 25, 2018
web.py
wsgi.py Begin production stuff Nov 5, 2018

README.md

Another Keyboard Builder

An exact mechanical keyboard plate creator that doesn't result in 13.99999mm cutouts

Use it here:

kbplate.ai03.me

Why?

  • 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.

Features

  • 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.

Usage

There are two methods of use: As a CLI tool, or as a web app.

Plategen as a standalone tool:

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.

Hosting:

Simply run web.py with requirements from requirements-web.txt installed.

Additional Options

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.

Requirements:

  • Python 3.7
  • Everything in requirements.txt (or requirements-web.txt if hosting web service)

Todo

  • 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.