Skip to content

Instantly share code, notes, and snippets.

@timmo001
Created November 27, 2025 16:08
Show Gist options
  • Select an option

  • Save timmo001/bf831a57b441c036bef390cfc226dc51 to your computer and use it in GitHub Desktop.

Select an option

Save timmo001/bf831a57b441c036bef390cfc226dc51 to your computer and use it in GitHub Desktop.
OpenSCAD file to use in makerworld's makerlab parametric model maker
/* [Colors] */
Base_Color = "#FFFFFF"; // color
SVG_Color = "#A9A9A9"; // color
/* [SVG] */
SVG_File = "default.svg"; // svg file
/* [Keys] */
// DSA=7mm; XDA=9mm
Keycap_Height = 7.5;
// First key
{
difference() {
color(Base_Color)
union() {
// Keycap
difference() {
// keycap positive
linear_extrude(height = Keycap_Height, center = false, scale = 1.286)
// bottom shape
difference() {
square(14, center = true);
}
// keycap negative
translate([0, 0, 0.5]) {
color(Base_Color)
linear_extrude(height = Keycap_Height, center = false, scale = 1.286)
// bottom shape
difference() {
square(13, center = true);
}
}
}
// mecanism
linear_extrude(height = Keycap_Height - 1, center = false)
difference() {
circle(d = 5.5, $fn = 50);
square([1.25, 4.25], center = true);
square([4.25, 1.25], center = true);
}
}
// subtracted text
translate([0, 0, -0.2])
color(Base_Color)
linear_extrude(0.5)
mirror([1, 0, 0])
import(file = SVG_File, center = true, dpi = 52);
}
// Added text
translate([0, 0, 0.001])
color(SVG_Color)
linear_extrude(0.3)
mirror([1, 0, 0])
import(file = SVG_File, center = true, dpi = 52);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment