- commit
- 1bf3902
- parent
- de97cac
- author
- Neale Pickett
- date
- 2025-10-22 16:38:20 -0600 MDT
ready to print first prototype
5 files changed,
+14,
-59
A
Makefile
+8,
-0
1@@ -0,0 +1,8 @@
2+all: head.3mf body.3mf
3+
4+%.3mf: %.scad piccolo.scad common.scad
5+ openscad -o $@ $<
6+
7+.PHONY: clean
8+clean:
9+ rm -f *.3mf
+2,
-49
1@@ -1,50 +1,3 @@
2-include <common.scad>
3+use <piccolo.scad>
4
5-height = 189.68;
6-id_bot = 10.5;
7-id_top = 12.6;
8-
9-toneholes = [
10- [40, 7.0],
11- [66, 8.5],
12- [81, 7.0],
13- [106.5, 7.0],
14- [125.0, 7.5],
15- [144.4, 7.0],
16-];
17-
18-difference() {
19- cylinder(h=height, d1=17.0, d2=21.6);
20- translate([0, 0, -1]) cylinder(h=height+2, d1=id_bot, d2=id_top);
21- for (hole = toneholes) {
22- translate([0, 0, hole[0]]) tonehole(d=hole[1]);
23- }
24-}
25-
26-od_top = 20.4;
27-translate([50, 0, 0])
28-union() {
29- difference() {
30- cylinder(h=83, d=od_top);
31- // Inner bore
32- translate([0, 0, 17]) cylinder(h=200, d=id_top);
33-
34- // Resonance chamber
35- translate([0, 0, -1]) cylinder(h=18+1, d=6.5);
36- translate([0, 0, -0.1]) cylinder(h=10+.2, d1=15.5, d2=6.5);
37- translate([0, 0, 20]) rotate([45, 0, -30]) cylinder(d=6, h=200);
38-
39- // Embouchure
40- translate([0, 0, 40]) {
41- scale([1, 1, 1.2])
42- rotate([90, 0, 0])
43- cylinder(d1=id_top, d2=7, h=id_top);
44- }
45- }
46- intersection() {
47- cylinder(h=83, d=od_top);
48- translate([-id_top/2, -100, 18]) rotate([0, -45, 0]) cube([200, 200, 1]);
49- }
50- translate([0, 0, 8.5]) donut(h=3, d=od_top);
51- translate([0, 0, 83-3/2]) donut(h=3, d=od_top);
52-}
53+body();
+1,
-10
1@@ -1,5 +1,5 @@
2 // Make circles circular in final renders.
3-$fn = $preview ? 0 : 180;
4+$fn = $preview ? 30 : 180;
5
6 // clearance in a permanent tenon/mortise joint
7 clearance = 0.2;
8@@ -27,15 +27,6 @@ module tube(h=10, id=5, od=10) {
9 }
10 }
11
12-// donut creates a torus
13-module donut(h=1, d=10) {
14- rotate_extrude(angle=360) {
15- translate([d/2, 0]) {
16- circle(d=h, $fn=120);
17- }
18- }
19-}
20-
21 // default height of rings
22 rings_height = 1.8;
23
A
head.3mf
+0,
-0
+3,
-0
1@@ -0,0 +1,3 @@
2+use <piccolo.scad>
3+
4+head();