Skip to content

Instantly share code, notes, and snippets.

@jepler
Created March 11, 2025 15:18
Show Gist options
  • Save jepler/c513a6d3489f55a426cbb16216cc809d to your computer and use it in GitHub Desktop.
Save jepler/c513a6d3489f55a426cbb16216cc809d to your computer and use it in GitHub Desktop.
OW = 249;
OH = OW;
pin_dx = 41;
pin_dy = 55;
screw_dy = 45;
screw_dx = 56;
aperture = 128 - 24;
overlap = 11;
gap=.4;
$fn = 16;
module quad(dx, dy) {
translate([+dx, +dy]) children();
translate([-dx, +dy]) children();
translate([-dx, -dy]) children();
translate([+dx, -dy]) children();
}
module holes() {
color("red") quad(screw_dx, screw_dy) circle(d=3.2);
color("blue") quad(pin_dx, pin_dy) circle(d=3.5);
square(aperture, center=true);
}
module body() {
linear_extrude(height=3, center=true, convexity=12)
difference() {
square([OW, OH], center=true);
quad(64, 64) holes();
};
}
module cutter() {
rotate([90,0,0])
linear_extrude(height=OW+4, center=true)
polygon([
[-overlap, -6],
[OW/2+1, -6],
[OW/2+1, +6],
[+overlap+gap, +6],
[+overlap+gap, +0],
[-overlap, +0],
]);
}
module final() {
intersection () {
body();
color("orange") cutter();
}
}
final();
%rotate([0,180,0]) render() final();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment