After I got hooked by the allure of 3D CAD, I decided to practice my skills by making a 3D modeled keyboard cap. I started working on something using OpenSCAD, but it proved difficult to get the sort of organic curves I wanted. I wanted to get some experience using a GUI based-program, rather than just scripting. Instead, I decided to try a program called Fusion360. This program is a free variant of Autodesk for personal and low-impact use. It sadly does not have a Linux build, but I have had luck with it on my Windows box (it has the more powerful gaming GPU’s on it anyway).
I based my design on the classic caps you would get on retro units, like the Commodore. A modern variant is available from Signature Plastics (PMK) known as the SA profile. At the time I originally made this model (April 2015), there weren’t any of these models freely available. This should be similar to the SA keycap dimensions but not quite the same.
The Real World Versions of my 3D Modeled Keyboard Cap
I decided to have these 3D printed from a commercial vendor, rather than trying to print it on a home printer. I wanted to get some better detail.
The height is somewhere between Signature Plastic’s DSA and SA row 3 profiles. You can compare the shape and size in the picture below of my 3D modeled keyboard cap to a DSA (left, in black) and an SA (right, red) profile cap:
I’m glad I did this test run. The stem shrank in a way I didn’t expect, and the cruciform is a bit too big. It slips on and off the stems too easily. This is an easily fixable problem.
I made a new version with a tighter cruciform. I added some text on this one. Nothing like a little American Psycho quote to brighten up a keyboard. I ended up giving this to a colleague as a gift.
If you would like to use this file, feel free to do so. Check it out:
This is a 3D render, play around with it!
[canvasio3D width=”524″ height=”400″ border=”1″ borderCol=”#F6F6F6″ dropShadow=”0″ backCol=”#000000″ backImg=”…” mouse=”on” rollMode=”off” rollSpeedH=”0″ rollSpeedV=”0″ objPath=”keycap1” objScale=”1.5″ objColor=”#ACACAC” lightSet=”7″ reflection=”on” refVal=”5″ objShadow=”off” floor=”off” floorHeight=”42″ lightRotate=”off” Help=”off”] [/canvasio3D]