Skip to content

Instantly share code, notes, and snippets.

@b2ox
Created October 20, 2022 20:44
Show Gist options
  • Save b2ox/b0c80d3a7b9771f8535b1a37166d3910 to your computer and use it in GitHub Desktop.
Save b2ox/b0c80d3a7b9771f8535b1a37166d3910 to your computer and use it in GitHub Desktop.
mini.keeb.25
UnitOuter = 16;
UnitInner = 14;
module holeM3(x, y, h) {
translate([x, y, 0]) cylinder(h = h, d = 3.2, center = true, $fn = 20);
}
module KeyHole(x, y, w, h) {
translate([x, y, 0])
cube([w, w, h], center = true);
}
module SocketHole(x, y, h) {
u = 1.27;
translate([x, y, 0]) union() {
cylinder(h = h, d = 4, center = true, $fn = 40);
translate([-2 * u, 4 * u, 0]) cylinder(h = h, d = 3, center = true, $fn = 40);
translate([3 * u, 2 * u, 0]) cylinder(h = h, d = 3, center = true, $fn = 40);
}
}
dy = [0, 1/4, 1/2, 1/4, 0];
SwitchPos = concat(
[for (i = [0:4]) [-14 - UnitOuter * (i + 0.5), UnitOuter * (dy[i] + 1)]],
[for (i = [0:4]) [-14 - UnitOuter * (i + 0.5), UnitOuter * dy[i]]],
[for (i = [0:4]) [14 + UnitOuter * (i + 0.5), UnitOuter * (dy[i] + 1)]],
[for (i = [0:4]) [14 + UnitOuter * (i + 0.5), UnitOuter * dy[i]]],
[for (i = [-2:2]) [i * UnitOuter, (abs(i) - 7) * UnitOuter / 4]]
);
module BasePlate(h) {
difference() {
cube([200, 80, h], center = true);
holeM3(95, 35, h * 2);
holeM3(-95, 35, h * 2);
holeM3(95, -35, h * 2);
holeM3(-95, -35, h * 2);
}
}
module KeyPlate() {
difference() {
BasePlate(5);
for (p = SwitchPos) {
KeyHole(p.x, p.y, UnitInner, 6);
}
translate([0, 0, 1.5]) cube([186, 74, 5], center = true);
translate([0, 16, -1]) cube([24, 60, 10], center = true);
}
}
module SocketPlate() {
difference() {
BasePlate(2.4);
translate([0, 0, 1.2]) cube([186, 74, 2.4], center = true);
for (p = SwitchPos) {
SocketHole(p.x, p.y, 6);
}
translate([0, 16, -1]) cube([24, 60, 10], center = true);
}
}
KeyPlate();
translate([0, 110, 0]) SocketPlate();
translate([0, -110, 0]) difference() {
BasePlate(3.6);
translate([0, 0, 1.5]) cube([186, 74, 5], center = true);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment