uilleann

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

uilleann / daye / drones / bass
Neale Pickett  ·  2025-01-02

assembly.scad

 1include <../../common.scad>
 2
 3plunge = 106;                   // How far in can the butt go?
 4height = 308;                   // as measured by my calipers
 5
 6tubeh = 120;
 7tubed = 17.5;
 8
 9bendod = 12.7;
10bendh = 102;
11bendr = 16;
12bendplunge = 18;
13
14endh = height - plunge;
15endid = bendod + clearance*2;
16endod = 16.5;
17
18module drone_bass_tuner_barrel() {
19  brass_tube(h=tubeh, id=tubed);
20}
21
22module drone_bass_tuner_end() {
23  stopod = tubed - (clearance * 2);
24  stoph = height / 30;
25  stop_elevation = endh - (height - tubeh);
26
27  union() {
28    derlin_tube(h=endh, id=endid, od=endod);
29    derlin_tube(h=stop_elevation, id=endid, od=tubed - clearance*2);
30    translate([0, 0, stop_elevation]) derlin_stop(h=stoph, id=endod, od=tubed + brass_thickness*2);
31  }
32}
33
34module drone_bass_bend() {
35  union() {
36    translate([bendr, 0, 0]) brass_bend(od=bendod, bend_r=bendr);
37    translate([bendr*2, 0, -bendh]) brass_tube(h=bendh, id=bendod-brass_thickness*2);
38    translate([0, 0, -bendplunge]) brass_tube(h=bendplunge, id=bendod-brass_thickness*2);
39  }
40}
41
42module drone_bass_resonator() {
43  mortise_id = bendod + clearance*2;
44
45  color("ivory") {
46    difference() {
47      union() {
48        cylinder(h=18, d=33.5);
49        cylinder(h=19.2, d=15.6);
50      }
51      translate([0, 0, 9]) cylinder(h=18, d=mortise_id);
52      translate([0, 0, 9]) rotate([0, 90, 0]) cylinder(h=30, d=mortise_id);
53      translate([0, 0, 9]) sphere(d=mortise_id);
54    }
55  }
56}
57
58module drone_bass_tuner() {
59  union() {
60    drone_bass_tuner_barrel();
61    translate([0, 0, plunge]) drone_bass_tuner_end();
62    translate([0, 0, height]) drone_bass_bend();
63    translate([bendr*2 - 9, 0, height-bendh-7])
64      rotate([0, -90, 180]) drone_bass_resonator();
65  }
66}
67
68module drone_bass() {
69  drone_bass_tuner();
70}
71
72drone_bass();
73