uilleann

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

uilleann / daye / chanter
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}