]> www.fi.muni.cz Git - things.git/blob - dual-horn.scad
switch holder.scad
[things.git] / dual-horn.scad
1 eps = 0.01;
2 infty = 200;
3
4 wall = 1;
5
6 horn_w = 10;
7 horn_l = 35;
8 tip_hole = 2;
9 tip_d = tip_hole+2*wall;
10 tube_d = 2.0 + 0.7;
11 tube_off = 1;
12 tube_h = 1.5;
13
14 side_w = 1.2;
15 foam_w = 3 + side_w;
16 side_l = horn_l - 7;
17 side_h = 10;
18
19
20 module body() {
21         hull() {
22                 for (x = [-1, 1]) scale([x, 1, 1])
23                 translate([horn_w, 0, 0])
24                         cylinder(r = tip_d/2, h = wall);
25                 translate([-foam_w/2, -horn_l+tip_d/2, 0])
26                         cube([foam_w, horn_l, wall]);
27         }
28         // side
29         translate([-foam_w/2, -horn_l+tip_d/2, 0])
30                 cube([side_w, side_l, side_h]);
31         // side_front
32         translate([-foam_w/2, -horn_l+tip_d/2+side_l-side_w, 0])
33                 cube([foam_w, side_w, side_h]);
34         // tube
35         translate([0, tube_off, 0])
36                 cylinder(r = tube_d/2 + wall, h = tube_h);
37 }
38
39 difference() {
40         body();
41         for (x = [-1, 1]) scale([x, 1, 1])
42                 translate([horn_w, 0, -eps])
43                         cylinder(r = tip_hole/2, h = wall+2*eps);
44         // tube hole
45         translate([0, tube_off, -eps])
46                 cylinder(r = tube_d/2, h = tube_h+2*eps, $fn = 6);
47 }
48