Neale Pickett
·
2025-11-28
reed.scad
1include <../common.scad>
2
3$fn = 180;
4
5// Evertjan 't Hart's guide was super helpful:
6// https://www.hartdd.com/reedmaking/reed1.html
7//
8// Using those dimensions (base thickness = 2, cane_d = 24),
9// the width comes out to 13.2mm,
10// which is what the page says it should be.
11
12printing = true; // If false, sand the inside to be circular. FDM 3d printers can't do this, so you have to sand it afterwards.
13length = 50;
14thickness = 0.55;
15cane_d = 24;
16base_thickness = 2;
17
18difference() {
19 translate([0, 0, -cane_d/2+base_thickness]) {
20 difference() {
21 // Start with a solid piece of cane.
22 rotate([-90, 0, 0]) cylinder(d=cane_d, h=length);
23
24 // Chisel out reed
25 translate([-cane_d/2, -length, -cane_d/2-base_thickness]) cube([cane_d, length*3, cane_d]);
26 }
27 }
28
29 // Cut the tails
30 // I totally guessed at all of these
31 for (m=[0:1]) {
32 mirror([m, 0, 0]) {
33 a=60; // I just eyeballed this
34 translate([a+1, 0, -1]) cylinder(r=a, h=10);
35 }
36 }
37
38
39 // Sand inside to 1.5mm thickness
40 if (!printing) {
41 sander_d = 82;
42 translate([0, -0.5, base_thickness - 1.5 - sander_d/2]) rotate([-90, 0, 0]) cylinder(d=sander_d, h=length+1);
43 }
44
45 // Scrape reed
46 scrape_angle = 3.5;
47 for (m=[-5,0,5]) {
48 rotate([0, m, 0]) translate([-cane_d/2, 30, base_thickness]) rotate([-scrape_angle, 0, 0]) cube([cane_d, length, cane_d]);
49 }
50}