Rev Author Line No. Line
4731 jacho 1 use <text/Write.scad>
2 include <manufactury_conf.scad>
3 include <../configuration.scad>
4 /*
5 pocet_der1=5;
6 pocet_der2=3;
7 radidus_hrany=5;
8 vzdalenost_der=10.16;
9 vzdalenost_od_okraje=8.8;
10 prumer_sroubu=3.3;
11  
12 tloustka_plbase=2;
13 prekryti_der=0.3;
14  
15 vyska_nozicky=5;
16  
17 vyska_hlavy = 3.5;
18 prumer_hlavy=6;
19 */
20  
21 //PLBASE ZAKLADNI
22 //------------------------------------------------------------
23 module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
24  
25 difference () {
26 //union () {
27 translate([radidus_hrany,radidus_hrany,0])
28 minkowski()
29 {
30 cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+2*tloustka_bocnice,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+2*tloustka_bocnice,tloustka_plbase]); // base plastics brick
31 cylinder(r=radidus_hrany,h=0.1);
32 }
33  
34  
35 for (i = [0:1:pocet_der1-1]) {
36 for (a = [0:1:pocet_der2-1]) {
37  
38 translate([vzdalenost_od_okraje1+vzdalenost_der*i+tloustka_bocnice,vzdalenost_od_okraje2+vzdalenost_der*a+tloustka_bocnice, (tloustka_plbase-prekryti_der)/2]) // center top screw
39 cylinder(((tloustka_plbase-prekryti_der)), d=prumer_sroubu, center=true);
40 }
41 }
42  
43  
44 }
45 }
46  
47  
48  
49 //MODEL NOZICKY PRO PLBASE
50 //-----------------------------------------------------------
51 //průmer nozicky je roven vzdalenost_der
52 module nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy)
53 {
54 difference () {
55 translate([0,0,-vyska_nozicky/2])
56 cylinder((vyska_nozicky), d=vzdalenost_der, center=true);
57 translate([0,0,-(vyska_nozicky-vyska_hlavy/2)])
58 cylinder((vyska_hlavy), d=prumer_hlavy, center=true);
59 translate([0,0,-vyska_nozicky/2])
60 cylinder((vyska_nozicky), d=prumer_sroubu, center=true);
61 }
62 }
63  
64  
65  
66 //PLBASE S NOZICKAMA
67 //-----------------------------------------------------------
68 module plbase_s_nozickama(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,vyska_nozicky,vyska_hlavy,prumer_hlavy){
69  
70 plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
71  
72 translate([vzdalenost_od_okraje,vzdalenost_od_okraje, (tloustka_plbase)]) // center top screw
73 rotate(a=[180,0,0])
74 nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
75  
76 translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, tloustka_plbase]) // center top screw
77 rotate(a=[180,0,0])
78 nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
79  
80 translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
81 rotate(a=[180,0,0])
82 nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
83  
84 translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
85 rotate(a=[180,0,0])
86 nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
87  
88  
89 }
90  
91  
92  
93 //PLBASE SE ZAPUSTENIM SROUBU
94 //------------------------------------------------------
95 module plbase_zapustene_srouby(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy){
96 difference () {
97 plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,(vyska_hlavy+1.5),prekryti_der);
98  
99 translate([vzdalenost_od_okraje,vzdalenost_od_okraje, 1.5+(vyska_hlavy/2)]) // center top screw
100 cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
101  
102 translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, 1.5+(vyska_hlavy/2)]) // center top screw
103 cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
104  
105 translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, 1.5+(vyska_hlavy/2)]) // center top screw
106 cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
107  
108 translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, 1.5+(vyska_hlavy/2)]) // center top screw
109 cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
110  
111 }
112 }
113  
114  
115 //PLBASE S NOZICKAMA polovicni pro tisk
116 //-----------------------------------------------------------
117 module plbase_s_nozickama_polovicni(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,vyska_nozicky,vyska_hlavy,prumer_hlavy){
118  
119 difference()
120 {
121 plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
122  
123  
124 translate([-1,-1, -1])
125  
126 cube([(pocet_der1+1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,1+((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany)/2,tloustka_plbase+15]);
127 }
128  
129  
130  
131 translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
132 rotate(a=[180,0,0])
133 nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
134  
135 translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
136 rotate(a=[180,0,0])
137 nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
138  
139  
140  
141  
142 }
143  
144 //PLBASE polovicni pro tisk
145 //-----------------------------------------------------------
146 module plbase_polovicni(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,vyska_nozicky,vyska_hlavy,prumer_hlavy){
147  
148 difference()
149 {
150 plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
151  
152  
153 translate([-1,-1, -1])
154  
155 cube([(pocet_der1+1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,1+((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany)/2,tloustka_plbase+15]);
156 }
157  
158  
159 }
160  
161  
162 //PLBASE ZAKLADNI - bez der s napisem produktu
163 //------------------------------------------------------------
164 module plbase_bez_der_napis(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,tloustka_plbase,prekryti_der,box_jmeno,tloustka_bocnice){
165  
166  
167  
168 difference () {
169 //union () {
170 translate([radidus_hrany,radidus_hrany,0])
171 minkowski()
172 {
173 cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+2*tloustka_bocnice,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+2*tloustka_bocnice,tloustka_plbase]); // base plastics brick
174 cylinder(r=radidus_hrany,h=0.1);
175 }
176 translate([radidus_hrany,radidus_hrany,0])
177 translate([ ((pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany)/2+tloustka_bocnice, ((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany)/2+tloustka_bocnice, tloustka_plbase/2+1])
178 rotate([0,0,0])
179 write(box_jmeno,h=10,t=tloustka_plbase-1, space= 1.1, font = "Letters.dxf",center=true);
180  
181  
182 translate([vzdalenost_od_okraje1+tloustka_bocnice,vzdalenost_od_okraje2+tloustka_bocnice, (tloustka_plbase/2)]) // center top screw
183 cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
184  
185 translate([vzdalenost_od_okraje1+tloustka_bocnice+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje2+tloustka_bocnice, (tloustka_plbase/2)]) // center top screw
186 cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
187  
188 translate([vzdalenost_od_okraje1+tloustka_bocnice+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje2+tloustka_bocnice+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
189 cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
190  
191 translate([vzdalenost_od_okraje1+tloustka_bocnice,vzdalenost_od_okraje2+tloustka_bocnice+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
192 cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
193  
194  
195  
196  
197  
198  
199 }
200 }
201  
202  
203 //PLBASE ZAKLADNI - bez der
204 //------------------------------------------------------------
205 module plbase_bez_der(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
206  
207  
208  
209 difference () {
210 //union () {
211 translate([radidus_hrany,radidus_hrany,0])
212 minkowski()
213 {
214 cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice,tloustka_plbase]); // base plastics brick
215 cylinder(r=radidus_hrany,h=0.1);
216 }
217  
218  
219  
220  
221  
222  
223  
224  
225  
226 }
227 }
228  
229  
230 //PLbase vrchní
231 //------------------------------------------------------------
232  
233  
234 module plbase_vrchni_kryt(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,plbase_tolerance_horni){
235  
236 difference () {
237 // translate([0,((pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice)/2,0])
238 cube([(pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice,(pocet_der1+2)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice,tloustka_plbase],true);
239  
240  
241 union()
242 {
243 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
244 rotate(a=[180,0,90])
245 translate([radidus_hrany,radidus_hrany,0])
246 translate([-tloustka_bocnice,-tloustka_bocnice,0])
247  
248 //obvod
249 difference () {
250  
251  
252 minkowski()
253 {
254 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice,vyska_bocnice+tloustka_plbase]); // base plastics brick
255 cylinder(r=radidus_hrany,h=0.1);
256 }
257 translate([tloustka_bocnice,tloustka_bocnice,-0.1])
258 minkowski()
259 {
260 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany-2*plbase_tolerance_horni,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany-2*plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.2]); // base plastics brick
261 cylinder(r=radidus_hrany,h=0.1);
262 }
263  
264  
265  
266  
267 translate([-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-0.2])
268 cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
269  
270  
271 translate([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-radidus_hrany+2*tloustka_bocnice-vzdalenost_der/2,-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-0.2])
272 cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
273  
274  
275 translate([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-radidus_hrany+2*tloustka_bocnice-vzdalenost_der/2,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-radidus_hrany+2*tloustka_bocnice-vzdalenost_der/2,-0.2])
276 cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
277  
278  
279 translate([-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-radidus_hrany+2*tloustka_bocnice-vzdalenost_der/2,-0.2])
280 cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
281  
282  
283  
284 }
285  
286  
287  
288  
289 //pro vyboceni sloupku
290  
291 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
292 rotate(a=[180,0,90])
293 translate([radidus_hrany,radidus_hrany,0])
294 translate([-2*tloustka_bocnice,-2*tloustka_bocnice,0])
295 difference () {
296  
297 translate([-(5)*vzdalenost_der/2,-(5)*vzdalenost_der/2,0])
298 minkowski()
299 {
300 cube([(pocet_der1+5)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+4*tloustka_bocnice,(pocet_der2+5)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+4*tloustka_bocnice,vyska_bocnice+tloustka_plbase]); // base plastics brick
301 cylinder(r=radidus_hrany,h=0.1);
302 }
303 translate([tloustka_bocnice,tloustka_bocnice,-0.2])
304 minkowski()
305 {
306  
307  
308 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice-2*plbase_tolerance_horni,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice-2*plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]); // base plastics brick
309 cylinder(r=radidus_hrany,h=0.1);
310 }
311  
312  
313  
314  
315  
316 }
317 }
318 //SLOUPKY
319 //------------------------------------------------------------
320 //sloupek 1
321  
322 translate([(-(pocet_der2)*vzdalenost_der)/2-tloustka_bocnice-plbase_tolerance_horni,-tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
323  
324 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
325  
326 //sloupek 2
327  
328 translate([((pocet_der2)*vzdalenost_der)/2+tloustka_bocnice-plbase_tolerance_horni,-tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
329 rotate(a=[0,0,90])
330 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
331  
332 //sloupek 3
333  
334 translate([((pocet_der2)*vzdalenost_der)/2+tloustka_bocnice-plbase_tolerance_horni, (pocet_der1)*vzdalenost_der+tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
335 rotate(a=[0,0,180])
336 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
337  
338 //sloupek 4
339  
340 translate([-((pocet_der2)*vzdalenost_der)/2-tloustka_bocnice-plbase_tolerance_horni, (pocet_der1)*vzdalenost_der+tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
341 rotate(a=[0,0,270])
342 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
343  
344  
345  
346  
347  
348  
349  
350  
351  
352 }
353 }
354  
355 plbase_vrchni_kryt_pro_odecet(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,-0.2,tloustka_plbase);
356  
357 //PLbase vrchní - pro odecet
358 //------------------------------------------------------------
359  
360  
361 module plbase_vrchni_kryt_pro_odecet(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,plbase_tolerance_horni,tloustka_plbase){
362  
363  
364  
365  
366  
367  
368 union()
369 {
370 difference()
371 {
372 //pro vyboceni sloupku
373  
374 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,tloustka_plbase/2])
375 rotate(a=[180,0,90])
376 translate([radidus_hrany,radidus_hrany,0])
377 translate([-2*tloustka_bocnice,-2*tloustka_bocnice,0])
378  
379 translate([tloustka_bocnice+hrana_bocnice+plbase_tolerance_horni,tloustka_bocnice+hrana_bocnice+plbase_tolerance_horni,0])
380 minkowski()
381 {
382  
383  
384 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+2*tloustka_bocnice-2*plbase_tolerance_horni-2*hrana_bocnice,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+2*tloustka_bocnice-2*plbase_tolerance_horni-2*hrana_bocnice,tloustka_plbase]); // base plastics brick
385 cylinder(r=radidus_hrany,h=0.1);
386 }
387  
388  
389  
390  
391  
392  
393  
394 //SLOUPKY
395 //------------------------------------------------------------
396 //sloupek 1
397  
398  
399 translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2+prumer_matice/2,-vzdalenost_od_okraje1+prumer_matice/2,-tloustka_plbase/2-0.2])
400  
401 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
402  
403 //sloupek 2
404  
405 translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2-prumer_matice/2,-vzdalenost_od_okraje1+prumer_matice/2,-tloustka_plbase/2-0.2])
406 rotate(a=[0,0,90])
407 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
408  
409 //sloupek 3
410  
411 translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2-prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-prumer_matice/2,-tloustka_plbase/2-0.2])
412 rotate(a=[0,0,180])
413 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
414  
415 //sloupek 4
416  
417 translate([-((pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2+prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-prumer_matice/2,-tloustka_plbase/2-0.2])
418 rotate(a=[0,0,270])
419 cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
420  
421 //nápis
422  
423 translate([0,0,0])
424 translate([ 0, ((pocet_der1-1)*vzdalenost_der+vzdalenost_od_okraje1+2*tloustka_bocnice)/2, tloustka_plbase/2-(tloustka_plbase-1)/2+0.01])
425 rotate([0,0,0])
426 write(box_jmeno,h=10,t=tloustka_plbase-1, space= 1.1, font = "Letters.dxf",center=true);
427  
428  
429  
430 }
431  
432 }
433  
434 }
435  
4725 jacho 436