/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/assembly.scad
1,58 → 1,65
use <src/sloupek.scad>
use <src/plbase.scad>
use <src/bocnice.scad>
use <src/dno.scad>
use <src/spodni_kryt.scad>
use <src/otvory.scad>
use <src/text/Write.scad>
use <upravena_bocnice.scad>
 
include <src/manufactury_conf.scad>
include <configuration.scad>
include <src/otvory_conf.scad>
 
 
barva_dno_bocnice = "cyan";
barva_spodni_kryt = "green";
barva_plbase_horni = "yellow";
 
posuv_dilu=0; //pro složeni krabičky zadat 0 pro rozebrání zdat 10
 
//BOCNICE SE DNEM
//-------------------------------------------------------------
 
 
color(barva_dno_bocnice)
upravena_bocnice();
 
//PLBASE HORNI
//-------------------------------------------------------------
translate([0,0,5*posuv_dilu])
color(barva_plbase_horni)
translate([0,0,vyska_bocnice/2-tloustka_plbase/2])
rotate(a=[0,0,0])
{
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,plbase_tolerance_horni,tloustka_plbase);
}
 
//SPODNÍ KRYT
//-------------------------------------------------------------
/*
translate([0,0,-5*posuv_dilu])
color(barva_spodni_kryt)
translate([0,0,-vyska_bocnice/2-2*tloustka_plbase])
spodni_kryt(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
*/
 
 
 
 
translate([0,0,-5*posuv_dilu])
color(barva_spodni_kryt)
translate([0,0,-tloustka_plbase-dno_sila_materialu])
dno(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
 
 
use <src/sloupek.scad>
use <src/plbase.scad>
use <src/bocnice.scad>
use <src/dno.scad>
use <src/spodni_kryt.scad>
use <src/otvory.scad>
use <src/text/Write.scad>
use <upravena_bocnice.scad>
 
include <src/manufactury_conf.scad>
include <configuration.scad>
include <src/otvory_conf.scad>
 
 
barva_dno_bocnice = "cyan";
barva_spodni_kryt = "green";
barva_plbase_horni = "yellow";
 
posuv_dilu=0; //pro složeni krabičky zadat 0 pro rozebrání zdat 10
 
//BOCNICE SE DNEM
//-------------------------------------------------------------
 
 
translate([0,0,-2*posuv_dilu])
translate([-((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje2)/2-tloustka_bocnice,-vzdalenost_od_okraje1-tloustka_bocnice,-(vyska_bocnice/2)-tloustka_plbase])
rotate(a=[180,0,90])
 
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice);
 
 
color(barva_dno_bocnice)
upravena_bocnice();
 
//PLBASE HORNI
//-------------------------------------------------------------
translate([0,0,5*posuv_dilu])
color(barva_plbase_horni)
translate([0,0,vyska_bocnice/2-tloustka_plbase/2])
rotate(a=[0,0,0])
{
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,plbase_tolerance_horni,tloustka_plbase);
}
 
//SPODNÍ KRYT
//-------------------------------------------------------------
/*
translate([0,0,-5*posuv_dilu])
color(barva_spodni_kryt)
translate([0,0,-vyska_bocnice/2-2*tloustka_plbase])
spodni_kryt(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
*/
 
 
 
 
translate([0,0,-5*posuv_dilu])
color(barva_spodni_kryt)
translate([0,0,-tloustka_plbase-dno_sila_materialu])
dno(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
 
 
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/configuration.scad
1,48 → 1,50
//Název boxu (zařízení)
box_jmeno="BASEBOX02A";
 
vzdalenost_der = 10.16; //rozteč děr mezi sebou
radidus_hrany = 5; //radius zaobleni sloupku
vzdalenost_od_okraje = 8.8; //vzdalenost stredu upevnovaci diry od kraje desky
pocet_der1 = 11; //pocet děr v ose y
pocet_der2 = 15; //pocet der v ose x
 
 
 
//OBECNE PARAMETRY KRABICKY
//------------------------------------------------------------
//BOCNICE
vyska_bocnice=40;
tloustka_bocnice=3;
 
 
//PLBASE PARAMETRY
//------------------------------------------------------------
tloustka_plbase = 2; //tloustka plbase - dna
prekryti_der=0.2; //sila materiálu, který překrývá díry, aby nebyli vidět
 
plbase_tolerance_horni=0.5; //pro zvětšení tolerance aby tam šlo dát horní čelíčko
 
 
//Rozmery loga MLAB
//------------------------------------------------------------
logo_vyska=0.15;
logo_sirka=0.15;
 
 
//Sroub M3
M3_prumer=3.4;
M3_prumer_hlavy=7;
M3_vyska_hlavy=5;
M3_vyska_matky=3;
M3_sirka_matky=6.7;
Uchyt_vyska_mat=4;
Uchyt_radius=2;
Uchyt_x=13;
Uchyt_y=10;
 
dno_vyska_ramecku=9;
dno_vule=0.6;
dno_sila_materialu=4;
dno_spodni_rantl=3;
//Název boxu (zařízení)
box_jmeno="CLOCKMOT01A";
 
vzdalenost_der = 10.16; //rozteč děr mezi sebou
radidus_hrany = 5; //radius zaobleni sloupku
vzdalenost_od_okraje = 8.2; //vzdalenost stredu upevnovaci diry od kraje desky
vzdalenost_od_okraje1 = 9.6;
vzdalenost_od_okraje2 = 9.3;
pocet_der1 = 11; //pocet děr v ose y
pocet_der2 = 15; //pocet der v ose x
 
 
 
//OBECNE PARAMETRY KRABICKY
//------------------------------------------------------------
//BOCNICE
vyska_bocnice=50;
tloustka_bocnice=3;
 
 
//PLBASE PARAMETRY
//------------------------------------------------------------
tloustka_plbase = 2; //tloustka plbase - dna
prekryti_der=0.2; //sila materiálu, který překrývá díry, aby nebyli vidět
 
plbase_tolerance_horni=0.5; //pro zvětšení tolerance aby tam šlo dát horní čelíčko
 
 
//Rozmery loga MLAB
//------------------------------------------------------------
logo_vyska=0.15;
logo_sirka=0.15;
 
 
//Sroub M3
M3_prumer=3.4;
M3_prumer_hlavy=7;
M3_vyska_hlavy=5;
M3_vyska_matky=3;
M3_sirka_matky=6.7;
Uchyt_vyska_mat=4;
Uchyt_radius=2;
Uchyt_x=13;
Uchyt_y=10;
 
dno_vyska_ramecku=9;
dno_vule=0.6;
dno_sila_materialu=4;
dno_spodni_rantl=3;
dno_vule_na_matky=0;
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/print_data/CLOCKMOT01A_BOX01A_PLBASE_top.scad
1,24 → 1,15
use <../src/plbase.scad>
 
 
 
include <../src/manufactury_conf.scad>
include <../configuration.scad>
include <../src/otvory_conf.scad>
use <../src/otvory.scad>
 
difference() {
translate([0,0,tloustka_plbase/2])
rotate(a=[0,0,0])
{
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,plbase_tolerance_horni,tloustka_plbase);
}
translate([-3.5,50,1])
rotate(a=[-90,0,0])
IR(tloustka_plbase,vyska_bocnice);
}
use <../src/plbase.scad>
include <../src/manufactury_conf.scad>
include <../configuration.scad>
include <../src/otvory_conf.scad>
use <../src/otvory.scad>
difference() {
translate([0,0,tloustka_plbase/2])
rotate(a=[0,0,0])
{
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,plbase_tolerance_horni,tloustka_plbase);
}
translate([-3.5,50,1])
rotate(a=[-90,0,0])
IR(tloustka_plbase,vyska_bocnice);
}
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/print_data/CLOCKMOT01A_BOX01A_dno.scad
0,0 → 1,23
use <../src/plbase.scad>
use <../src/sloupek.scad>
use <../src/dno.scad>
 
 
 
include <../src/manufactury_conf.scad>
include <../configuration.scad>
 
 
 
//BOCNICE
//-------------------------------------------------------------
 
difference () {
translate([0,0,(vyska_bocnice/2)+tloustka_plbase])
dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
 
}
 
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/src/bocnice.scad
1,135 → 1,135
use <text/Write.scad>
use <MLAB_logo.scad>
use <sloupek.scad>
use <plbase.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
 
bocnice(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
//Bočnice
//------------------------------------------------------------
 
 
module bocnice(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice){
 
difference () {
union()
{
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
//obvod
difference () {
 
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
 
translate([tloustka_bocnice-radidus_hrany,tloustka_bocnice-radidus_hrany,-0.1])
cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje,vyska_bocnice+tloustka_plbase+0.2]);
}
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
 
translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje+prumer_matice/2,-vzdalenost_od_okraje+prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
sloupek ();
 
//sloupek 2
 
translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje-prumer_matice/2,-vzdalenost_od_okraje+prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
rotate(a=[0,0,90])
sloupek ();
 
//sloupek 3
 
translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje-prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
rotate(a=[0,0,180])
sloupek ();
 
//sloupek 4
 
translate([-((pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje+prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje-prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
rotate(a=[0,0,270])
sloupek ();
//uchyt 1
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])
uchyt();
//uchyt 2
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])
uchyt();
 
//uchyt 3
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])
uchyt();
//uchyt 4
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])
uchyt();
}
 
//----------------------------------------------------
//LOGO MLAB
/*
translate([(5-(pocet_der2)*vzdalenost_der)/2,0,0])
translate ([0, -vzdalenost_od_okraje-tloustka_bocnice*1/2,0]) //
rotate([0, 90, 270])
scale(v = [logo_sirka, logo_vyska, 0.3])
MLAB_logo_short();
*/
 
 
 
//plbase odecet na kryt
translate([0,0,vyska_bocnice/2-tloustka_plbase/2+0.05])
rotate(a=[0,0,0])
{
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);
}
 
 
}
}
 
 
 
 
//uchyt();
 
module uchyt(){
difference () {
minkowski()
{
cube([Uchyt_x-2*Uchyt_radius,Uchyt_y-2*Uchyt_radius,Uchyt_vyska_mat+M3_vyska_hlavy]); // base plastics brick
cylinder(r=Uchyt_radius,h=0.1);
}
 
//otvor na hlavu
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,Uchyt_vyska_mat+M3_vyska_hlavy/2])
cylinder(h=M3_vyska_hlavy+0.6, r=M3_prumer_hlavy/2, center=true);
////otvor na sroub
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,(Uchyt_vyska_mat+M3_vyska_hlavy)/2])
cylinder(h=Uchyt_vyska_mat+M3_vyska_hlavy+0.6, r=M3_prumer/2, center=true);
 
}
}
use <text/Write.scad>
use <MLAB_logo.scad>
use <sloupek.scad>
use <plbase.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
 
bocnice(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
//Bočnice
//------------------------------------------------------------
 
 
module bocnice(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice){
 
difference () {
union()
{
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
//obvod
difference () {
 
minkowski()
{
cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1-2*radidus_hrany+2*tloustka_bocnice,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2-2*radidus_hrany+2*tloustka_bocnice,vyska_bocnice+tloustka_plbase]); // base plastics brick
cylinder(r=radidus_hrany,h=0.01);
}
 
translate([tloustka_bocnice-radidus_hrany,tloustka_bocnice-radidus_hrany,-0.1])
cube([(pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje1,(pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2,vyska_bocnice+tloustka_plbase+0.2]);
}
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
 
translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2+prumer_matice/2,-vzdalenost_od_okraje1+prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
sloupek ();
 
//sloupek 2
 
translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2-prumer_matice/2,-vzdalenost_od_okraje1+prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
rotate(a=[0,0,90])
sloupek ();
 
//sloupek 3
 
translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2-prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
rotate(a=[0,0,180])
sloupek ();
 
//sloupek 4
 
translate([-((pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2+prumer_matice/2, (pocet_der1)*vzdalenost_der+vzdalenost_od_okraje1-prumer_matice/2,vyska_bocnice/2-(vyska_matice+2*tloustka_bocnice+0.1)-tloustka_plbase])
rotate(a=[0,0,270])
sloupek ();
//uchyt 1
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])
uchyt();
//uchyt 2
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])
uchyt();
 
//uchyt 3
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])
uchyt();
//uchyt 4
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])
uchyt();
}
 
//----------------------------------------------------
//LOGO MLAB
/*
translate([(5-(pocet_der2)*vzdalenost_der)/2,0,0])
translate ([0, -vzdalenost_od_okraje-tloustka_bocnice*1/2,0]) //
rotate([0, 90, 270])
scale(v = [logo_sirka, logo_vyska, 0.3])
MLAB_logo_short();
*/
 
 
 
//plbase odecet na kryt
translate([0,0,vyska_bocnice/2-tloustka_plbase/2+0.05])
rotate(a=[0,0,0])
{
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);
}
 
 
}
}
 
 
 
 
//uchyt();
 
module uchyt(){
difference () {
minkowski()
{
cube([Uchyt_x-2*Uchyt_radius,Uchyt_y-2*Uchyt_radius,Uchyt_vyska_mat+M3_vyska_hlavy]); // base plastics brick
cylinder(r=Uchyt_radius,h=0.1);
}
 
//otvor na hlavu
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,Uchyt_vyska_mat+M3_vyska_hlavy/2])
cylinder(h=M3_vyska_hlavy+0.6, r=M3_prumer_hlavy/2, center=true);
////otvor na sroub
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,(Uchyt_vyska_mat+M3_vyska_hlavy)/2])
cylinder(h=Uchyt_vyska_mat+M3_vyska_hlavy+0.6, r=M3_prumer/2, center=true);
 
}
}
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/src/dno.scad
1,152 → 1,152
use <text/Write.scad>
use <MLAB_logo.scad>
use <sloupek.scad>
use <plbase.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
 
dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
//Bočnice
//------------------------------------------------------------
 
 
module dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice){
 
difference () {
union()
{
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
//obvod
difference () {
 
 
translate([-tloustka_bocnice,-tloustka_bocnice,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
translate([-dno_vule,-dno_vule,-dno_sila_materialu])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
 
translate([tloustka_bocnice-radidus_hrany+dno_spodni_rantl,tloustka_bocnice-radidus_hrany+dno_spodni_rantl,-0.1])
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]);
}
 
//uchyt 1
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])
dno_uchyt();
//uchyt 2
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])
dno_uchyt();
 
//uchyt 3
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])
dno_uchyt();
//uchyt 4
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])
dno_uchyt();
}
 
//----------------------------------------------------
//LOGO MLAB
/*
translate([(5-(pocet_der2)*vzdalenost_der)/2,0,0])
translate ([0, -vzdalenost_od_okraje-tloustka_bocnice*1/2,0]) //
rotate([0, 90, 270])
scale(v = [logo_sirka, logo_vyska, 0.3])
MLAB_logo_short();
*/
 
 
 
//plbase odecet na kryt
translate([0,0,vyska_bocnice/2-tloustka_plbase/2+0.05])
rotate(a=[0,0,0])
{
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);
}
 
 
//odstranění vrchního přebytku
translate([0,-20+(pocet_der2+1)*vzdalenost_der/2,vyska_bocnice/2-tloustka_plbase/2+0.05-vyska_bocnice/2+dno_vyska_ramecku])
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);
 
 
//začištění vnitřku
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
translate([-dno_vule,-dno_vule,-dno_sila_materialu])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
//otvory na výčnělky horní
 
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])
 
 
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]);
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])
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]);
}
}
 
 
 
 
//uchyt();
 
module dno_uchyt(){
difference () {
minkowski()
{
cube([Uchyt_x-2*Uchyt_radius,Uchyt_y-2*Uchyt_radius,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]); // base plastics brick
cylinder(r=Uchyt_radius,h=0.1);
}
 
 
////otvor na sroub
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,(Uchyt_vyska_mat+M3_vyska_hlavy)/2])
cylinder(h=Uchyt_vyska_mat+M3_vyska_hlavy+0.6, r=M3_prumer/2, center=true);
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,-0.01])
cylinder (h = M3_vyska_matky+0.01, r= (M3_sirka_matky+0.2)/2, $fn=6);
}
}
use <text/Write.scad>
use <MLAB_logo.scad>
use <sloupek.scad>
use <plbase.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
 
dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
//Bočnice
//------------------------------------------------------------
 
 
module dno(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice){
 
difference () {
union()
{
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
//obvod
difference () {
 
 
translate([-tloustka_bocnice,-tloustka_bocnice,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
translate([-dno_vule,-dno_vule,-dno_sila_materialu])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
 
translate([tloustka_bocnice-radidus_hrany+dno_spodni_rantl,tloustka_bocnice-radidus_hrany+dno_spodni_rantl,-0.1])
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]);
}
 
//uchyt 1
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])
dno_uchyt();
//uchyt 2
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])
dno_uchyt();
 
//uchyt 3
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])
dno_uchyt();
//uchyt 4
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])
dno_uchyt();
}
 
//----------------------------------------------------
//LOGO MLAB
/*
translate([(5-(pocet_der2)*vzdalenost_der)/2,0,0])
translate ([0, -vzdalenost_od_okraje-tloustka_bocnice*1/2,0]) //
rotate([0, 90, 270])
scale(v = [logo_sirka, logo_vyska, 0.3])
MLAB_logo_short();
*/
 
 
 
//plbase odecet na kryt
translate([0,0,vyska_bocnice/2-tloustka_plbase/2+0.05])
rotate(a=[0,0,0])
{
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);
}
 
 
//odstranění vrchního přebytku
translate([0,-20+(pocet_der2+1)*vzdalenost_der/2,vyska_bocnice/2-tloustka_plbase/2+0.05-vyska_bocnice/2+dno_vyska_ramecku])
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);
 
 
//začištění vnitřku
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
translate([-dno_vule,-dno_vule,-dno_sila_materialu])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.01);
}
//otvory na výčnělky horní
 
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])
 
 
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]);
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])
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]);
}
}
 
 
 
 
//uchyt();
 
module dno_uchyt(){
difference () {
minkowski()
{
cube([Uchyt_x-2*Uchyt_radius,Uchyt_y-2*Uchyt_radius,tloustka_plbase+dno_sila_materialu+dno_vule_na_matky]); // base plastics brick
cylinder(r=Uchyt_radius,h=0.1);
}
 
 
////otvor na sroub
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,(Uchyt_vyska_mat+M3_vyska_hlavy)/2])
cylinder(h=Uchyt_vyska_mat+M3_vyska_hlavy+0.6, r=M3_prumer/2, center=true);
translate([(Uchyt_x)/2-Uchyt_radius,(Uchyt_y)/2-Uchyt_radius,-0.01])
cylinder (h = M3_vyska_matky+0.01, r= (M3_sirka_matky+0.2)/2, $fn=6);
}
}
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/src/plbase.scad
1,436 → 1,436
use <text/Write.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
/*
pocet_der1=5;
pocet_der2=3;
radidus_hrany=5;
vzdalenost_der=10.16;
vzdalenost_od_okraje=8.8;
prumer_sroubu=3.3;
 
tloustka_plbase=2;
prekryti_der=0.3;
 
vyska_nozicky=5;
 
vyska_hlavy = 3.5;
prumer_hlavy=6;
*/
 
//PLBASE ZAKLADNI
//------------------------------------------------------------
module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
 
difference () {
//union () {
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
 
for (i = [0:1:pocet_der1-1]) {
for (a = [0:1:pocet_der2-1]) {
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
cylinder(((tloustka_plbase-prekryti_der)), d=prumer_sroubu, center=true);
}
}
}
}
 
 
 
//MODEL NOZICKY PRO PLBASE
//-----------------------------------------------------------
//průmer nozicky je roven vzdalenost_der
module nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy)
{
difference () {
translate([0,0,-vyska_nozicky/2])
cylinder((vyska_nozicky), d=vzdalenost_der, center=true);
translate([0,0,-(vyska_nozicky-vyska_hlavy/2)])
cylinder((vyska_hlavy), d=prumer_hlavy, center=true);
translate([0,0,-vyska_nozicky/2])
cylinder((vyska_nozicky), d=prumer_sroubu, center=true);
}
}
 
 
 
//PLBASE S NOZICKAMA
//-----------------------------------------------------------
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){
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, tloustka_plbase]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
 
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
}
 
//PLBASE SE ZAPUSTENIM SROUBU
//------------------------------------------------------
module plbase_zapustene_srouby(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy){
difference () {
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,(vyska_hlavy+1.5),prekryti_der);
 
translate([vzdalenost_od_okraje,vzdalenost_od_okraje, 1.5+(vyska_hlavy/2)]) // center top screw
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, 1.5+(vyska_hlavy/2)]) // center top screw
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
 
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
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, 1.5+(vyska_hlavy/2)]) // center top screw
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
 
}
}
 
 
//PLBASE S NOZICKAMA polovicni pro tisk
//-----------------------------------------------------------
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){
 
difference()
{
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([-1,-1, -1])
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]);
}
 
 
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
 
}
 
//PLBASE polovicni pro tisk
//-----------------------------------------------------------
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){
 
difference()
{
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([-1,-1, -1])
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]);
}
}
//PLBASE ZAKLADNI - bez der s napisem produktu
//------------------------------------------------------------
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){
 
 
 
difference () {
//union () {
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([radidus_hrany,radidus_hrany,0])
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])
rotate([0,0,0])
write(box_jmeno,h=10,t=tloustka_plbase-1, space= 1.1, font = "Letters.dxf",center=true);
 
translate([vzdalenost_od_okraje+tloustka_bocnice,vzdalenost_od_okraje+tloustka_bocnice, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
translate([vzdalenost_od_okraje+tloustka_bocnice+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+tloustka_bocnice, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
 
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
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
translate([vzdalenost_od_okraje+tloustka_bocnice,vzdalenost_od_okraje+tloustka_bocnice+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
 
 
 
 
 
}
}
 
 
//PLBASE ZAKLADNI - bez der
//------------------------------------------------------------
module plbase_bez_der(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
 
 
 
difference () {
//union () {
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
 
 
 
 
 
 
}
}
 
 
//PLbase vrchní
//------------------------------------------------------------
 
 
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){
 
difference () {
// translate([0,((pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice)/2,0])
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);
 
union()
{
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
//obvod
difference () {
 
 
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([tloustka_bocnice,tloustka_bocnice,-0.1])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-0.2])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
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])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
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])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
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])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
 
}
//pro vyboceni sloupku
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-2*tloustka_bocnice,-2*tloustka_bocnice,0])
difference () {
 
translate([-(5)*vzdalenost_der/2,-(5)*vzdalenost_der/2,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([tloustka_bocnice,tloustka_bocnice,-0.2])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
}
}
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
 
translate([(-(pocet_der2)*vzdalenost_der)/2-tloustka_bocnice-plbase_tolerance_horni,-tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
 
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 2
 
translate([((pocet_der2)*vzdalenost_der)/2+tloustka_bocnice-plbase_tolerance_horni,-tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
rotate(a=[0,0,90])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 3
 
translate([((pocet_der2)*vzdalenost_der)/2+tloustka_bocnice-plbase_tolerance_horni, (pocet_der1)*vzdalenost_der+tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
rotate(a=[0,0,180])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 4
 
translate([-((pocet_der2)*vzdalenost_der)/2-tloustka_bocnice-plbase_tolerance_horni, (pocet_der1)*vzdalenost_der+tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
rotate(a=[0,0,270])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
 
 
 
 
 
}
}
 
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);
 
//PLbase vrchní - pro odecet
//------------------------------------------------------------
 
 
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){
 
 
 
 
union()
{
difference()
{
//pro vyboceni sloupku
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,tloustka_plbase/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-2*tloustka_bocnice,-2*tloustka_bocnice,0])
 
translate([tloustka_bocnice+hrana_bocnice+plbase_tolerance_horni,tloustka_bocnice+hrana_bocnice+plbase_tolerance_horni,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
 
translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje+prumer_matice/2,-vzdalenost_od_okraje+prumer_matice/2,-tloustka_plbase/2-0.2])
 
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 2
 
translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje-prumer_matice/2,-vzdalenost_od_okraje+prumer_matice/2,-tloustka_plbase/2-0.2])
rotate(a=[0,0,90])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 3
 
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])
rotate(a=[0,0,180])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 4
 
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])
rotate(a=[0,0,270])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
//nápis
translate([0,0,0])
translate([ 0, ((pocet_der1-1)*vzdalenost_der+vzdalenost_od_okraje+2*tloustka_bocnice)/2, tloustka_plbase/2-(tloustka_plbase-1)/2+0.01])
rotate([0,0,0])
write(box_jmeno,h=10,t=tloustka_plbase-1, space= 1.1, font = "Letters.dxf",center=true);
 
 
 
}
 
}
 
}
 
use <text/Write.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
/*
pocet_der1=5;
pocet_der2=3;
radidus_hrany=5;
vzdalenost_der=10.16;
vzdalenost_od_okraje=8.8;
prumer_sroubu=3.3;
 
tloustka_plbase=2;
prekryti_der=0.3;
 
vyska_nozicky=5;
 
vyska_hlavy = 3.5;
prumer_hlavy=6;
*/
 
//PLBASE ZAKLADNI
//------------------------------------------------------------
module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
 
difference () {
//union () {
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
 
for (i = [0:1:pocet_der1-1]) {
for (a = [0:1:pocet_der2-1]) {
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
cylinder(((tloustka_plbase-prekryti_der)), d=prumer_sroubu, center=true);
}
}
}
}
 
 
 
//MODEL NOZICKY PRO PLBASE
//-----------------------------------------------------------
//průmer nozicky je roven vzdalenost_der
module nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy)
{
difference () {
translate([0,0,-vyska_nozicky/2])
cylinder((vyska_nozicky), d=vzdalenost_der, center=true);
translate([0,0,-(vyska_nozicky-vyska_hlavy/2)])
cylinder((vyska_hlavy), d=prumer_hlavy, center=true);
translate([0,0,-vyska_nozicky/2])
cylinder((vyska_nozicky), d=prumer_sroubu, center=true);
}
}
 
 
 
//PLBASE S NOZICKAMA
//-----------------------------------------------------------
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){
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, tloustka_plbase]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
 
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
}
 
//PLBASE SE ZAPUSTENIM SROUBU
//------------------------------------------------------
module plbase_zapustene_srouby(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy){
difference () {
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,(vyska_hlavy+1.5),prekryti_der);
 
translate([vzdalenost_od_okraje,vzdalenost_od_okraje, 1.5+(vyska_hlavy/2)]) // center top screw
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, 1.5+(vyska_hlavy/2)]) // center top screw
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
 
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
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, 1.5+(vyska_hlavy/2)]) // center top screw
cylinder(((vyska_hlavy+0.5)), d=prumer_hlavy, center=true);
 
}
}
 
 
//PLBASE S NOZICKAMA polovicni pro tisk
//-----------------------------------------------------------
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){
 
difference()
{
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([-1,-1, -1])
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]);
}
 
 
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
translate([vzdalenost_od_okraje,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase)]) // center top screw
rotate(a=[180,0,0])
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
 
}
 
//PLBASE polovicni pro tisk
//-----------------------------------------------------------
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){
 
difference()
{
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([-1,-1, -1])
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]);
}
}
//PLBASE ZAKLADNI - bez der s napisem produktu
//------------------------------------------------------------
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){
 
 
 
difference () {
//union () {
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([radidus_hrany,radidus_hrany,0])
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])
rotate([0,0,0])
write(box_jmeno,h=10,t=tloustka_plbase-1, space= 1.1, font = "Letters.dxf",center=true);
 
translate([vzdalenost_od_okraje1+tloustka_bocnice,vzdalenost_od_okraje2+tloustka_bocnice, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
translate([vzdalenost_od_okraje1+tloustka_bocnice+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje2+tloustka_bocnice, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
 
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
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
translate([vzdalenost_od_okraje1+tloustka_bocnice,vzdalenost_od_okraje2+tloustka_bocnice+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
 
 
 
 
 
}
}
 
 
//PLBASE ZAKLADNI - bez der
//------------------------------------------------------------
module plbase_bez_der(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
 
 
 
difference () {
//union () {
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
 
 
 
 
 
 
}
}
 
 
//PLbase vrchní
//------------------------------------------------------------
 
 
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){
 
difference () {
// translate([0,((pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice)/2,0])
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);
 
union()
{
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-tloustka_bocnice,-tloustka_bocnice,0])
//obvod
difference () {
 
 
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([tloustka_bocnice,tloustka_bocnice,-0.1])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-radidus_hrany-tloustka_bocnice-3*plbase_tolerance_horni,-0.2])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
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])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
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])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
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])
cube([vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vzdalenost_der/2+tloustka_bocnice+plbase_tolerance_horni,vyska_bocnice+tloustka_plbase+0.4]);
 
}
//pro vyboceni sloupku
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,vyska_bocnice/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-2*tloustka_bocnice,-2*tloustka_bocnice,0])
difference () {
 
translate([-(5)*vzdalenost_der/2,-(5)*vzdalenost_der/2,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
translate([tloustka_bocnice,tloustka_bocnice,-0.2])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
}
}
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
 
translate([(-(pocet_der2)*vzdalenost_der)/2-tloustka_bocnice-plbase_tolerance_horni,-tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
 
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 2
 
translate([((pocet_der2)*vzdalenost_der)/2+tloustka_bocnice-plbase_tolerance_horni,-tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
rotate(a=[0,0,90])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 3
 
translate([((pocet_der2)*vzdalenost_der)/2+tloustka_bocnice-plbase_tolerance_horni, (pocet_der1)*vzdalenost_der+tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
rotate(a=[0,0,180])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 4
 
translate([-((pocet_der2)*vzdalenost_der)/2-tloustka_bocnice-plbase_tolerance_horni, (pocet_der1)*vzdalenost_der+tloustka_bocnice-plbase_tolerance_horni,-tloustka_plbase])
rotate(a=[0,0,270])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
 
 
 
 
 
}
}
 
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);
 
//PLbase vrchní - pro odecet
//------------------------------------------------------------
 
 
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){
 
 
 
 
union()
{
difference()
{
//pro vyboceni sloupku
translate([-((pocet_der2)*vzdalenost_der+2*vzdalenost_od_okraje2)/2,-vzdalenost_od_okraje1,tloustka_plbase/2])
rotate(a=[180,0,90])
translate([radidus_hrany,radidus_hrany,0])
translate([-2*tloustka_bocnice,-2*tloustka_bocnice,0])
 
translate([tloustka_bocnice+hrana_bocnice+plbase_tolerance_horni,tloustka_bocnice+hrana_bocnice+plbase_tolerance_horni,0])
minkowski()
{
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
cylinder(r=radidus_hrany,h=0.1);
}
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
 
translate([(-(pocet_der2)*vzdalenost_der)/2-vzdalenost_od_okraje2+prumer_matice/2,-vzdalenost_od_okraje1+prumer_matice/2,-tloustka_plbase/2-0.2])
 
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 2
 
translate([((pocet_der2)*vzdalenost_der)/2+vzdalenost_od_okraje2-prumer_matice/2,-vzdalenost_od_okraje1+prumer_matice/2,-tloustka_plbase/2-0.2])
rotate(a=[0,0,90])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 3
 
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])
rotate(a=[0,0,180])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
 
//sloupek 4
 
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])
rotate(a=[0,0,270])
cylinder(r=prumer_sroubu/2,h=6*tloustka_plbase);
//nápis
translate([0,0,0])
translate([ 0, ((pocet_der1-1)*vzdalenost_der+vzdalenost_od_okraje1+2*tloustka_bocnice)/2, tloustka_plbase/2-(tloustka_plbase-1)/2+0.01])
rotate([0,0,0])
write(box_jmeno,h=10,t=tloustka_plbase-1, space= 1.1, font = "Letters.dxf",center=true);
 
 
 
}
 
}
 
}
 
/Designs/Laboratory_instruments/CLOCKMOT01A/CAD/CLOCKMOT01A_BOX01A/CAD/upravena_bocnice.scad
1,149 → 1,132
use <src/bocnice.scad>
 
use <src/otvory.scad>
use <src/plbase.scad>
include <src/manufactury_conf.scad>
include <configuration.scad>
include <src/otvory_conf.scad>
 
upravena_bocnice();
 
//Slouzi pro vytvoreni vlastnich celicek dle potreby
 
//Vytvoreni predniho celicka krabicky
//--------------------------------------------------------
module upravena_bocnice()
{
difference() {
union() {
bocnice(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
translate([-((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje)/2-tloustka_bocnice,-vzdalenost_od_okraje-tloustka_bocnice,-(vyska_bocnice/2)])
rotate(a=[180,0,90])
 
 
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice);
}
union() {
//Vytvoreni otvorů v přední stěně
//--------------------------------------------------------
translate([-((pocet_der2-1)*vzdalenost_der)/2,-vzdalenost_od_okraje-tloustka_bocnice/2,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_p1=10;
translate([posun_p1*vzdalenost_der,0,0])
UNIPOWER03A(tloustka_bocnice,vzdalenost_der);
posun_p2=9.5;
translate([posun_p2*vzdalenost_der,0,0])
MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice);
posun_p3=5.5;
translate([posun_p3*vzdalenost_der,0,0])
MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice);
posun_p4=2;
translate([posun_p4*vzdalenost_der,0,0])
IR(tloustka_bocnice,vyska_bocnice);
}
}
 
 
 
 
//Vytvoreni zadniho celicka krabicky
//--------------------------------------------------------
translate([((pocet_der2-1)*vzdalenost_der)/2,(pocet_der1-1)*vzdalenost_der+vzdalenost_od_okraje+tloustka_bocnice/2,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_z1=6.5;
translate([-posun_z1*vzdalenost_der,0,0])
rotate(a=[0,0,180])
IR(tloustka_bocnice,vyska_bocnice);
posun_z2=0;
translate([-posun_z2*vzdalenost_der,0,0])
rotate(a=[0,0,180])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der2-8,vyska_bocnice);
 
posun_z3=7.5;
translate([-posun_z3*vzdalenost_der,0,0])
rotate(a=[0,0,180])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der2-9,vyska_bocnice);
}
 
 
 
 
//Vytvoreni leveho celicka krabicky
//--------------------------------------------------------
 
 
 
translate([-((pocet_der2-1)*vzdalenost_der)/2-vzdalenost_od_okraje-tloustka_bocnice/2,(pocet_der1-1)*vzdalenost_der,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_l1=4.2;
translate([0,-posun_l1*vzdalenost_der,0])
rotate(a=[0,0,-90])
IR(tloustka_bocnice,vyska_bocnice);
posun_l2=10.5;
translate([0,-posun_l2*vzdalenost_der,0])
rotate(a=[0,0,-90])
I2CDIFF01A(tloustka_bocnice,vzdalenost_der);
posun_l3=5;
translate([0,-posun_l3*vzdalenost_der,0])
rotate(a=[0,0,-90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-6,vyska_bocnice);
posun_l4=0;
translate([0,-posun_l4*vzdalenost_der,0])
rotate(a=[0,0,-90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-6,vyska_bocnice);
}
 
 
 
 
 
//Vytvoreni praveho celicka krabicky
//--------------------------------------------------------
translate([+((pocet_der2-1)*vzdalenost_der)/2+vzdalenost_od_okraje+tloustka_bocnice/2,0,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_pr1=4.2;
translate([0,posun_pr1*vzdalenost_der,0])
rotate(a=[0,0,90])
IR(tloustka_bocnice,vyska_bocnice);
posun_pr2=10;
translate([0,posun_pr2*vzdalenost_der,0])
rotate(a=[0,0,90])
I2CDIFF01A(tloustka_bocnice,vzdalenost_der);
posun_pr3=5;
translate([0,posun_pr3*vzdalenost_der,0])
rotate(a=[0,0,90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-6,vyska_bocnice);
posun_pr4=0;
translate([0,posun_pr4*vzdalenost_der,0])
rotate(a=[0,0,90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-6,vyska_bocnice);
}
 
 
}
}
use <src/bocnice.scad>
 
use <src/otvory.scad>
use <src/plbase.scad>
include <src/manufactury_conf.scad>
include <configuration.scad>
include <src/otvory_conf.scad>
 
upravena_bocnice();
 
//Slouzi pro vytvoreni bocnice s vlastnimi otvory
 
 
module upravena_bocnice()
{
difference() {
union() {
bocnice(pocet_der1-1,pocet_der2-1,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje1,vzdalenost_od_okraje2,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice);
 
/*
translate([-((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje2)/2-tloustka_bocnice,-vzdalenost_od_okraje1-tloustka_bocnice,-(vyska_bocnice/2)])
rotate(a=[180,0,90])
plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der1,vzdalenost_der2,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice);
*/
}
//Vytvoreni otvorů v přední stěně
//--------------------------------------------------------
union() {
translate([-((pocet_der2-1)*vzdalenost_der)/2,-vzdalenost_od_okraje1-tloustka_bocnice/2,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_p1=10;
translate([posun_p1*vzdalenost_der,0,0])
UNIPOWER03A(tloustka_bocnice,vzdalenost_der);
posun_p2=9.5;
translate([posun_p2*vzdalenost_der,0,0])
MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice);
posun_p3=5.5;
translate([posun_p3*vzdalenost_der,0,0])
MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice);
posun_p4=2;
translate([posun_p4*vzdalenost_der,0,0])
IR(tloustka_bocnice,vyska_bocnice);
}
}
 
 
 
//Vytvoreni zadniho celicka krabicky
//--------------------------------------------------------
translate([((pocet_der2-1)*vzdalenost_der)/2,(pocet_der1-1)*vzdalenost_der+vzdalenost_od_okraje1+tloustka_bocnice/2,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_z2=0;
translate([-posun_z2*vzdalenost_der,0,0])
rotate(a=[0,0,180])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der2-8,vyska_bocnice);
 
posun_z3=7.5;
translate([-posun_z3*vzdalenost_der,0,0])
rotate(a=[0,0,180])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der2-9,vyska_bocnice);
}
 
//Vytvoreni leveho celicka krabicky
//--------------------------------------------------------
 
translate([-((pocet_der2-1)*vzdalenost_der)/2-vzdalenost_od_okraje2-tloustka_bocnice/2,(pocet_der1-1)*vzdalenost_der,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_l1=4.2;
translate([0,-posun_l1*vzdalenost_der,0])
rotate(a=[0,0,-90])
IR(tloustka_bocnice,vyska_bocnice);
posun_l2=30.5;
translate([0,-posun_l2*vzdalenost_der,0])
rotate(a=[0,0,-90])
I2CDIFF01A(tloustka_bocnice,vzdalenost_der);
posun_l3=5.5;
translate([0,-posun_l3*vzdalenost_der,0])
rotate(a=[0,0,-90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-7,vyska_bocnice);
posun_l4=0;
translate([0,-posun_l4*vzdalenost_der,0])
rotate(a=[0,0,-90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-7,vyska_bocnice);
}
 
//Vytvoreni praveho celicka krabicky
//--------------------------------------------------------
translate([+((pocet_der2-1)*vzdalenost_der)/2+vzdalenost_od_okraje2+tloustka_bocnice/2,0,-(vyska_bocnice/2)])
{
//složí k posunu otvoru v násobku děr
posun_pr1=4.2;
translate([0,posun_pr1*vzdalenost_der,0])
rotate(a=[0,0,90])
IR(tloustka_bocnice,vyska_bocnice);
posun_pr2=30;
translate([0,posun_pr2*vzdalenost_der,0])
rotate(a=[0,0,90])
I2CDIFF01A(tloustka_bocnice,vzdalenost_der);
posun_pr3=5.5;
translate([0,posun_pr3*vzdalenost_der,0])
rotate(a=[0,0,90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-7,vyska_bocnice);
posun_pr4=0;
translate([0,posun_pr4*vzdalenost_der,0])
rotate(a=[0,0,90])
CHLADICI_OTVORY2(tloustka_bocnice,vzdalenost_der,pocet_der1-7,vyska_bocnice);
}
}
}