Neale Pickett
·
2025-05-03
tonehole.scad
1module tonehole(d=10, h=50) {
2 r = d/2;
3 area = PI*r*r;
4
5 rounding_r = 2;
6 rounding_area = (1 - PI/4) * (rounding_r^2); // area lost to rounding
7 goal_area = area + rounding_area;
8
9 w = max(6.25, d-4); // Marat uses 6.25mm on every hole, so we will too
10 l = goal_area / w;
11
12 translate([-w/2, -l/2, 0]) {
13 union() {
14 translate([rounding_r, rounding_r, 0]) cylinder(r=rounding_r, h=h);
15 translate([rounding_r, 0, 0]) cube([w-rounding_r, l, h]);
16 translate([0, rounding_r, 0]) cube([w, l-rounding_r, h]);
17 }
18 }
19}