4 ms·
I made this keyboard case with CadQuery. In the long run I'm working towards generating cases (and PCBs) for keyboards with many parameters available for config
by mikebannister 5y ago
I made this keyboard case with CadQuery. In the long run I'm working towards generating cases (and PCBs) for keyboards with many parameters available for configuration (e.g. number of columns, number of rows, number and position of thumb keys, case style, rotary encoders, etc).
https://imgur.com/a/VfOyAjP https://imgur.com/a/VfOyAjP
https://github.com/possibilities/unkeyboard https://github.com/possibilities/unkeyboard
Note I chose a somewhat non-idiomatic approach (in terms of cadquery) writing this and I'm new to python.
- _benj 5y agoI've been actually considering multiple CAD options to design a keyboard... pretty cool to see that you did so!
- rgoulter 5y agoErgogen is a project in a similar spirit; it takes a YAML as an input and uses this to generate files for plates, or (unrouted) Kicad PCBs. I was also interested in having parametric CAD related to custom keyboard PCBs. The approach I took was to copy the PCB module data to a format the CAD program could use. That way, the Kicad PCB files would still be the "source of truth" for the PCB design, but I could use OpenScad to come up with the plates for the case. https://github.com/rgoulter/keyboard-labs/ https://github.com/rgoulter/keyboard-labs/
- mikebannister 5y agoYeah Ergogen looks cool but I'm learning a lot writing my own code (about CAD, PCBs, and keyboards). I generate geometry based on parameters that are just plain old data structures and then I feed that into 1) Cadquery for the case and 2) A simple library (that will be replaced with Kicad scripting later) to output a PCB. So the whole thing is idempotent and deterministic depending on the inputs.
- mikebannister 5y agoBTW started out with OpenScad but, among other things, CadQuery allows me to do it all in one language and access to many useful libraries.
- mikebannister 5y agoTo be frank actually OpenScad is a steaming pile.