- commit
- 73c725e
- parent
- 55c7d6d
- author
- Neale Pickett
- date
- 2025-12-13 19:37:16 -0700 MST
some little tweaks
4 files changed,
+31,
-5
M
Makefile
+3,
-0
1@@ -3,6 +3,9 @@ all: lowc lowd lowe lowf lowg
2 clean:
3 rm -f *.3mf
4
5+wall-mount.3mf: wall-mount.scad
6+ openscad -o $@ $<
7+
8 %.3mf: whistle.scad whistle.json tonehole.scad ruby.svg
9 openscad -o $@ -p whistle.json -P $(VARIANT) -D Section=$(SECTION) $<
10
+3,
-0
1@@ -4,6 +4,9 @@ $fn = $preview ? 0 : 180;
2 // clearance in a permanent tenon/mortise joint
3 clearance = 0.2;
4
5+// www.tauday.com
6+TAU = PI * 2;
7+
8 module brass() {
9 color("gold") children();
10 }
+2,
-2
1@@ -2,7 +2,7 @@
2 "parameterSets": {
3 "low g": {
4 "Text": "g",
5- "Height": "381",
6+ "Height": "331",
7 "InnerDiameter": "18.1",
8 "Cuts": "[137, 230]",
9 "TenonDepth": "15",
10@@ -41,7 +41,7 @@
11 "Text": "d",
12 "Height": "469",
13 "InnerDiameter": "20.9",
14- "Cuts": "[190, 240]",
15+ "Cuts": "[190, 340]",
16 "Hole1": "[293, 7.45]",
17 "Hole2": "[254, 9.50]",
18 "Hole3": "[221, 7.45]",
+23,
-3
1@@ -39,12 +39,32 @@ AxianovHoleAngle = 45;
2 // Depth of the tenon joint. Shallower will be less stable.
3 TenonDepth = 20;
4
5+// Make the inner bore square, outer body hexagonal?
6+LowPoly = false;
7+
8 /* [ Hidden ] */
9 sortedCuts = [min(Cuts[0], Cuts[1]), max(Cuts[0], Cuts[1])];
10+id = LowPoly ? (sqrt(TAU) * InnerDiameter/2) : InnerDiameter;
11+od = LowPoly? (sqrt(TAU) * OuterDiameter/2) : OuterDiameter;
12
13 module whistle() {
14 difference() {
15- tube(h=Height, id=InnerDiameter, od=OuterDiameter);
16+ if (LowPoly) {
17+ union() {
18+ cylinder(h=Height-70, d=od, $fn=6);
19+ translate([0, 0, Height-70]) cylinder(h=70, d=OuterDiameter);
20+ }
21+ } else {
22+ cylinder(h=Height, d=od);
23+ }
24+
25+ translate([0, 0, -1]) {
26+ if (LowPoly) {
27+ cylinder(h=Height+2, d=id, $fn=4);
28+ } else {
29+ cylinder(h=Height+2, d=InnerDiameter);
30+ }
31+ }
32
33 // O ring grooves
34 for (z = [Height-7, Height-20]) {
35@@ -54,8 +74,8 @@ module whistle() {
36 // Decoration
37 for (i = [0, sortedCuts[0], sortedCuts[1]]) {
38 translate([0, 0, i + 2]) {
39- translate([0, 0, 0]) tube(h=1, id=OuterDiameter-0.5, od=OuterDiameter+0.5);
40- translate([0, 0, 4]) tube(h=1, id=OuterDiameter-0.5, od=OuterDiameter+0.5);
41+ translate([0, 0, 0]) tube(h=1, id=OuterDiameter-0.5, od=OuterDiameter*2);
42+ translate([0, 0, 4]) tube(h=1, id=OuterDiameter-0.5, od=OuterDiameter*2);
43 }
44 }
45