Neale Pickett
·
2025-11-27
tenon.scad
1use <BOSL/math.scad>
2
3module tenon(top=false, h=100, d=5, depth=20, thickness=2, clearance=0.2) {
4 module cut() {
5 id = d-thickness+clearance;
6 translate([0, 0, h+depth]) cylinder(h=id/2, d1=id, d2=0);
7 cylinder(h=h+depth, d=id);
8 cylinder(h=h, d=id+40);
9 }
10
11 if (top) {
12 difference() {
13 children();
14 cut();
15 }
16 } else {
17 intersection() {
18 children();
19 cut();
20 }
21 }
22}
23
24chanter();