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 |
} |