rsheldiii / KeyV2

KeyV2: A Parametric Mechanical Keycap Library
GNU General Public License v3.0
1.45k stars 187 forks source link

alternative dual-material single extruder printing idea #179

Open TAImatem opened 1 year ago

TAImatem commented 1 year ago

How about the following way of printing dual-material keycap: essentially create something like flat "floating" keycap with protruding legend made of a transparent material and separately create an ordinary keycap, but use boolean difference with the first keycap, removing stem and creating cutout for the legend. Afterward glue the parts together and sand it down a bit for flush fit. Alternatively (in case of similar material, preferably PETG, but different color) you can use the annealing/remelting in salt trick instead of gluing (possibly sand down the two parts together to flush fit prior to remelting), though you might have to experiment with temperature and duration to find at what point they will melt together, but the two colors won't noticeably blend. Though in case of the latter you will probably get a very nice surface texture from the grinded down salt used as a "casting" material, and keycap itself will be much sturdier Probably would have to make top a bit thicker than normal to maintain sturdiness, and would definitely require some way to create tolerance margins between the two parts. I would have tried to make an example/ try it myself, but I can't seem to find how to add a tolerance margin when performing boolean difference operation

TAImatem commented 1 year ago

after digging a bit more I found that I can just add offset prior to extrude in keytext module to at least get the margins on legends

TAImatem commented 1 year ago

Another, easier, alternative (as long as you're fine with pudding keycaps) would be to use "multimaterial_key_top.scad" as a base, and use union of cube and legends instead of using just the cube for the top part, then either print the legends' symbols separately and glue them in or just fill the holes with epoxy. For a proper result modify "legends.scad" to add another parameter to "legends" that would move the legends down by set amount before performing "top_of_key" transform. example: example

PS Keep in mind that the separately printed symbols need to be a bit thinner, other wise you won't be able to insert them