Rev 4580 Rev 4590
1 //Funkce otvuru pro ruzne prvky umistene do celicek 1 //Funkce otvuru pro ruzne prvky umistene do celicek
2   2  
3 /*OBSAHUJE 3 /*OBSAHUJE
4 1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku 4 1A)
5 1B) - Pro modul RS232SINGLE01A 5 1B)
6 1C) - Pro modul USBI2C01A 6 1C) - Pro modul USBI2C01A
7 1D) - Pro konektor MIC338 7 1D) - Pro konektor MIC338
8 1E) - Pro modul UNIPOWER02A 8 1E) - Pro modul UNIPOWER02A
9 1F) - Pro modul I2CDIFF01A 9 1F) - Pro modul I2CDIFF01A
10 */ 10 */
11   11  
12   12  
13 //1A) - LCD 2x16 -  
14 //-------------------------------------------------------- -  
15 module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska) -  
16 { -  
17 //otvor na LCD -  
18 translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2]) -  
19 cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true); -  
20   -  
21 //diry na srouby pro LCD -  
22 -  
23 translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) -  
24 rotate(a=[90,0,0]) -  
25 cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); -  
26   -  
27 translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) -  
28 rotate(a=[90,0,0]) -  
29 cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); -  
30   -  
31 translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) -  
32 rotate(a=[90,0,0]) -  
33 cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); -  
34   -  
35 translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) -  
36 rotate(a=[90,0,0]) -  
37 cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true); -  
38 } -  
39 -  
40 module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska) -  
41 { -  
42 union() { -  
43 -  
44 translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) -  
45 rotate(a=[90,0,0]) -  
46 cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); -  
47   -  
48 translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)]) -  
49 rotate(a=[90,0,0]) -  
50 cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); -  
51 -  
52 translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) -  
53 rotate(a=[90,0,0]) -  
54 cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); -  
55 -  
56 translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)]) -  
57 rotate(a=[90,0,0]) -  
58 cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true); -  
59 -  
60 } -  
61 } -  
62   -  
63   -  
64 /*1B) - Pro modul RS232SINGLE01A -  
65 -------------------------------------------------------- -  
66 -------------------------------------------------------- -  
67 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky -  
68 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka -  
69 vzdalenost_der - definuje rozec der -  
70   -  
71 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. -  
72   -  
73 */ -  
74   -  
75 module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy) -  
76 { -  
77 RS232SINGLE01A_sirka_kon=32; //sirka konektoru -  
78 RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru -  
79 RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der -  
80 translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy]) -  
81 cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true); -  
82 -  
83 } -  
84   -  
85   -  
86 /*1C) - Pro modul USBI2C01A 13 /*1C) - Pro modul USBI2C01A
87 -------------------------------------------------------- 14 --------------------------------------------------------
88 -------------------------------------------------------- 15 --------------------------------------------------------
89 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky 16 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
90 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka 17 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
91 vzdalenost_der - definuje roztec der 18 vzdalenost_der - definuje roztec der
92   19  
93 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. 20 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
94   21  
95 */ 22 */
96   23  
97 module USBI2C01A(tloustka_bocnice,vzdalenost_der) //uz upraveno 24 module USBI2C01A(tloustka_bocnice,vzdalenost_der) //uz upraveno
98 { 25 {
99 USBI2C01A_sirka_kon=12; //sirka konektoru 26 USBI2C01A_sirka_kon=12; //sirka konektoru
100 USBI2C01A_vyska_kon=11; //vyska konektoru 27 USBI2C01A_vyska_kon=11; //vyska konektoru
101 USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der 28 USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der
102 USBI2C01A_svyska_nad_plbase=6; //kolik modul zabira der 29 USBI2C01A_svyska_nad_plbase=6; //kolik modul zabira der
103 translate([vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2,0,USBI2C01A_vyska_kon/2+USBI2C01A_svyska_nad_plbase]) 30 translate([vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2,0,USBI2C01A_vyska_kon/2+USBI2C01A_svyska_nad_plbase])
104 cube(size = [USBI2C01A_sirka_kon,tloustka_bocnice+0.2,USBI2C01A_vyska_kon], center = true); 31 cube(size = [USBI2C01A_sirka_kon,tloustka_bocnice+0.2,USBI2C01A_vyska_kon], center = true);
105 32
106 } 33 }
107   34  
108 /*1D) - Pro konektor MIC338 35 /*1D) - Pro konektor MIC338
109 -------------------------------------------------------- 36 --------------------------------------------------------
110 -------------------------------------------------------- 37 --------------------------------------------------------
111 */ 38 */
112 //posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der 39 //posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der
113   40  
114 module MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice) 41 module MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice)
115 { 42 {
116 MIC338_polomer_kon=8; //polomer montazniho otvoru 43 MIC338_polomer_kon=8; //polomer montazniho otvoru
117 translate([0,0,vyska_bocnice/2]) 44 translate([0,0,vyska_bocnice/2])
118 rotate(a=[90,0,0]) 45 rotate(a=[90,0,0])
119 cylinder(h=tloustka_bocnice+0.1, r=MIC338_polomer_kon+0.1, center=true); 46 cylinder(h=tloustka_bocnice+0.1, r=MIC338_polomer_kon+0.1, center=true);
120 47
121 } 48 }
122   49  
123 /*1E) - Pro modul UNIPOWER02A 50 /*1E) - Pro modul UNIPOWER02A
124 -------------------------------------------------------- 51 --------------------------------------------------------
125 -------------------------------------------------------- 52 --------------------------------------------------------
126 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky 53 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
127 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka 54 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
128 vzdalenost_der - definuje rozec der 55 vzdalenost_der - definuje rozec der
129   56  
130 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. 57 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
131   58  
132 */ 59 */
133   60  
134   61  
135   62  
136 module UNIPOWER02A(tloustka_bocnice,vzdalenost_der) 63 module UNIPOWER02A(tloustka_bocnice,vzdalenost_der)
137 { 64 {
138 UNIPOWER02A_sirka_kon=10; //sirka konektoru 65 UNIPOWER02A_sirka_kon=10; //sirka konektoru
139 UNIPOWER02A_vyska_kon=11; //vyska konektoru 66 UNIPOWER02A_vyska_kon=11; //vyska konektoru
140 UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der 67 UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der
141 UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu 68 UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu
142 UNIPOWER02A_vyska_nad_plbase=6; //vyska mezi albase a konektorem 69 UNIPOWER02A_vyska_nad_plbase=6; //vyska mezi albase a konektorem
143 translate([UNIPOWER02A_vzdalenost_konektoru,-tloustka_bocnice/2-0.05,UNIPOWER02A_vyska_nad_plbase]) 70 translate([UNIPOWER02A_vzdalenost_konektoru,-tloustka_bocnice/2-0.05,UNIPOWER02A_vyska_nad_plbase])
144 cube(size = [UNIPOWER02A_sirka_kon,tloustka_bocnice+0.1,UNIPOWER02A_vyska_kon], center = false); 71 cube(size = [UNIPOWER02A_sirka_kon,tloustka_bocnice+0.1,UNIPOWER02A_vyska_kon], center = false);
145 } 72 }
146 73
147 /*1F) - Pro modul I2CDIFF01A 74 /*1F) - Pro modul I2CDIFF01A
148 -------------------------------------------------------- 75 --------------------------------------------------------
149 -------------------------------------------------------- 76 --------------------------------------------------------
150 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky 77 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
151 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka 78 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
152 vzdalenost_der - definuje roztec der 79 vzdalenost_der - definuje roztec der
153   80  
154 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. 81 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
155   82  
156 */ 83 */
157   84  
158   85  
159 module I2CDIFF01A(tloustka_bocnice,vzdalenost_der) //uz upraveno 86 module I2CDIFF01A(tloustka_bocnice,vzdalenost_der) //uz upraveno
160 { 87 {
161 I2CDIFF01A_sirka_kon=16.5; //sirka konektoru 88 I2CDIFF01A_sirka_kon=16.5; //sirka konektoru
162 I2CDIFF01A_vyska_kon=13.5; //vyska konektoru 89 I2CDIFF01A_vyska_kon=13.5; //vyska konektoru
163 I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der 90 I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der
164 I2CDIFF01A_vyska_nad_plbase=6; //vyska mezi albase a konektorem 91 I2CDIFF01A_vyska_nad_plbase=6; //vyska mezi albase a konektorem
165 translate([vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2,0,I2CDIFF01A_vyska_kon/2+I2CDIFF01A_vyska_nad_plbase]) 92 translate([vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2,0,I2CDIFF01A_vyska_kon/2+I2CDIFF01A_vyska_nad_plbase])
166 cube(size = [I2CDIFF01A_sirka_kon,tloustka_bocnice+0.2,I2CDIFF01A_vyska_kon], center = true); 93 cube(size = [I2CDIFF01A_sirka_kon,tloustka_bocnice+0.2,I2CDIFF01A_vyska_kon], center = true);
167 94
168 } 95 }
169 96
170   97  
171 /*1G) - Pro modul UNIPOWER02A 98 /*1G) - Pro modul UNIPOWER03A
172 -------------------------------------------------------- 99 --------------------------------------------------------
173 -------------------------------------------------------- 100 --------------------------------------------------------
174 pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky -  
175 posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka -  
176 vzdalenost_der - definuje rozec der -  
177   -  
178 modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu. -  
179   101  
180 */ 102 */
181   103  
182   -  
183   -  
184 module UNIPOWER03A(tloustka_bocnice,vzdalenost_der) 104 module UNIPOWER03A(tloustka_bocnice,vzdalenost_der)
185 { 105 {
186 UNIPOWER03A_sirka_kon=10; //sirka konektoru 106 UNIPOWER03A_sirka_kon=10; //sirka konektoru
187 UNIPOWER03A_vyska_kon=11; //vyska konektoru 107 UNIPOWER03A_vyska_kon=11; //vyska konektoru
188 UNIPOWER03A_sirka_mod_otvory=4; //kolik modul zabira der 108 UNIPOWER03A_sirka_mod_otvory=4; //kolik modul zabira der
189 UNIPOWER03A_vzdalenost_konektoru=5; //vzdalenost kraje konektoru od středu šroubu 109 UNIPOWER03A_vzdalenost_konektoru=5; //vzdalenost kraje konektoru od středu šroubu
190 UNIPOWER03A_vyska_nad_plbase=6; //vyska mezi albase a konektorem 110 UNIPOWER03A_vyska_nad_plbase=6; //vyska mezi albase a konektorem
191 111
192 112
193 translate([(UNIPOWER03A_sirka_mod_otvory-1)*vzdalenost_der-UNIPOWER03A_sirka_kon-UNIPOWER03A_vzdalenost_konektoru,-tloustka_bocnice/2-0.05,UNIPOWER03A_vyska_nad_plbase]) 113 translate([(UNIPOWER03A_sirka_mod_otvory-1)*vzdalenost_der-UNIPOWER03A_sirka_kon-UNIPOWER03A_vzdalenost_konektoru,-tloustka_bocnice/2-0.05,UNIPOWER03A_vyska_nad_plbase])
194 cube(size = [UNIPOWER03A_sirka_kon,tloustka_bocnice+0.1,UNIPOWER03A_vyska_kon], center = false); 114 cube(size = [UNIPOWER03A_sirka_kon,tloustka_bocnice+0.1,UNIPOWER03A_vyska_kon], center = false);
195 -  
196 -  
197 } 115 }
198 116
-   117
-   118 //OTVOR PRO VETRANI
199 module CHLADICI_OTVORY(tloustka_bocnice,vzdalenost_der,delka,vyska_bocnice) 119 module CHLADICI_OTVORY(tloustka_bocnice,vzdalenost_der,delka,vyska_bocnice)
200 { 120 {
201 CHLADICI_OTVORY_mezera=0.8; 121 CHLADICI_OTVORY_mezera=0.6;
202 CHLADICI_OTVORY_snizeni_vysky=10; 122 CHLADICI_OTVORY_snizeni_vysky=10;
203 CHLADICI_OTVORY_prekryti=1.2; 123 CHLADICI_OTVORY_prekryti=1.2;
204 124
205 for (a =[1:delka]) 125 for (a =[1:delka])
206 translate([vzdalenost_der*(a-1),0,0]) 126 translate([vzdalenost_der*(a-1),0,0])
207 { 127 {
208 union() { 128 union() {
209 translate([CHLADICI_OTVORY_prekryti/2,-CHLADICI_OTVORY_mezera/2+0.005,CHLADICI_OTVORY_snizeni_vysky/2]) 129 translate([CHLADICI_OTVORY_prekryti/2,-CHLADICI_OTVORY_mezera/2+0.005,CHLADICI_OTVORY_snizeni_vysky/2])
210 cube(size = [(vzdalenost_der-2*CHLADICI_OTVORY_prekryti)/2,(tloustka_bocnice+CHLADICI_OTVORY_mezera)/2,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false); 130 cube(size = [(vzdalenost_der-2*CHLADICI_OTVORY_prekryti)/2,(tloustka_bocnice+CHLADICI_OTVORY_mezera)/2,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false);
211 131
212 translate([(vzdalenost_der+CHLADICI_OTVORY_prekryti)/2,-tloustka_bocnice/2-0.005,CHLADICI_OTVORY_snizeni_vysky/2]) 132 translate([(vzdalenost_der+CHLADICI_OTVORY_prekryti)/2,-tloustka_bocnice/2-0.005,CHLADICI_OTVORY_snizeni_vysky/2])
213 cube(size = [(vzdalenost_der-2*CHLADICI_OTVORY_prekryti)/2,(tloustka_bocnice+CHLADICI_OTVORY_mezera)/2,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false); 133 cube(size = [(vzdalenost_der-2*CHLADICI_OTVORY_prekryti)/2,(tloustka_bocnice+CHLADICI_OTVORY_mezera)/2,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false);
214 134
215 135
216 translate([(vzdalenost_der-CHLADICI_OTVORY_prekryti)/2,-CHLADICI_OTVORY_mezera/2,CHLADICI_OTVORY_snizeni_vysky/2]) 136 translate([(vzdalenost_der-CHLADICI_OTVORY_prekryti)/2,-CHLADICI_OTVORY_mezera/2,CHLADICI_OTVORY_snizeni_vysky/2])
217 cube(size = [CHLADICI_OTVORY_prekryti,CHLADICI_OTVORY_mezera,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false); 137 cube(size = [CHLADICI_OTVORY_prekryti,CHLADICI_OTVORY_mezera,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false);
218 138
219 translate([(vzdalenost_der-CHLADICI_OTVORY_prekryti)/2+vzdalenost_der/2,-CHLADICI_OTVORY_mezera/2,CHLADICI_OTVORY_snizeni_vysky/2]) 139 translate([(vzdalenost_der-CHLADICI_OTVORY_prekryti)/2+vzdalenost_der/2,-CHLADICI_OTVORY_mezera/2,CHLADICI_OTVORY_snizeni_vysky/2])
220 cube(size = [CHLADICI_OTVORY_prekryti+1,CHLADICI_OTVORY_mezera,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false); 140 cube(size = [CHLADICI_OTVORY_prekryti+1,CHLADICI_OTVORY_mezera,vyska_bocnice-CHLADICI_OTVORY_snizeni_vysky], center = false);
221 } 141 }
222 }; 142 }
223 } 143 }
224 144