]> www.fi.muni.cz Git - things.git/blob - radiacni-stit.scad
switch holder.scad
[things.git] / radiacni-stit.scad
1 include <yenyalib.scad>
2
3 $fn = 128;
4 infty = 500;
5 inner_d = 64;
6 outer_d = 75;
7 shield_r1 = inner_d/2 - 3;
8 cone_h = 12;
9 wall = 1.5;
10 base_wall = 1.2;
11 cone_angle = atan((outer_d-inner_d)/(2*cone_h));
12 shield_h = 70;
13 shield_twist = -45;
14 blade_wall = 1;
15 blades = 12;
16 blade_w = 5.5*inner_d/blades;
17 blade1_w = 4;
18 blade_rot = 9;
19 shield_r2 = 1.3*shield_r1;
20
21 beam_w = 10;
22 beam_h = 11;
23 beam_l = 70;
24 beam_end_l = 20;
25 beam_end_h = 0.45*beam_h;
26
27 for (angle = [0:30:360]) Rz(angle) {
28         // main blades
29         linear_extrude(height = shield_h, twist = shield_twist,
30                 center=false, scale=shield_r2/shield_r1) {
31                         Ty(shield_r1) Rz(-blade_rot) {
32                                 Ty(-shield_r1)
33                                 intersection() {
34                                         difference() {
35                                                 circle(r = shield_r1 + blade_wall/2);
36                                                 circle(r = shield_r1 - blade_wall/2);
37                                         }
38                                         Tx(-blade_w/2)
39                                                 square([blade_w, shield_r1+blade_wall]);
40                                 }
41                                 // square([blade_w, blade_wall], center=true);
42                                 // Sx(blade_w/blade_wall) circle(r=blade_wall/2);
43                                 // Tx(-blade_w/3) Ty(blade_wall/2) Sx(0.5) circle(r=blade_wall/2);
44                         }
45                 }
46         // counter-direction struts
47         linear_extrude(height = shield_h, twist = -shield_twist,
48                 center=false, scale=shield_r2/shield_r1)
49                 Ty(shield_r1)
50                         Sx(blade1_w/blade_wall) circle(r=blade_wall/2);
51 }
52
53 // top cone
54 difference() {
55         union() {
56                 cylinder(r1 = inner_d/2, r2 = outer_d/2, h = cone_h);
57                 // beam
58                 Tx(inner_d/2) Tz(beam_w/3) Ry(90) Sx(3*beam_h/(2*beam_w))
59                          cylinder(r = beam_w/2, h = beam_l);
60                 // beam_end
61                 
62         }
63         Tz(-eps) cylinder(r1 = inner_d/2 - wall/cos(cone_angle),
64                 r2 = outer_d/2 - wall/cos(cone_angle),
65                 h = cone_h + 2*eps);
66         // z negative
67         translate([-infty/2, -infty/2, -infty]) cube(infty);
68         // beam end
69         translate([inner_d/2+beam_l-beam_end_l, -beam_w/2, beam_end_h])
70                 cube([beam_end_l+eps, beam_w, beam_h]);
71         // beam screw hole
72         Tx(inner_d/2+beam_l-beam_w/2) Tz(-eps) cylinder(r=2.5, h = beam_end_h + 2*eps);
73         
74 }
75
76 // base plate
77 cylinder(r = inner_d/2, h = base_wall);
78
79 clip_d = 50+0.25;
80 // clips
81 clip_r1 = 1.5;
82 clip_r2 = 8*clip_r1;
83 clip_end_r = 5;
84 clip_h = 3.25;
85 Tz(base_wall)
86 for (angle = [0:120:360]) Rz(angle) difference() {
87         hull() {
88                 Tx(clip_d/2) Sy(clip_r2/clip_r1)
89                         cylinder(r = clip_r1, h = clip_h + wall);
90                 Tx(clip_d/2) Ty(clip_r2-clip_end_r) difference() {
91                         cylinder(r = clip_end_r, h = clip_h + wall);
92                         translate([0, -2*clip_end_r, -eps])
93                                 cube([4*clip_end_r, 4*clip_end_r, clip_h + wall +2*eps]);
94                 } 
95         }
96         Tz(-eps) difference() {
97                 cylinder(r = clip_d/2, h = clip_h+eps);
98                 Ty(clip_r2-clip_end_r) Tz(-eps)
99                         cube([clip_d, clip_d, clip_h+3*eps]);
100         }
101 }