uilleann

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

commit
17a5d69
parent
7588e51
author
Neale Pickett
date
2026-04-05 10:11:28 -0600 MDT
Back to the original (better) blowpipe
1 files changed,  +9, -43
M blowpipe.scad
+9, -43
 1@@ -1,51 +1,17 @@
 2 include <BOSL2/std.scad>
 3-include <BOSL2/threading.scad>
 4 
 5 $fn = 180;
 6-$slop = 0.2;
 7 
 8-module top() {
 9-  id = 12;
10-  diff() tube(h=45, od=5/8*INCH, id=id, anchor=BOTTOM) {
11-    // Cross through the inside
12-    for (spin = [0, 90]) {
13-      attach(BOTTOM, BOTTOM, spin=spin, inside=true) tag("") cuboid([1.6, 13, 45]);
14-    }
15+od = 5/8 * INCH;
16 
17-    // Fat base
18-    attach(BOTTOM, BOTTOM, inside=true) tag("") tube(h=15, od=25, id=id+2, $fn=12);
19+difference() {
20+  union() {
21+    tube(h=90, od=od, id=9.5, anchor=BOTTOM);
22+    translate([0, 0, 38]) tube(h=25, od=22, id=12.5, rounding=0.5, anchor=BOTTOM);
23 
24-    // Screw threads, and nubbin in the middle for attaching the diaphragm
25-    attach(BOTTOM, BOTTOM, inside=true) {
26-      threaded_rod(d=20, height=9, pitch=2, internal=true) {
27-        // This is the height of the nubbin and the depth of the diaphragm chamber
28-        attach(TOP, BOTTOM) tube(h=4, od=20, id=2);
29-      }
30-    }
31-
32-    // Cutout for securing the tubing
33-    tag("remove") up(7) tube(h=15, id=5/8*INCH-1, wall=2, chamfer=1);
34-  }
35-}
36-
37-module bottom() {
38-  diff() cyl(h=45, d=5/8*INCH, anchor=BOTTOM) {
39-    hole_d = 4.2;
40-    tag("remove") cyl(h=50, d=hole_d);
41-    for (spin = [0 : 360/6: 360]) {
42-      tag("remove") zrot(spin) right(5) cyl(h=50, d=hole_d);
43-    }
44-
45-    // Screw threads
46-    attach(BOTTOM, BOTTOM, inside=true) {
47-      tag("") threaded_rod(d=20, height=10, pitch=2) {
48-        // Fat base
49-        attach(TOP, BOTTOM) cyl(h=5, d=25, $fn=12);
50-      }
51-    }
52+    // David for some reason opened one end. Set the first tube to id=12.5,
53+    // then uncomment this.
54+    //tube(h=7, od=od, id=9.5, chamfer2=1.5, anchor=BOTTOM);
55   }
56+  translate([0, od/2, 0]) rotate([-1, 0, 0]) cuboid([20, 1, 50]);
57 }
58-
59-top();
60-//up(10) zflip() bottom();
61-right(30) bottom();