]> www.fi.muni.cz Git - things.git/blob - tube-firewall.scad
carbon tube rc motor firewall
[things.git] / tube-firewall.scad
1 eps = 0.01;
2 infty = 100;
3
4
5 base_d = 26;
6 screw_d1 = 19;
7 screw_d2 = 16;
8 screw_hole = 3.5;
9 base_wall = 1.5;
10
11 motor_angle = 4;
12
13 tube_d = 8+0.2;
14 tube_h = 20;
15 tube_wall = 1;
16
17 module body() {
18         // base
19         cylinder(r = base_d/2, h = base_wall);
20         // tube
21         intersection() {
22                 rotate([0, motor_angle, 0])
23                         cylinder(r = tube_d/2 + tube_wall, h = tube_h);
24                 translate([-infty/2, -infty/2, 0])
25                         cube(infty);
26         }
27         // tube supports
28         for (angle = [45, 135, 225, 315])
29         rotate([0, 0, angle]) hull() {
30                 translate([-eps/2, -tube_d/2, -eps/2])
31                         cube([eps, tube_d, eps]);
32                 translate([base_d/2, -eps/2, -eps/2])
33                         cube(eps);
34                 translate([tube_d/2, -eps/2, 0.9*tube_h])
35                         cube(eps);
36         }
37 }
38
39 module screw_hole() {
40         translate([0, 0, -eps])
41                 cylinder(r = screw_hole/2, h = base_wall + 2*eps, $fn = 6);
42         translate([0, 0, base_wall/2])
43                 cylinder(r1 = screw_hole/2,
44                         r2 = screw_hole/2 + base_wall/2,
45                         h = base_wall/2+eps, $fn = 6);
46 }
47
48 difference() {
49         body();
50         // screw holes
51         for (x = [-1, 1]) translate([x*screw_d1/2, 0, 0])
52                 screw_hole();
53         for (y = [-1, 1]) translate([0, y*screw_d2/2, 0])
54                 screw_hole();
55         // tube hole
56         rotate([0, motor_angle, 0])
57         translate([0, 0, -infty/2])
58                 cylinder(r = tube_d/2, h = infty);
59 }
60
61