KeyV2 is a keycap generation library designed for ease of use while still being extremely configurable. Whether you're looking to rattle off a single print of a pre-generated keycap, or you want to print one with custom legends, or even design your own key profile or custom key set, this library has you covered! To learn what types of keys you can generate with this library, check out the documentation.
What are mechanical keyboards?
Mechanical keyboards are keyboards that use mechanical switches instead of membrane sheets to register keypresses. Mechanical keyboards generally last longer and have more satisfying tactile feedback, and are much easier to customize or design yourself. A keycap is the piece of plastic that goes over a switch and lets you know what letter you are typing, so this library is a way to generate those pieces for mechanical keyboards. It's a really fun hobby, I swear.
How to use this library
For basic use, feel free to download the models attached to this page or boot up the application in the Thingiverse Customizer. Row 5 keycaps lie on the number and function layers, so the single keycaps provided make great escape keys. The default settings provided in the customizer should produce sturdy and functional keycaps on a variety of FDM printers; the models attached were generated with these settings. If Thingiverse's customizer is giving you trouble, you can always use OpenSCAD's customizer.
For more advanced usage, refer to the Github Documentation to get started!
Please note that Thingiverse requires customizable projects to have a single .scad file, with no import statements. While there's no harm in downloading and using
customizer.scad from the files list, it will be much easier to browse the full, compartmentalized source code. Rather than attach a zip to the files list that will get out of date, you can download the most up-to-date version of the code on Github by clicking this link.
If there are any questions please let me know in the comments, and if there are any issues please make a Github Issue!
The models on this page come with small supports that anchor the stem to the outside of the keycap, since the stem has a tendency to break off mid-print. These can be turned off in the Customizer.
Prints from this library are still challenging, despite all efforts to the contrary. Resin printers can create great looking keycaps; FDM printers can create usable keys that look alright, but may require tweaking to get prints acceptable. There are a few quick things that you can do:
If your stem isn't fitting in the switch, try upping the slop factor, accessed by giving your keystem function a numeric value (eg
cherry(0.5) key()). This will lengthen the cross and decrease the overall size of the keystem. The default value is 0.3, and represents millimeters. Note that even if you have a resin printer, you should probably keep the default value; keys printed with 0 slop will barely fit on the stem.
If your keystem breaks off the bed mid-print, you can enable a brim by adding the
brimmed() modifier. This will give a solid base for the keystem to anchor into.
If you are unsatisfied with the quality of the top surface, you can try printing the keycap on a different surface than the bottom, though it may impact the quality of the stem.
- If your newly-designed key shape is crashing into the switch, you can enable a clearance check for cherry switches by adding
$clearance_check = true; to your keycap declaration. This will subtract a cherry switch shape from your keycap, highlighting any parts in red which intersect with the switch.
That's it, if you have any questions feel free to open an issue or leave a comment on thingiverse!