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