| 4592 | 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_okraje,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_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 | 
      
        |  |  | 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_okraje+vzdalenost_der*i+tloustka_bocnice,vzdalenost_od_okraje+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_okraje,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_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 | 
      
        |  |  | 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_okraje-2*radidus_hrany)/2+tloustka_bocnice, ((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-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_okraje+tloustka_bocnice,vzdalenost_od_okraje+tloustka_bocnice, (tloustka_plbase/2)])  // center top screw | 
      
        |  |  | 183 |         cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);   | 
      
        |  |  | 184 |  | 
      
        |  |  | 185 | translate([vzdalenost_od_okraje+tloustka_bocnice+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+tloustka_bocnice, (tloustka_plbase/2)])  // center top screw | 
      
        |  |  | 186 |         cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);   | 
      
        |  |  | 187 |  | 
      
        |  |  | 188 | translate([vzdalenost_od_okraje+tloustka_bocnice+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+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_okraje+tloustka_bocnice,vzdalenost_od_okraje+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_okraje,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_okraje,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_okraje)/2,-vzdalenost_od_okraje,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_okraje-2*radidus_hrany+2*tloustka_bocnice-2*plbase_tolerance_horni-2*hrana_bocnice,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje-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_okraje+prumer_matice/2,-vzdalenost_od_okraje+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_okraje-prumer_matice/2,-vzdalenost_od_okraje+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_okraje-prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-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_okraje+prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-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_okraje+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 |  | 
      
        |  |  | 436 |  |