Rev 4624 Rev 4628
1 $fn=100; 1 $fn=100;
2 //Univerzální model držáku ventilátoru 2 //Univerzální model držáku ventilátoru
3 //Parametry ventilátoru 3 //Parametry ventilátoru
4 roztec_mezi_srouby=20; 4 roztec_mezi_srouby=24.1;
5 vzdalenost_stredu_sroubu_od_okraje=4; 5 vzdalenost_stredu_sroubu_od_okraje=3.1;
6   6  
7 //Parametry úchytu ventilátoru 7 //Parametry úchytu ventilátoru
8 sirka_uchytu=10; 8 sirka_uchytu=10;
9   9  
10 //Parametr šroubu uchytného u ventilátoru 10 //Parametr šroubu uchytného u ventilátoru
11 vyska_hlavy_sroubu=5; 11 vyska_hlavy_sroubu=5;
12 prumer_sroubu=3.2; 12 prumer_sroubu=3.2;
13   13  
14 //Roztec der v ALbase 14 //Roztec der v ALbase
15 roztec=10.16; 15 roztec=10.16;
16 prumer_otvoru=3.2; 16 prumer_otvoru=3.2;
17 sila_materialu=1.8; 17 sila_materialu=1.8;
18 vzdalenost_od_okraje=5; 18 vzdalenost_od_okraje=5;
19   19  
20 pocet_der_x=2; 20 pocet_der_x=2;
21 pocet_der_y=4; 21 pocet_der_y=5;
22   22  
23 difference(){ 23 difference(){
24 24
25 union(){ 25 union(){
26 //spodní díl 26 //spodní díl
27 cube([roztec*(pocet_der_x-1)+2*vzdalenost_od_okraje,roztec*(pocet_der_y-1)+2*vzdalenost_od_okraje,sila_materialu],center=true); 27 cube([roztec*(pocet_der_x-1)+2*vzdalenost_od_okraje,roztec*(pocet_der_y-1)+2*vzdalenost_od_okraje,sila_materialu],center=true);
28   28  
29 //uchyt na ventilátor 29 //uchyt na ventilátor
30 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje, roztec_mezi_srouby/2-sirka_uchytu/2, sila_materialu/2]) 30 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje, roztec_mezi_srouby/2-sirka_uchytu/2, sila_materialu/2])
31 rotate([0, -90, 0]) 31 rotate([0, -90, 0])
32 cube([vzdalenost_stredu_sroubu_od_okraje+vyska_hlavy_sroubu+prumer_sroubu,sirka_uchytu,sila_materialu],center=false); 32 cube([vzdalenost_stredu_sroubu_od_okraje+vyska_hlavy_sroubu+prumer_sroubu,sirka_uchytu,sila_materialu],center=false);
33   33  
34 //uchyt 2 34 //uchyt 2
35 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje, -roztec_mezi_srouby/2-sirka_uchytu/2, sila_materialu/2]) 35 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje, -roztec_mezi_srouby/2-sirka_uchytu/2, sila_materialu/2])
36 rotate([0, -90, 0]) 36 rotate([0, -90, 0])
37 cube([vzdalenost_stredu_sroubu_od_okraje+vyska_hlavy_sroubu+prumer_sroubu,sirka_uchytu,sila_materialu],center=false); 37 cube([vzdalenost_stredu_sroubu_od_okraje+vyska_hlavy_sroubu+prumer_sroubu,sirka_uchytu,sila_materialu],center=false);
38   38  
39   39  
40 //podpera 1 40 //podpera 1
41 translate([0, roztec_mezi_srouby/2-sila_materialu/2, sila_materialu/2]) 41 translate([0, roztec_mezi_srouby/2-sila_materialu/2, sila_materialu/2])
42 rotate([-90, -90, 0]) 42 rotate([-90, -90, 0])
43 linear_extrude (height = sila_materialu, convexity = 10) 43 linear_extrude (height = sila_materialu, convexity = 10)
44 polygon(points=[[0,0],[0, (pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[vyska_hlavy_sroubu,(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[0,0]]); 44 polygon(points=[[0,0],[0, (pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[vyska_hlavy_sroubu,(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[0,0]]);
45   45  
46 //podpera 2 46 //podpera 2
47 translate([0, -roztec_mezi_srouby/2-sila_materialu/2, sila_materialu/2]) 47 translate([0, -roztec_mezi_srouby/2-sila_materialu/2, sila_materialu/2])
48 rotate([-90, -90, 0]) 48 rotate([-90, -90, 0])
49 linear_extrude (height = sila_materialu, convexity = 10) 49 linear_extrude (height = sila_materialu, convexity = 10)
50 polygon(points=[[0,0],[0, (pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[vyska_hlavy_sroubu,(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[0,0]]); 50 polygon(points=[[0,0],[0, (pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[vyska_hlavy_sroubu,(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje],[0,0]]);
51   51  
52 52
53 } 53 }
54   54  
55 //otvory na šrouby v držáku 55 //otvory na šrouby v držáku
56 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje-sila_materialu/2, roztec_mezi_srouby/2, sila_materialu/2+vyska_hlavy_sroubu+vzdalenost_stredu_sroubu_od_okraje]) 56 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje-sila_materialu/2, roztec_mezi_srouby/2, sila_materialu/2+vyska_hlavy_sroubu+vzdalenost_stredu_sroubu_od_okraje])
57 rotate([0, -90, 0]) 57 rotate([0, -90, 0])
58 cylinder(h=sila_materialu+0.2, r=prumer_sroubu/2, center=true); 58 cylinder(h=sila_materialu+0.2, r=prumer_sroubu/2, center=true);
59   59  
60 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje-sila_materialu/2, -roztec_mezi_srouby/2, sila_materialu/2+vyska_hlavy_sroubu+vzdalenost_stredu_sroubu_od_okraje]) 60 translate([(pocet_der_x-1)*roztec/2+vzdalenost_od_okraje-sila_materialu/2, -roztec_mezi_srouby/2, sila_materialu/2+vyska_hlavy_sroubu+vzdalenost_stredu_sroubu_od_okraje])
61 rotate([0, -90, 0]) 61 rotate([0, -90, 0])
62 cylinder(h=sila_materialu+0.2, r=prumer_sroubu/2, center=true); 62 cylinder(h=sila_materialu+0.2, r=prumer_sroubu/2, center=true);
63   63  
64 //otvory na šrouby ve spodní části 64 //otvory na šrouby ve spodní části
65 translate([(pocet_der_x-1)*roztec/2, (pocet_der_y-1)*roztec/2, 0]) 65 translate([(pocet_der_x-1)*roztec/2, (pocet_der_y-1)*roztec/2, 0])
66 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true); 66 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);
67 67
68 translate([-(pocet_der_x-1)*roztec/2, (pocet_der_y-1)*roztec/2, 0]) 68 translate([-(pocet_der_x-1)*roztec/2, (pocet_der_y-1)*roztec/2, 0])
69 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true); 69 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);
70 70
71 translate([(pocet_der_x-1)*roztec/2, -(pocet_der_y-1)*roztec/2, 0]) 71 translate([(pocet_der_x-1)*roztec/2, -(pocet_der_y-1)*roztec/2, 0])
72 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true); 72 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);
73 73
74 translate([-(pocet_der_x-1)*roztec/2, -(pocet_der_y-1)*roztec/2, 0]) 74 translate([-(pocet_der_x-1)*roztec/2, -(pocet_der_y-1)*roztec/2, 0])
75 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true); 75 cylinder(h=sila_materialu+0.2, r=prumer_otvoru/2, center=true);
76 } 76 }