Open Programmatic Keycap
Project description
OPK
OPK is a spherical top keycap profile developed in CadQuery and released under the very permissive Apache License 2.0.
It's especially suited for creating high/medium profile spherical top keycaps.
The profile is still highly experimental and very alpha stage.
Please contribute!
I'm new to CadQuery (CQ), Ptyhon and code based CAD in general. There's a lot of guesswork and fumbling around to get to this point, any help is very much appreciated.
Usage
If you are new to CQ, the easiest is to download a CQ-Editor pre-built package (I use the latest development release), load the keycap.py
file and hit Render!
The main keycap
function in the opk.py
file has sane defaults and parameters are sufficiently commented.
The export directory includes a few examples in both STL and STEP format.
Some examples:
Create the default 1u keycap
cap = keycap()
show_object(cap)
Create a 1.5U keycap
cap = keycap(unitX=1.5)
show_object(cap)
Create a flat top (not angled) 2U keycap
cap = keycap(unitX=2, angle=0)
show_object(cap)
Create a 4U spacebar
cap = keycap(unitX=4, angle=1, convex=True)
show_object(cap)
A 2.25U Return key in system-default-serif font
cap = keycap(unitX=2.25, legend="Return", font="serif", fontsize=8)
show_object(cap)
Save and Export results
CQ can export in many formats including STEP and STL. The easiest way to export an STL in CQ-Editor is by selecting the model in the 3D view and then clicking on Tools > Export as STL.
Of course it can be done programmatically and that can make exporting an entire keyboard very easy. The following code exports an STL and a STEP file.
cap = keycap()
show_object(cap)
exporters.export(cap, 'keycap.stl', tolerance=0.001, angularTolerance=0.05)
exporters.export(cap, 'keycap.step')
Notes / Recommendations
Default angle is 7deg that should be a good starting point for Row 3.
For spacebars a small angle (0-4deg) is recommended.
Not all fonts will be centered correctly, choose carefully. I'll add some way to better center the legends.
The code includes an example to use a DXF drawing as legend (check the comments at the end of the keycap function).
TODO
- add support for vertical key
- add stepped key
- add ISO Enter
- add 2U pos-like stabilizers
- add support for logos and graphical legends
- add reinforcement for big keys
- better legend centering
- secondary, tertiary, quaternary legends
- side printed legends
- add alternative stems
- allow reduced height of keycap for non 19.xx spacing
- clean up the code
- automatic export script of all needed keycap for a full keyboard
- output files already supported for 3D printing
- online editor
- add secondary/tertiary legends
- add support for stems other than cherry
- clean up the code
- fix negative angle top
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file opk-0.0.16.tar.gz
.
File metadata
- Download URL: opk-0.0.16.tar.gz
- Upload date:
- Size: 18.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 552d11056afc453c6cc5dfac2179cb9684f44de3882fdf885e486f574decf41b |
|
MD5 | bdb5ac5fea82b6b1ede721f44c6a262c |
|
BLAKE2b-256 | e6b11dc60a81e0b55484c45b78a4a46f9ce3114c94378cc25dfa9ca0d44cdc2e |
File details
Details for the file opk-0.0.16-py3-none-any.whl
.
File metadata
- Download URL: opk-0.0.16-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84f6a90a235d5d8ba19e6013b8249c046b4de5a48b31df5b359fab817cf461a4 |
|
MD5 | 253b3722dd4a0e6bdf02b5479fe19c52 |
|
BLAKE2b-256 | f650ad2185dc742a5f44345d5f9c055fc51ef73c11d7575dc1de1bd28222b2cc |