- commit
- 47e1bcb
- parent
- 21ce81b
- author
- Neale Pickett
- date
- 2026-03-22 09:00:50 -0600 MDT
Created a portable stand
2 files changed,
+38,
-0
M
Makefile
M
Makefile
+4,
-0
1@@ -9,6 +9,10 @@ wall-mount.3mf: wall-mount.scad
2 thumbrest.3mf: thumbrest.scad
3 openscad -o $@ $<
4
5+stand: stand-0.3mf stand-1.3mf
6+stand-%.3mf: stand.scad
7+ openscad -D part=$* -o $@ $<
8+
9 %.3mf: whistle.scad whistle.json tonehole.scad ruby.svg
10 openscad -o $@ -p whistle.json -P $(VARIANT) -D Section=$(SECTION) $<
11
+34,
-0
1@@ -0,0 +1,34 @@
2+include <BOSL2/std.scad>
3+
4+$fa = 1;
5+$fs = $preview ? 2 : 0.5;
6+$slop = 0.1;
7+
8+// Which part to make: you need both.
9+part = 0; // [0, 1]
10+
11+// Inside diameter of your instrument
12+id = 20; // [10:50]
13+
14+thickness=id/5;
15+
16+difference() {
17+ union() {
18+ up(10) conv_hull() cuboid([id, thickness, 90], rounding=1, anchor=BOTTOM) {
19+ attach(TOP) up(id/2) ycyl(h=thickness, d=id/2, rounding=1, anchor=BOTTOM);
20+ }
21+ up(25) difference() {
22+ yrot(45) cuboid([50, thickness, 50], rounding=1);
23+ cuboid(100, anchor=TOP);
24+ up(15) cuboid(100, anchor=BOTTOM);
25+ }
26+ intersection() {
27+ up(30) xrot(90) tube(h=thickness, ir=400, wall=20, rounding=1, anchor=BACK);
28+ cuboid(275, anchor=BOTTOM);
29+ }
30+ }
31+ up(part?30:29) xrot(part?180:0) {
32+ cuboid([thickness+($slop*2), thickness+($slop*2), 100], anchor=BOTTOM);
33+ }
34+}
35+