uilleann

3d printable Uilleann bagpipes
git clone https://git.woozle.org/neale/uilleann.git

uilleann / daye / chanter
Neale Pickett  ·  2025-02-01

reed.scad

 1include <../common.scad>
 2
 3// Evertjan 't Hart's guide was super helpful:
 4// https://www.hartdd.com/reedmaking/reed1.html
 5//
 6// Using those dimensions (base thickness = 2, cane_d = 24),
 7// the width comes out to 13.2mm,
 8// which is what the page says it should be.
 9
10length = 50;
11thickness = 0.55;
12cane_d = 24;
13base_thickness = 2;
14
15scrape_angle = atan((base_thickness-thickness)/length)*2.6;
16
17difference() {
18  translate([0, 0, -cane_d/2+base_thickness]) {
19    difference() {
20      // Start with a solid piece of cane.
21      rotate([-90, 0, 0]) cylinder(d=cane_d, h=length);
22
23      // Chisel out reed
24      translate([-cane_d/2, -length, -cane_d/2-base_thickness]) cube([cane_d, length*3, cane_d]);
25    }
26  }
27
28  // Cut the tails
29  // I totally guessed at all of these
30  #translate([0, 10, 0]) rotate([0, 0, -30]) cube(20);
31  
32
33  // Sand inside to 1.5mm thickness
34  sander_d = 82;
35  translate([0, 0, base_thickness - 1.5 - sander_d/2]) rotate([-90, 0, 0]) cylinder(d=sander_d, h=length);
36
37  // Scrape reed
38  translate([0, length, d/2-base_thickness+thickness]) rotate([-scrape_angle, 0, 0]) translate([-d/2, -length, 0]) cube([d, length, d]);
39
40  // Reed chopper
41  translate([0, length, 0]) {
42    translate([0, -d/2, 0]) {
43      difference() {
44        translate([-d/2, 0, 0]) cube([d, d/2, d]);
45        cylinder(d=d, h=d);
46      }
47    }
48  }
49}