Rev 4726 Rev 4731
1 use <text/Write.scad> 1 use <text/Write.scad>
2 use <MLAB_logo.scad> 2 use <MLAB_logo.scad>
3 use <sloupek.scad> 3 use <sloupek.scad>
4 use <plbase.scad> 4 use <plbase.scad>
5 include <manufactury_conf.scad> 5 include <manufactury_conf.scad>
6 include <../configuration.scad> 6 include <../configuration.scad>
7   7  
8 dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice); 8 dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
9   9  
10 //Bočnice 10 //Bočnice
11 //------------------------------------------------------------ 11 //------------------------------------------------------------
12   12  
13   13  
14 module dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice){ 14 module dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice){
15   15  
16 difference () { 16 difference () {
17 union() 17 union()
18 { 18 {
19 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2]) 19 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,vyska_bocnice/2])
20 rotate(a=[180,0,90]) 20 rotate(a=[180,0,90])
21 translate([radidus_hrany,radidus_hrany,0]) 21 translate([radidus_hrany,radidus_hrany,0])
22 translate([-tloustka_bocnice,-tloustka_bocnice,0]) 22 translate([-tloustka_bocnice,-tloustka_bocnice,0])
23 23
24 //obvod 24 //obvod
25 difference () { 25 difference () {
26   26  
27   27  
28 translate([-tloustka_bocnice,-tloustka_bocnice,0]) 28 translate([-tloustka_bocnice,-tloustka_bocnice,0])
29 minkowski() 29 minkowski()
30 { 30 {
31 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+4*tloustka_bocnice,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+4*tloustka_bocnice,vyska_bocnice+tloustka_plbase]); // base plastics brick 31 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+4*tloustka_bocnice,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+4*tloustka_bocnice,vyska_bocnice+tloustka_plbase]); // base plastics brick
32 cylinder(r=radidus_hrany,h=0.01); 32 cylinder(r=radidus_hrany,h=0.01);
33 } 33 }
34 translate([-dno_vule,-dno_vule,-dno_sila_materialu]) 34 translate([-dno_vule,-dno_vule,-dno_sila_materialu])
35 35
36 minkowski() 36 minkowski()
37 { 37 {
38 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,vyska_bocnice+tloustka_plbase+0.2]); // base plastics brick 38 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,vyska_bocnice+tloustka_plbase+0.2]); // base plastics brick
39 cylinder(r=radidus_hrany,h=0.01); 39 cylinder(r=radidus_hrany,h=0.01);
40 } 40 }
41   41  
42 translate([tloustka_bocnice-radidus_hrany+dno_spodni_rantl,tloustka_bocnice-radidus_hrany+dno_spodni_rantl,-0.1]) 42 translate([tloustka_bocnice-radidus_hrany+dno_spodni_rantl,tloustka_bocnice-radidus_hrany+dno_spodni_rantl,-0.1])
43 43
44 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*dno_spodni_rantl,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*dno_spodni_rantl,vyska_bocnice+tloustka_plbase+0.2]); 44 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*dno_spodni_rantl,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2-2*dno_spodni_rantl,vyska_bocnice+tloustka_plbase+0.2]);
45 45
46 46
47 47
48 } 48 }
49 49
50 50
51 51
52   52  
53 53
54 //uchyt 1 54 //uchyt 1
55 translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje-Uchyt_radius/2-Uchyt_x+0.5,-vzdalenost_od_okraje+vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase]) 55 translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2-Uchyt_radius/2-Uchyt_x+0.5,-vzdalenost_od_okraje1+vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase])
56 dno_uchyt(); 56 dno_uchyt();
57 57
58 //uchyt 2 58 //uchyt 2
59 translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje+tloustka_bocnice+Uchyt_radius-0.5,-vzdalenost_od_okraje+vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase]) 59 translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2+tloustka_bocnice+Uchyt_radius-0.5,-vzdalenost_od_okraje1+vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase])
60 dno_uchyt(); 60 dno_uchyt();
61   61  
62 //uchyt 3 62 //uchyt 3
63 translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje-Uchyt_radius/2-Uchyt_x+0.5,(pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-Uchyt_y+Uchyt_radius-vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase]) 63 translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2-Uchyt_radius/2-Uchyt_x+0.5,(pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-Uchyt_y+Uchyt_radius-vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase])
64 dno_uchyt(); 64 dno_uchyt();
65 65
66 //uchyt 4 66 //uchyt 4
67 translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje+tloustka_bocnice+Uchyt_radius-0.5,(pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-Uchyt_y+Uchyt_radius-vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase]) 67 translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2+tloustka_bocnice+Uchyt_radius-0.5,(pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-Uchyt_y+Uchyt_radius-vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase])
68 dno_uchyt(); 68 dno_uchyt();
69 69
70 } 70 }
71   71  
72 //---------------------------------------------------- 72 //----------------------------------------------------
73 //LOGO MLAB 73 //LOGO MLAB
74 /* 74 /*
75 translate([(5-(pocet_der2)*vzdalenost_der)/2,0,0]) 75 translate([(5-(pocet_der2)*vzdalenost_der)/2,0,0])
76 translate ([0, -vzdalenost_od_okraje-tloustka_bocnice*1/2,0]) // 76 translate ([0, -vzdalenost_od_okraje-tloustka_bocnice*1/2,0]) //
77 rotate([0, 90, 270]) 77 rotate([0, 90, 270])
78 scale(v = [logo_sirka, logo_vyska, 0.3]) 78 scale(v = [logo_sirka, logo_vyska, 0.3])
79 MLAB_logo_short(); 79 MLAB_logo_short();
80 */ 80 */
81   81  
82   82  
83   83  
84 //plbase odecet na kryt 84 //plbase odecet na kryt
85 translate([0,0,vyska_bocnice/2-tloustka_plbase/2+0.05]) 85 translate([0,0,vyska_bocnice/2-tloustka_plbase/2+0.05])
86 rotate(a=[0,0,0]) 86 rotate(a=[0,0,0])
87 { 87 {
88 plbase_vrchni_kryt_pro_odecet(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,0,tloustka_plbase+0.1); 88 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,0,tloustka_plbase+0.1);
89 } 89 }
90   90  
91   91  
92 //odstranění vrchního přebytku 92 //odstranění vrchního přebytku
93 translate([0,-20+(pocet_der2+1)*vzdalenost_der/2,vyska_bocnice/2-tloustka_plbase/2+0.05-vyska_bocnice/2+dno_vyska_ramecku]) 93 translate([0,-20+(pocet_der2+1)*vzdalenost_der/2,vyska_bocnice/2-tloustka_plbase/2+0.05-vyska_bocnice/2+dno_vyska_ramecku])
94 cube([(pocet_der2+3)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+4*tloustka_bocnice,(pocet_der1+3)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+4*tloustka_bocnice,vyska_bocnice+tloustka_plbase], true); 94 cube([(pocet_der2+3)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+4*tloustka_bocnice,(pocet_der1+3)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+4*tloustka_bocnice,vyska_bocnice+tloustka_plbase], true);
95   95  
96   96  
97 //začištění vnitřku 97 //začištění vnitřku
98 98
99 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2]) 99 translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,vyska_bocnice/2])
100 rotate(a=[180,0,90]) 100 rotate(a=[180,0,90])
101 translate([radidus_hrany,radidus_hrany,0]) 101 translate([radidus_hrany,radidus_hrany,0])
102 translate([-tloustka_bocnice,-tloustka_bocnice,0]) 102 translate([-tloustka_bocnice,-tloustka_bocnice,0])
103 103
104 translate([-dno_vule,-dno_vule,-dno_sila_materialu]) 104 translate([-dno_vule,-dno_vule,-dno_sila_materialu])
105 105
106 minkowski() 106 minkowski()
107 { 107 {
108 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,vyska_bocnice+tloustka_plbase+0.2]); // base plastics brick 108 cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+2*tloustka_bocnice+2*dno_vule,vyska_bocnice+tloustka_plbase+0.2]); // base plastics brick
109 cylinder(r=radidus_hrany,h=0.01); 109 cylinder(r=radidus_hrany,h=0.01);
110 } 110 }
111 111
112 112
113 //otvory na výčnělky horní 113 //otvory na výčnělky horní
114   114  
115 translate([-((pocet_der2+3)*vzdalenost_der+vzdalenost_od_okraje+tloustka_bocnice+Uchyt_radius-0.5)/2,-vzdalenost_od_okraje+vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase+tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]) 115 translate([-((pocet_der2+3)*vzdalenost_der+vzdalenost_od_okraje2+tloustka_bocnice+Uchyt_radius-0.5)/2,-vzdalenost_od_okraje1+vzdalenost_der/2-Uchyt_radius-0.5,-vyska_bocnice/2-tloustka_plbase+tloustka_plbase+dno_sila_materialu+dno_vule_na_matky])
116   116  
117   117  
118 cube([((pocet_der2+3)*vzdalenost_der)+vzdalenost_od_okraje+tloustka_bocnice+Uchyt_radius-0.5,Uchyt_y-2*Uchyt_radius,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]); 118 cube([((pocet_der2+3)*vzdalenost_der)+vzdalenost_od_okraje2+tloustka_bocnice+Uchyt_radius-0.5,Uchyt_y+1,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]);
119 119
120 translate([-((pocet_der2+3)*vzdalenost_der+vzdalenost_od_okraje+tloustka_bocnice+Uchyt_radius-0.5)/2,(pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-Uchyt_y+Uchyt_radius-vzdalenost_der/2,-vyska_bocnice/2-tloustka_plbase+tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]) 120 translate([-((pocet_der2+3)*vzdalenost_der+vzdalenost_od_okraje2+tloustka_bocnice+Uchyt_radius-0.5)/2,(pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-Uchyt_y-vzdalenost_der/2-0.5,-vyska_bocnice/2-tloustka_plbase+tloustka_plbase+dno_sila_materialu+dno_vule_na_matky])
121 121
122 cube([((pocet_der2+3)*vzdalenost_der)+vzdalenost_od_okraje+tloustka_bocnice+Uchyt_radius-0.5,Uchyt_y-2*Uchyt_radius,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]); 122 cube([((pocet_der2+3)*vzdalenost_der)+vzdalenost_od_okraje2+tloustka_bocnice+Uchyt_radius-0.5,Uchyt_y+1,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]);
123 123
124 } 124 }
125 } 125 }
126   126  
127   127  
128   128  
129   129  
130 //uchyt(); 130 //uchyt();
131   131  
132 module dno_uchyt(){ 132 module dno_uchyt(){
133 difference () { 133 difference () {
134 minkowski() 134 minkowski()
135 { 135 {
136 cube([Uchyt_x-2*Uchyt_radius,Uchyt_y-2*Uchyt_radius,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]); // base plastics brick 136 cube([Uchyt_x-2*Uchyt_radius,Uchyt_y-2*Uchyt_radius,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]); // base plastics brick
137 cylinder(r=Uchyt_radius,h=0.1); 137 cylinder(r=Uchyt_radius,h=0.1);
138 } 138 }
139   139  
140   140  
141 141
142 ////otvor na sroub 142 ////otvor na sroub
143 translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,(Uchyt_vyska_mat+M3_vyska_hlavy)/2]) 143 translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,(Uchyt_vyska_mat+M3_vyska_hlavy)/2])
144 cylinder(h=Uchyt_vyska_mat+M3_vyska_hlavy+0.6, r=M3_prumer/2, center=true); 144 cylinder(h=Uchyt_vyska_mat+M3_vyska_hlavy+0.6, r=M3_prumer/2, center=true);
145 145
146 translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,-0.01]) 146 translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,-0.01])
147 cylinder (h = M3_vyska_matky+0.01, r= (M3_sirka_matky+0.2)/2, $fn=6); 147 cylinder (h = M3_vyska_matky+0.01, r= (M3_sirka_matky+0.2)/2, $fn=6);
148 } 148 }
149 } 149 }
150 150
151 151
152 152
153 153