Skip to content

Instantly share code, notes, and snippets.

@alanbernstein
Created June 27, 2025 14:53
Show Gist options
  • Select an option

  • Save alanbernstein/c77b7f8f0dc06dc4357db40e7ff480f1 to your computer and use it in GitHub Desktop.

Select an option

Save alanbernstein/c77b7f8f0dc06dc4357db40e7ff480f1 to your computer and use it in GitHub Desktop.
```
$fn = 100;
// Plate size
plate_width = 76.2; // mm
plate_height = 76.2; // mm
plate_thickness = 5; // mm
text_depth = 1.5; // mm
notch_depth = 5;
text_size = 14;
// Create the main plate
module base() {
difference() {
cube([plate_width, plate_height, plate_thickness]);
// Recessed text: CoCo
translate([plate_width / 2, plate_height * 0.65, plate_thickness - text_depth])
linear_extrude(height=text_depth+1)
text("CoCo", size=text_size, halign="center", valign="center", font="Showcard Gothic");
// Recessed text: Cinema
translate([plate_width / 2, plate_height * 0.35, plate_thickness - text_depth])
linear_extrude(height=text_depth+1)
text("Cinema", size=text_size, halign="center", valign="center", font="Showcard Gothic");
}
}
module notch(h) {
linear_extrude(height=h)
polygon(
[
[0, 0],
[notch_depth, notch_depth * 0.5],
[notch_depth, notch_depth * 1.5],
[0, notch_depth * 2],
]
);
}
module template() {
union() {
difference() {
base();
// negative dovetail
translate([plate_width - notch_depth + .01, (plate_height - 10) / 2, -1])
notch(plate_thickness + 2);
}
// positie dovetail
translate([-notch_depth, (plate_height - 10) / 2, 0])
notch(plate_thickness);
}
}
template();
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment