/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX01A/CAD/assembly.scad
1,206 → 1,53
use <configuration/celicko.scad>
use <configuration/sloupek.scad>
use <configuration/lista.scad>
use <configuration/plbase.scad>
use <uravena_celicka.scad>
use <configuration/otvory.scad>
use <configuration/text/Write.scad>
 
 
include <configuration/manufactury_conf.scad>
include <configuration.scad>
include <configuration/otvory_conf.scad>
 
 
barva_sloupku = "cyan";
barva_listy = "red";
barva_celicka = "green";
barva_plbase = "yellow";
 
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
color(barva_sloupku)
translate([(-(pocet_der2+2)*vzdalenost_der)/2,0,0])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
//sloupek 2
color(barva_sloupku)
translate([((pocet_der2+2)*vzdalenost_der)/2,0,0])
rotate(a=[0,0,90])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
//sloupek 3
color(barva_sloupku)
translate([((pocet_der2+2)*vzdalenost_der)/2, (pocet_der1+2)*vzdalenost_der,0])
rotate(a=[0,0,180])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
//sloupek 4
color(barva_sloupku)
translate([-((pocet_der2+2)*vzdalenost_der)/2, (pocet_der1+2)*vzdalenost_der,0])
rotate(a=[0,0,270])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
 
//VELKE LISTY
//--------------------------------------------------------
//lista velka 1
color(barva_listy)
translate([0,-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),-vyska/2])
rotate(a=[0,0,0])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista velka 2
color(barva_listy)
translate([0,-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),vyska/2])
rotate(a=[180,0,180])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista velka 3
color(barva_listy)
translate([0,((pocet_der1+2)*vzdalenost_der)+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),vyska/2])
rotate(a=[180,0,0])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista velka 4
color(barva_listy)
translate([0,((pocet_der1+2)*vzdalenost_der)+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),-vyska/2])
rotate(a=[0,0,180])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
 
 
//LISTY MALE
//---------------------------------------------------------
//lista mala 1
color(barva_listy)
translate([((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),((pocet_der1+2)*vzdalenost_der)/2,-vyska/2])
rotate(a=[0,0,90])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista mala 2
color(barva_listy)
translate([((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),((pocet_der1+2)*vzdalenost_der)/2,vyska/2])
rotate(a=[0,180,90])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista mala 3
color(barva_listy)
translate([-(((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)),((pocet_der1+2)*vzdalenost_der)/2,vyska/2])
rotate(a=[0,180,270])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista mala 4
color(barva_listy)
translate([-(((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)),((pocet_der1+2)*vzdalenost_der)/2,-vyska/2])
rotate(a=[0,0,270])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//CELICKA
//--------------------------------------------------------
//celicko predni
 
color(barva_celicka)
translate([0,-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)-((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),-(vyska-2*zapust-vule_vysky_celicka)/2])
celicko_predni (vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
 
//celicko zadni
color(barva_celicka)
translate([0,((pocet_der1+2)*vzdalenost_der)+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)+((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),-(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[0,0,180])
celicko_zadni (vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
///*
//celicko prave
color(barva_celicka)
translate([((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)+((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),(pocet_der1+2)*vzdalenost_der/2,-(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[0,0,90])
celicko_prave (vyska,zapust,vule_vysky_celicka,pocet_der1,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
//*/
//celicko leve
color(barva_celicka)
translate([-((pocet_der2+2)*vzdalenost_der)/2-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)-((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),(pocet_der1+2)*vzdalenost_der/2,-(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[0,0,270])
celicko_leve (vyska,zapust,vule_vysky_celicka,pocet_der1,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
 
//PLBASE SPODNI
//-------------------------------------------------------------
color(barva_plbase)
//základní plbase bez nožiček
/*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,-(vyska/2)])
rotate(a=[180,0,90])
 
 
plbase(pocet_der1+3,pocet_der2+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
*/
 
//plbase s nožičkama
//*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,-((vyska/2))])
rotate(a=[180,0,90])
plbase_s_nozickama(pocet_der1+3,pocet_der2+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,vyska_nozicky,vyska_hlavy,prumer_hlavy);
//*/
 
//plbase se zápustnými šrouby
/*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,-(vyska/2)])
rotate(a=[180,0,90])
 
plbase_zapustene_srouby(pocet_der1+3,pocet_der2+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy);
*/
 
//PLBASE HORNI
//-------------------------------------------------------------
 
//základní plbase bez nožiček
 
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,2* vyska])
rotate(a=[0,0,0])
{
plbase_bez_der_napis(pocet_der2+3,pocet_der1+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,box_jmeno);
}
 
 
 
 
 
 
 
 
 
 
/*
 
 
//základní plbase bez nožiček
 
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,2* vyska])
rotate(a=[0,0,0])
{
plbase(pocet_der2+3,pocet_der1+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([ 0, 0, 0])
rotate([0,0,0])
write(box_jmeno,h=5,t=2, space= 1.1, font = "Letters.dxf",center=true);
 
}
//*/
//plbase se zapuštěním šroubů
/*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,(vyska/2)])
rotate(a=[0,0,0])
 
plbase_zapustene_srouby(pocet_der2+3,pocet_der1+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy);
*/
 
 
 
use <configuration/sloupek.scad>
use <configuration/plbase.scad>
use <configuration/bocnice.scad>
use <configuration/otvory.scad>
use <configuration/text/Write.scad>
use <upravena_bocnice.scad>
 
include <configuration/manufactury_conf.scad>
include <configuration.scad>
include <configuration/otvory_conf.scad>
 
 
barva_sloupku = "cyan";
barva_listy = "red";
barva_celicka = "green";
barva_plbase = "yellow";
 
//translate([0.5*10.16,-5.08,14])
// cube([10.16,10.16,10.16]);
 
 
//BOCNICE SE DNEM
//-------------------------------------------------------------
upravena_bocnice();
 
 
 
 
 
//PLBASE HORNI
//-------------------------------------------------------------
 
 
 
translate([plbase_tolerance_horni-0.2,+plbase_tolerance_horni-0.2,vyska_bocnice/2-tloustka_plbase/2])
rotate(a=[0,0,0])
{
//plbase_vrchni_kryt(pocet_der1+2,pocet_der2+2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,plbase_tolerance_horni);
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);
}
 
 
 
 
 
 
 
 
 
 
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX01A/CAD/configuration/manufactury_conf.scad
1,9 → 1,8
$fn=20; // model faces resolution.
 
//Sloupek - vyrobni parametry
zapust=4.5; //zápust ve sloupku pro listu
tolerance=0.1; //tolerance mezi zapusti v sloupku a v listě
zapust1=zapust+tolerance;
//Sroub - podpěra pro tisk sloupku
vyska_podpery=12;
vyska_mat_pod_matici=3;
 
//Sroub - parametry
vyska_hlavy = 3.5;
13,7 → 12,7
//Matice - parametry
prumer_matice=6; //hrany k hraně
vyska_matice=3; //vyska matice
posuv_dorazu=-0.5; //pro moznost posuvu dorazu pro vsunutí matice
posuv_dorazu=0.5; //pro moznost posuvu dorazu pro vsunutí matice
matice_sila_materialu=2; //sila materialu pod maticí na ose z
 
 
22,20 → 21,7
//rozměry výrezu v ose y
vzdalenost_od_diry = 5; //vzdalenost od stredu upevnovaci diry na druhou stranu
 
//rozmery vyrezu v ose x
vzdalenost_1 = 4.9; //od díry ke kraji
vzdalenost_2 = 5;
 
vyska_listy=2; //definuje výšku žlábku do kterého se vsunuje čelíčko
 
//parametry pro úžlabinu
sirka_materialu = 2; //sirka materialu od kraje desky k uzlabine
 
 
//Celicko
//--------------------------------------------------
vule_vysky_celicka =0.7; //definuje vůli celicka v liste
vule_delky_celicka =0.1;
tloustka_celicka = 2;
vule_tlousky = 0.2;
 
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX01A/CAD/configuration/otvory.scad
1,165 → 1,169
//Funkce otvuru pro ruzne prvky umistene do celicek
 
/*OBSAHUJE
1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku
1B) - Pro modul RS232SINGLE01A
1C) - Pro modul USBI2C01A
1D) - Pro konektor MIC338
1E) - Pro modul UNIPOWER02A
1F) - Pro modul I2CDIFF01A
*/
 
 
//1A) - LCD 2x16
//--------------------------------------------------------
module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
//otvor na LCD
translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2])
cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true);
 
//diry na srouby pro LCD
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
}
module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
union() {
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
}
}
 
 
/*1B) - Pro modul RS232SINGLE01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
RS232SINGLE01A_sirka_kon=32; //sirka konektoru
RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru
RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy])
cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true);
}
 
 
/*1C) - Pro modul USBI2C01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module USBI2C01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
USBI2C01A_sirka_kon=13; //sirka konektoru
USBI2C01A_vyska_kon=12; //vyska konektoru
USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,USBI2C01A_vyska_kon/2+vyska_listy])
cube(size = [USBI2C01A_sirka_kon,tloustka_celicka,USBI2C01A_vyska_kon], center = true);
}
 
/*1D) - Pro konektor MIC338
--------------------------------------------------------
--------------------------------------------------------
*/
//posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der
 
module MIC338(tloustka_celicka,vyska,zapust,vule_vysky_celicka,posun_od_kraje,vzdalenost_der)
{
MIC338_polomer_kon=8; //polomer montazniho otvoru
translate([posun_od_kraje*vzdalenost_der,0,(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[90,0,0])
cylinder(h=tloustka_celicka+0.1, r=MIC338_polomer_kon+0.1, center=true);
}
 
/*1E) - Pro modul UNIPOWER02A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
 
 
module UNIPOWER02A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
UNIPOWER02A_sirka_kon=9; //sirka konektoru
UNIPOWER02A_vyska_kon=11; //vyska konektoru
UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der
UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+posun_od_kraje*vzdalenost_der+UNIPOWER02A_vzdalenost_konektoru+UNIPOWER02A_sirka_kon/2,0,UNIPOWER02A_vyska_kon/2+vyska_listy])
cube(size = [UNIPOWER02A_sirka_kon,tloustka_celicka,UNIPOWER02A_vyska_kon], center = true);
}
/*1F) - Pro modul I2CDIFF01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module I2CDIFF01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
I2CDIFF01A_sirka_kon=19; //sirka konektoru
I2CDIFF01A_vyska_kon=16; //vyska konektoru
I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,I2CDIFF01A_vyska_kon/2+vyska_listy])
cube(size = [I2CDIFF01A_sirka_kon,tloustka_celicka,I2CDIFF01A_vyska_kon], center = true);
}
//Funkce otvuru pro ruzne prvky umistene do celicek
 
/*OBSAHUJE
1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku
1B) - Pro modul RS232SINGLE01A
1C) - Pro modul USBI2C01A
1D) - Pro konektor MIC338
1E) - Pro modul UNIPOWER02A
1F) - Pro modul I2CDIFF01A
*/
 
 
//1A) - LCD 2x16
//--------------------------------------------------------
module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
//otvor na LCD
translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2])
cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true);
 
//diry na srouby pro LCD
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
}
module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
union() {
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
}
}
 
 
/*1B) - Pro modul RS232SINGLE01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
RS232SINGLE01A_sirka_kon=32; //sirka konektoru
RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru
RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy])
cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true);
}
 
 
/*1C) - Pro modul USBI2C01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module USBI2C01A(tloustka_bocnice,vzdalenost_der) //uz upraveno
{
USBI2C01A_sirka_kon=12; //sirka konektoru
USBI2C01A_vyska_kon=11; //vyska konektoru
USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der
USBI2C01A_svyska_nad_plbase=6; //kolik modul zabira der
translate([vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2,0,USBI2C01A_vyska_kon/2+USBI2C01A_svyska_nad_plbase])
cube(size = [USBI2C01A_sirka_kon,tloustka_bocnice+0.2,USBI2C01A_vyska_kon], center = true);
}
 
/*1D) - Pro konektor MIC338
--------------------------------------------------------
--------------------------------------------------------
*/
//posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der
 
module MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice)
{
MIC338_polomer_kon=8; //polomer montazniho otvoru
translate([0,0,vyska_bocnice/2])
rotate(a=[90,0,0])
cylinder(h=tloustka_bocnice+0.1, r=MIC338_polomer_kon+0.1, center=true);
}
 
/*1E) - Pro modul UNIPOWER02A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
 
 
module UNIPOWER02A(tloustka_bocnice,vzdalenost_der)
{
UNIPOWER02A_sirka_kon=10; //sirka konektoru
UNIPOWER02A_vyska_kon=11; //vyska konektoru
UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der
UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu
UNIPOWER02A_vyska_nad_plbase=6; //vyska mezi albase a konektorem
translate([UNIPOWER02A_vzdalenost_konektoru,-tloustka_bocnice/2-0.05,UNIPOWER02A_vyska_nad_plbase])
cube(size = [UNIPOWER02A_sirka_kon,tloustka_bocnice+0.1,UNIPOWER02A_vyska_kon], center = false);
}
/*1F) - Pro modul I2CDIFF01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
 
module I2CDIFF01A(tloustka_bocnice,vzdalenost_der) //uz upraveno
{
I2CDIFF01A_sirka_kon=16.5; //sirka konektoru
I2CDIFF01A_vyska_kon=13.5; //vyska konektoru
I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der
I2CDIFF01A_vyska_nad_plbase=6; //vyska mezi albase a konektorem
translate([vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2,0,I2CDIFF01A_vyska_kon/2+I2CDIFF01A_vyska_nad_plbase])
cube(size = [I2CDIFF01A_sirka_kon,tloustka_bocnice+0.2,I2CDIFF01A_vyska_kon], center = true);
}
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX01A/CAD/configuration/plbase.scad
1,4 → 1,6
use <text/Write.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
/*
pocet_der1=5;
pocet_der2=3;
18,7 → 20,7
 
//PLBASE ZAKLADNI
//------------------------------------------------------------
module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der){
module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
 
difference () {
//union () {
25,7 → 27,7
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,tloustka_plbase]); // base plastics brick
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);
}
33,23 → 35,12
for (i = [0:1:pocet_der1-1]) {
for (a = [0:1:pocet_der2-1]) {
translate([vzdalenost_od_okraje+vzdalenost_der*i,vzdalenost_od_okraje+vzdalenost_der*a, (tloustka_plbase-prekryti_der)/2]) // center top screw
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);
}
}
translate([vzdalenost_od_okraje,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
 
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(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,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
}
}
 
168,7 → 159,7
}
//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){
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){
 
 
 
177,33 → 168,284
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,tloustka_plbase]); // base plastics brick
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, ((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany)/2, tloustka_plbase/2+1])
rotate([0,0,90])
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,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
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+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
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+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
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,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
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_zapustene_srouby(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy);
 
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
 
//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+2,pocet_der2+2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,-0.6);
 
//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){
 
difference () {
translate([0,((pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice)/2,0])
cube([(pocet_der2+3)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice,(pocet_der1+3)*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-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]); // 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);
 
 
 
 
 
 
}
}
 
 
 
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX01A/CAD/configuration/sloupek.scad
2,136 → 2,70
include <../configuration.scad>
use <MLAB_logo.scad>
 
//Funkce pro generovani sloupku
module sloupek(
vyska,
zapust,
vzdalenost_der,
vzdalenost_od_okraje,
vzdalenost_od_diry,
radidus_hrany,
prumer_sroubu,
prumer_matice,
vyska_matice,
posuv_dorazu,
matice_sila_materialu,logo_vyska,logo_sirka) {
sloupek ();
 
difference () {
union () {
color("green")
translate([-(vzdalenost_od_okraje-radidus_hrany),-(vzdalenost_od_okraje-radidus_hrany),0]) // center top screw
cylinder(vyska, d=(2*radidus_hrany), center=true);
 
color("cyan")
translate([vzdalenost_der/4, vzdalenost_der/4, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_der/2, vzdalenost_der/2], center = true);
//Funkce pro generovani sloupku
module sloupek() {
 
color("gray")
translate([-vzdalenost_od_okraje/2, vzdalenost_der/4, -vyska/2])
linear_extrude(height = vyska)
square([(vzdalenost_od_okraje), vzdalenost_der/2], center = true);
color("gray")
translate([vzdalenost_der/4, -vzdalenost_od_okraje/2, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_der/2, vzdalenost_od_okraje], center = true);
color("red")
translate([-(vzdalenost_od_okraje-radidus_hrany)/2, -vzdalenost_od_okraje/2, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_od_okraje-radidus_hrany, vzdalenost_od_okraje], center = true);
color("red")
translate([-vzdalenost_od_okraje/2,-(vzdalenost_od_okraje-radidus_hrany)/2, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_od_okraje, vzdalenost_od_okraje-radidus_hrany], center = true);
 
color("green")
translate([vzdalenost_der, -vzdalenost_od_okraje/2, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([vzdalenost_der, vzdalenost_od_okraje], center = true);
color("red")
translate([-vzdalenost_od_okraje/2,vzdalenost_der, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([ vzdalenost_od_okraje,vzdalenost_der], center = true);
difference () {
translate([-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,0])
minkowski()
{
cube([prumer_matice+2*tloustka_bocnice-2*radidus_hrany,prumer_matice+2*tloustka_bocnice-2*radidus_hrany,vyska_matice+2*tloustka_bocnice]); // base plastics brick
cylinder(r=radidus_hrany,h=0.1);
}
translate([0,0,vyska_matice+2*tloustka_bocnice+0.1-tloustka_bocnice/2+0.2])
cylinder((tloustka_bocnice), d=(prumer_sroubu), center=true);
cylinder((vyska_matice+2*tloustka_bocnice), d=(prumer_sroubu), center=true);
//otvor na matici
translate([0,tloustka_bocnice/2-posuv_dorazu/2,(vyska_matice+2*tloustka_bocnice)/2])
color("cyan")
translate([vzdalenost_od_diry/2, vzdalenost_der, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([(vzdalenost_od_diry), vzdalenost_der], center = true);
color("cyan")
translate([vzdalenost_der, vzdalenost_od_diry/2, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([vzdalenost_der, vzdalenost_od_diry ], center = true);
cube([prumer_matice, prumer_matice+posuv_dorazu+tloustka_bocnice,vyska_matice], center = true);
}
 
}
difference () {
translate([-(prumer_matice+2*tloustka_bocnice)/2,-(prumer_matice+2*tloustka_bocnice)/2,-vyska_podpery])
rotate([0, 0, 45])
cylinder(vyska_podpery,0,sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))),$fn=4);
difference () {
 
//diry na sroub
translate([0,0,0]) // center top screw
cylinder(2*vyska, d=(prumer_sroubu), center=true);
 
translate([vzdalenost_der,0,0]) // center top screw
cylinder(2*vyska, d=(prumer_sroubu), center=true);
 
translate([0,vzdalenost_der,0]) // center top screw
cylinder(2*vyska, d=(prumer_sroubu), center=true);
translate([-((sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2))),-((sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2))),-vyska_podpery])
cube([2*(sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2)),2*(sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2)),vyska_podpery+0.1]);
translate([-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,-vyska_podpery+0.05])
minkowski()
{
cube([prumer_matice+2*tloustka_bocnice-2*radidus_hrany,prumer_matice+2*tloustka_bocnice-2*radidus_hrany,vyska_podpery+0.01]); // base plastics brick
cylinder(r=radidus_hrany,h=0.1);
}
}
}
 
//diry na matice
//1. krajni matice
translate([vzdalenost_der,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
}
 
translate([vzdalenost_der,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),-(((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu)]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
 
 
//2. krajni matice
translate([(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)), vzdalenost_der,((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu]) // center top screw
cube([ prumer_matice+posuv_dorazu+vzdalenost_od_diry,prumer_matice,vyska_matice], center = true);
 
translate([(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)), vzdalenost_der,-(((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu)]) // center top screw
cube([ prumer_matice+posuv_dorazu+vzdalenost_od_diry,prumer_matice,vyska_matice], center = true);
 
//prostredni dira
translate([0,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),((vyska)/2-vyska_matice/2)-matice_sila_materialu]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
 
translate([0,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),-(((vyska)/2-vyska_matice/2)-matice_sila_materialu)]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
 
//----------------------------------------------------
//LOGO MLAB
union (){
translate ([5, -vzdalenost_od_okraje+1,0]) // ODROIDs passive components hole.
rotate([0, 90, 270])
scale(v = [logo_sirka, logo_vyska, 0.3])
MLAB_logo_short();
}
 
}
}
 
sloupek(
vyska,
zapust,
vzdalenost_der,
vzdalenost_od_okraje,
vzdalenost_od_diry,
radidus_hrany,
prumer_sroubu,
prumer_matice,
vyska_matice,
posuv_dorazu,
matice_sila_materialu,logo_vyska,logo_sirka);
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX01A/CAD/configuration.scad
1,37 → 1,41
//Název boxu (zařízení)
box_jmeno="TEFO01B";
 
//ALBASE1115
//------------------------------------------------------------
///*
vzdalenost_der = 10.16; //rozteč děr mezi sebou
radidus_hrany = 5; //radius zaobleni sloupku
 
//parametry lišty
vzdalenost_od_okraje = 8.88; //vzdalenost stredu upevnovaci diry od kraje desky
 
//mala hrana
pocet_der1 = 10; //pocet der desky, ponížené o 3
 
//velka hrana
pocet_der2 = 4; //pocet der desky, ponížené o 3
//*/
 
 
//OBECNE PARAMETRY KRABICKY
//------------------------------------------------------------
vyska = 40; //vyska celeho sloupku, pro zjisteni celkove vysky krabicky je potreba k teto vysce pricist tloustku 2xALBASE, nebo 2xPLBASE
 
//PLBASE PARAMETRY
//------------------------------------------------------------
tloustka_plbase = 2; //tloustka plbase
prekryti_der=0.3; //sila materiálu, který překrývá díry
 
//PRIPADNA VYSKA NOZICEK
//------------------------------------------------------------
vyska_nozicky=5;
 
//Rozmery loga MLAB
//------------------------------------------------------------
logo_vyska=0.15;
//Název boxu (zařízení)
box_jmeno="BASEBOX02A";
 
//ALBASE1115
//------------------------------------------------------------
///*
vzdalenost_der = 10.16; //rozteč děr mezi sebou
radidus_hrany = 3; //radius zaobleni sloupku
 
//parametry lišty
vzdalenost_od_okraje = 5.08; //vzdalenost stredu upevnovaci diry od kraje desky
 
//mala hrana
pocet_der1 = 5; //pocet děr v ose y
 
//velka hrana
pocet_der2 = 11; //pocet der v ose x
//*/
 
 
//OBECNE PARAMETRY KRABICKY
//------------------------------------------------------------
//BOCNICE
vyska_bocnice=30;
tloustka_bocnice=2;
 
//PLBASE PARAMETRY
//------------------------------------------------------------
tloustka_plbase = 2; //tloustka plbase
prekryti_der=0.3; //sila materiálu, který překrývá díry
 
plbase_tolerance_horni=0.0; //pro zvětšení tolerance aby tam šlo dát horní čelíčko
 
//PRIPADNA VYSKA NOZICEK
//------------------------------------------------------------
vyska_nozicky=5;
 
//Rozmery loga MLAB
//------------------------------------------------------------
logo_vyska=0.15;
logo_sirka=0.15;
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX02A_USB/CAD/assembly.scad
1,206 → 1,53
use <configuration/celicko.scad>
use <configuration/sloupek.scad>
use <configuration/lista.scad>
use <configuration/plbase.scad>
use <uravena_celicka.scad>
use <configuration/otvory.scad>
use <configuration/text/Write.scad>
 
 
include <configuration/manufactury_conf.scad>
include <configuration.scad>
include <configuration/otvory_conf.scad>
 
 
barva_sloupku = "cyan";
barva_listy = "red";
barva_celicka = "green";
barva_plbase = "yellow";
 
//SLOUPKY
//------------------------------------------------------------
//sloupek 1
color(barva_sloupku)
translate([(-(pocet_der2+2)*vzdalenost_der)/2,0,0])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
//sloupek 2
color(barva_sloupku)
translate([((pocet_der2+2)*vzdalenost_der)/2,0,0])
rotate(a=[0,0,90])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
//sloupek 3
color(barva_sloupku)
translate([((pocet_der2+2)*vzdalenost_der)/2, (pocet_der1+2)*vzdalenost_der,0])
rotate(a=[0,0,180])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
//sloupek 4
color(barva_sloupku)
translate([-((pocet_der2+2)*vzdalenost_der)/2, (pocet_der1+2)*vzdalenost_der,0])
rotate(a=[0,0,270])
sloupek (vyska,zapust1,vzdalenost_der,vzdalenost_od_okraje,vzdalenost_od_diry,radidus_hrany,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu,
logo_vyska,logo_sirka);
 
 
//VELKE LISTY
//--------------------------------------------------------
//lista velka 1
color(barva_listy)
translate([0,-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),-vyska/2])
rotate(a=[0,0,0])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista velka 2
color(barva_listy)
translate([0,-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),vyska/2])
rotate(a=[180,0,180])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista velka 3
color(barva_listy)
translate([0,((pocet_der1+2)*vzdalenost_der)+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),vyska/2])
rotate(a=[180,0,0])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista velka 4
color(barva_listy)
translate([0,((pocet_der1+2)*vzdalenost_der)+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),-vyska/2])
rotate(a=[0,0,180])
lista (vzdalenost_der,pocet_der2,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
 
 
//LISTY MALE
//---------------------------------------------------------
//lista mala 1
color(barva_listy)
translate([((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),((pocet_der1+2)*vzdalenost_der)/2,-vyska/2])
rotate(a=[0,0,90])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista mala 2
color(barva_listy)
translate([((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry),((pocet_der1+2)*vzdalenost_der)/2,vyska/2])
rotate(a=[0,180,90])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista mala 3
color(barva_listy)
translate([-(((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)),((pocet_der1+2)*vzdalenost_der)/2,vyska/2])
rotate(a=[0,180,270])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//lista mala 4
color(barva_listy)
translate([-(((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)),((pocet_der1+2)*vzdalenost_der)/2,-vyska/2])
rotate(a=[0,0,270])
lista (vzdalenost_der,pocet_der1,vzdalenost_od_okraje,vzdalenost_od_diry,vzdalenost_1,vzdalenost_2, zapust,vyska_listy,tloustka_celicka,sirka_materialu,vyska_hlavy,prumer_hlavy,prumer_sroubu,prumer_matice,vyska_matice,posuv_dorazu,matice_sila_materialu);
 
//CELICKA
//--------------------------------------------------------
//celicko predni
 
color(barva_celicka)
translate([0,-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)-((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),-(vyska-2*zapust-vule_vysky_celicka)/2])
celicko_predni (vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
 
//celicko zadni
color(barva_celicka)
translate([0,((pocet_der1+2)*vzdalenost_der)+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)+((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),-(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[0,0,180])
celicko_zadni (vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
///*
//celicko prave
color(barva_celicka)
translate([((pocet_der2+2)*vzdalenost_der)/2+(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)+((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),(pocet_der1+2)*vzdalenost_der/2,-(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[0,0,90])
celicko_prave (vyska,zapust,vule_vysky_celicka,pocet_der1,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
//*/
//celicko leve
color(barva_celicka)
translate([-((pocet_der2+2)*vzdalenost_der)/2-(((vzdalenost_od_diry+vzdalenost_od_okraje)/2)-vzdalenost_od_diry)-((((vzdalenost_od_okraje+vzdalenost_od_diry)/2)-sirka_materialu)-(tloustka_celicka/2)),(pocet_der1+2)*vzdalenost_der/2,-(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[0,0,270])
celicko_leve (vyska,zapust,vule_vysky_celicka,pocet_der1,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky);
 
//PLBASE SPODNI
//-------------------------------------------------------------
color(barva_plbase)
//základní plbase bez nožiček
/*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,-(vyska/2)])
rotate(a=[180,0,90])
 
 
plbase(pocet_der1+3,pocet_der2+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
*/
 
//plbase s nožičkama
//*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,-((vyska/2))])
rotate(a=[180,0,90])
plbase_s_nozickama(pocet_der1+3,pocet_der2+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,vyska_nozicky,vyska_hlavy,prumer_hlavy);
//*/
 
//plbase se zápustnými šrouby
/*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,-(vyska/2)])
rotate(a=[180,0,90])
 
plbase_zapustene_srouby(pocet_der1+3,pocet_der2+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy);
*/
 
//PLBASE HORNI
//-------------------------------------------------------------
 
//základní plbase bez nožiček
 
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,2* vyska])
rotate(a=[0,0,0])
{
plbase_bez_der_napis(pocet_der2+3,pocet_der1+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,box_jmeno);
}
 
 
 
 
 
 
 
 
 
 
/*
 
 
//základní plbase bez nožiček
 
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,2* vyska])
rotate(a=[0,0,0])
{
plbase(pocet_der2+3,pocet_der1+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der);
translate([ 0, 0, 0])
rotate([0,0,0])
write(box_jmeno,h=5,t=2, space= 1.1, font = "Letters.dxf",center=true);
 
}
//*/
//plbase se zapuštěním šroubů
/*
translate([-((pocet_der2+2)*vzdalenost_der+2*vzdalenost_od_okraje)/2,-vzdalenost_od_okraje,(vyska/2)])
rotate(a=[0,0,0])
 
plbase_zapustene_srouby(pocet_der2+3,pocet_der1+3,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy);
*/
 
 
 
use <configuration/sloupek.scad>
use <configuration/plbase.scad>
use <configuration/bocnice.scad>
use <configuration/otvory.scad>
use <configuration/text/Write.scad>
use <upravena_bocnice.scad>
 
include <configuration/manufactury_conf.scad>
include <configuration.scad>
include <configuration/otvory_conf.scad>
 
 
barva_sloupku = "cyan";
barva_listy = "red";
barva_celicka = "green";
barva_plbase = "yellow";
 
//translate([0.5*10.16,-5.08,14])
// cube([10.16,10.16,10.16]);
 
 
//BOCNICE SE DNEM
//-------------------------------------------------------------
upravena_bocnice();
 
 
 
 
 
//PLBASE HORNI
//-------------------------------------------------------------
 
 
 
translate([plbase_tolerance_horni-0.2,+plbase_tolerance_horni-0.2,vyska_bocnice/2-tloustka_plbase/2])
rotate(a=[0,0,0])
{
//plbase_vrchni_kryt(pocet_der1+2,pocet_der2+2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,plbase_tolerance_horni);
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);
}
 
 
 
 
 
 
 
 
 
 
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX02A_USB/CAD/configuration/manufactury_conf.scad
1,9 → 1,8
$fn=20; // model faces resolution.
 
//Sloupek - vyrobni parametry
zapust=4.5; //zápust ve sloupku pro listu
tolerance=0.1; //tolerance mezi zapusti v sloupku a v listě
zapust1=zapust+tolerance;
//Sroub - podpěra pro tisk sloupku
vyska_podpery=12;
vyska_mat_pod_matici=3;
 
//Sroub - parametry
vyska_hlavy = 3.5;
13,7 → 12,7
//Matice - parametry
prumer_matice=6; //hrany k hraně
vyska_matice=3; //vyska matice
posuv_dorazu=-0.5; //pro moznost posuvu dorazu pro vsunutí matice
posuv_dorazu=0.5; //pro moznost posuvu dorazu pro vsunutí matice
matice_sila_materialu=2; //sila materialu pod maticí na ose z
 
 
22,20 → 21,7
//rozměry výrezu v ose y
vzdalenost_od_diry = 5; //vzdalenost od stredu upevnovaci diry na druhou stranu
 
//rozmery vyrezu v ose x
vzdalenost_1 = 4.9; //od díry ke kraji
vzdalenost_2 = 5;
 
vyska_listy=2; //definuje výšku žlábku do kterého se vsunuje čelíčko
 
//parametry pro úžlabinu
sirka_materialu = 2; //sirka materialu od kraje desky k uzlabine
 
 
//Celicko
//--------------------------------------------------
vule_vysky_celicka =0.7; //definuje vůli celicka v liste
vule_delky_celicka =0.1;
tloustka_celicka = 2;
vule_tlousky = 0.2;
 
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX02A_USB/CAD/configuration/otvory.scad
1,165 → 1,168
//Funkce otvuru pro ruzne prvky umistene do celicek
 
/*OBSAHUJE
1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku
1B) - Pro modul RS232SINGLE01A
1C) - Pro modul USBI2C01A
1D) - Pro konektor MIC338
1E) - Pro modul UNIPOWER02A
1F) - Pro modul I2CDIFF01A
*/
 
 
//1A) - LCD 2x16
//--------------------------------------------------------
module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
//otvor na LCD
translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2])
cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true);
 
//diry na srouby pro LCD
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
}
module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
union() {
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
}
}
 
 
/*1B) - Pro modul RS232SINGLE01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
RS232SINGLE01A_sirka_kon=32; //sirka konektoru
RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru
RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy])
cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true);
}
 
 
/*1C) - Pro modul USBI2C01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module USBI2C01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
USBI2C01A_sirka_kon=13; //sirka konektoru
USBI2C01A_vyska_kon=12; //vyska konektoru
USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,USBI2C01A_vyska_kon/2+vyska_listy])
cube(size = [USBI2C01A_sirka_kon,tloustka_celicka,USBI2C01A_vyska_kon], center = true);
}
 
/*1D) - Pro konektor MIC338
--------------------------------------------------------
--------------------------------------------------------
*/
//posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der
 
module MIC338(tloustka_celicka,vyska,zapust,vule_vysky_celicka,posun_od_kraje,vzdalenost_der)
{
MIC338_polomer_kon=8; //polomer montazniho otvoru
translate([posun_od_kraje*vzdalenost_der,0,(vyska-2*zapust-vule_vysky_celicka)/2])
rotate(a=[90,0,0])
cylinder(h=tloustka_celicka+0.1, r=MIC338_polomer_kon+0.1, center=true);
}
 
/*1E) - Pro modul UNIPOWER02A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
 
 
module UNIPOWER02A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
UNIPOWER02A_sirka_kon=13; //sirka konektoru
UNIPOWER02A_vyska_kon=11; //vyska konektoru
UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der
UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+posun_od_kraje*vzdalenost_der+UNIPOWER02A_vzdalenost_konektoru+UNIPOWER02A_sirka_kon/2,0,UNIPOWER02A_vyska_kon/2+vyska_listy])
cube(size = [UNIPOWER02A_sirka_kon,tloustka_celicka,UNIPOWER02A_vyska_kon], center = true);
}
/*1F) - Pro modul I2CDIFF01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module I2CDIFF01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
I2CDIFF01A_sirka_kon=19; //sirka konektoru
I2CDIFF01A_vyska_kon=16; //vyska konektoru
I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,I2CDIFF01A_vyska_kon/2+vyska_listy])
cube(size = [I2CDIFF01A_sirka_kon,tloustka_celicka,I2CDIFF01A_vyska_kon], center = true);
}
//Funkce otvuru pro ruzne prvky umistene do celicek
 
/*OBSAHUJE
1A) - LCD 2x16 - urceno pro montaz LCD 2x16 znaku
1B) - Pro modul RS232SINGLE01A
1C) - Pro modul USBI2C01A
1D) - Pro konektor MIC338
1E) - Pro modul UNIPOWER02A
1F) - Pro modul I2CDIFF01A
*/
 
 
//1A) - LCD 2x16
//--------------------------------------------------------
module otvor_LCD2_16_diry(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
//otvor na LCD
translate([0,0,(vyska-2*zapust-vule_vysky_celicka)/2])
cube(size = [ramecek_x,tloustka_celicka,ramecek_y], center = true);
 
//diry na srouby pro LCD
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska+0.2, r=(prumer_otvoru/2), center=true);
}
module otvor_LCD2_16_sloupky(vyska,zapust,vule_vysky_celicka,pocet_der2,vzdalenost_der,vule_delky_celicka,tloustka_celicka,vule_tlousky,vyska_listy,vzdalenost_der_x,vzdalenost_der_y,prumer_otvoru,prumer_sloupku,ramecek_x,ramecek_y,ramecek_vyska)
{
union() {
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
 
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)+vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
translate([-vzdalenost_der_x/2,(ramecek_vyska/2-((tloustka_celicka-vule_tlousky)/2)),(((vyska-2*zapust-vule_vysky_celicka)/2)-vzdalenost_der_y/2)])
rotate(a=[90,0,0])
cylinder(h=ramecek_vyska, r=(prumer_sloupku/2), center=true);
}
}
 
 
/*1B) - Pro modul RS232SINGLE01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module RS232SINGLE01A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
RS232SINGLE01A_sirka_kon=32; //sirka konektoru
RS232SINGLE01A_vyska_kon=13.5; //vyska konektoru
RS232SINGLE01A_sirka_mod_otvory=5; //kolik modul zabira der
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+vzdalenost_der*(RS232SINGLE01A_sirka_mod_otvory-1)/2+posun_od_kraje*vzdalenost_der,0,RS232SINGLE01A_vyska_kon/2+vyska_listy])
cube(size = [RS232SINGLE01A_sirka_kon,tloustka_celicka,RS232SINGLE01A_vyska_kon], center = true);
}
 
 
/*1C) - Pro modul USBI2C01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
module USBI2C01A(tloustka_bocnice,vzdalenost_der) //uz upraveno
{
USBI2C01A_sirka_kon=12; //sirka konektoru
USBI2C01A_vyska_kon=11; //vyska konektoru
USBI2C01A_sirka_mod_otvory=3; //kolik modul zabira der
USBI2C01A_svyska_nad_plbase=6; //kolik modul zabira der
translate([vzdalenost_der*(USBI2C01A_sirka_mod_otvory-1)/2,0,USBI2C01A_vyska_kon/2+USBI2C01A_svyska_nad_plbase])
cube(size = [USBI2C01A_sirka_kon,tloustka_bocnice+0.2,USBI2C01A_vyska_kon], center = true);
}
 
/*1D) - Pro konektor MIC338
--------------------------------------------------------
--------------------------------------------------------
*/
//posun_od_okraje - zadava se o kolik der se ma posunot otvor od středu celicka v nasobcich roztece der
 
module MIC338(tloustka_bocnice,vzdalenost_der,vyska_bocnice)
{
MIC338_polomer_kon=8; //polomer montazniho otvoru
translate([0,0,vyska_bocnice/2])
rotate(a=[90,0,0])
cylinder(h=tloustka_bocnice+0.1, r=MIC338_polomer_kon+0.1, center=true);
}
 
/*1E) - Pro modul UNIPOWER02A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje rozec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
 
 
module UNIPOWER02A(tloustka_celicka,pocet_der_dane_strany,posun_od_kraje,vzdalenost_der,vyska_listy)
{
UNIPOWER02A_sirka_kon=13; //sirka konektoru
UNIPOWER02A_vyska_kon=11; //vyska konektoru
UNIPOWER02A_sirka_mod_otvory=4; //kolik modul zabira der
UNIPOWER02A_vzdalenost_konektoru=6; //vzdalenost kraje konektoru od středu šroubu
translate([-(pocet_der_dane_strany-1)*vzdalenost_der/2+1*vzdalenost_der+posun_od_kraje*vzdalenost_der+UNIPOWER02A_vzdalenost_konektoru+UNIPOWER02A_sirka_kon/2,0,UNIPOWER02A_vyska_kon/2+vyska_listy])
cube(size = [UNIPOWER02A_sirka_kon,tloustka_celicka,UNIPOWER02A_vyska_kon], center = true);
}
/*1F) - Pro modul I2CDIFF01A
--------------------------------------------------------
--------------------------------------------------------
pocet_der_dane_strany - protoze nelze definovat na jake strane bude dira umistena, proto se musí rucne zadat pocet der zvolene strany krabicky
posun_od_okraje - zadava se o kolik der se ma posunot modul od kraje celicka
vzdalenost_der - definuje roztec der
 
modul na dvou matkách má vysku 6.5 mm, pokud nebudo zasahne do nastaveni list krabicky, bude nutno zvednout vysku modulu.
 
*/
 
 
module I2CDIFF01A(tloustka_bocnice,vzdalenost_der) //uz upraveno
{
I2CDIFF01A_sirka_kon=16.5; //sirka konektoru
I2CDIFF01A_vyska_kon=13.5; //vyska konektoru
I2CDIFF01A_sirka_mod_otvory=4; //kolik modul zabira der
I2CDIFF01A_svyska_nad_plbase=6; //kolik modul zabira der
translate([vzdalenost_der*(I2CDIFF01A_sirka_mod_otvory-1)/2,0,I2CDIFF01A_vyska_kon/2+I2CDIFF01A_svyska_nad_plbase])
cube(size = [I2CDIFF01A_sirka_kon,tloustka_bocnice+0.2,I2CDIFF01A_vyska_kon], center = true);
}
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX02A_USB/CAD/configuration/plbase.scad
1,4 → 1,6
use <text/Write.scad>
include <manufactury_conf.scad>
include <../configuration.scad>
/*
pocet_der1=5;
pocet_der2=3;
18,7 → 20,7
 
//PLBASE ZAKLADNI
//------------------------------------------------------------
module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der){
module plbase(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,tloustka_plbase,prekryti_der,tloustka_bocnice){
 
difference () {
//union () {
25,7 → 27,7
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,tloustka_plbase]); // base plastics brick
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);
}
33,23 → 35,12
for (i = [0:1:pocet_der1-1]) {
for (a = [0:1:pocet_der2-1]) {
translate([vzdalenost_od_okraje+vzdalenost_der*i,vzdalenost_od_okraje+vzdalenost_der*a, (tloustka_plbase-prekryti_der)/2]) // center top screw
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);
}
}
translate([vzdalenost_od_okraje,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
 
translate([vzdalenost_od_okraje+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(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,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
cylinder(((tloustka_plbase+0.3)), d=prumer_sroubu, center=true);
}
}
 
168,7 → 159,7
}
//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){
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){
 
 
 
177,33 → 168,284
translate([radidus_hrany,radidus_hrany,0])
minkowski()
{
cube([(pocet_der1-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,(pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany,tloustka_plbase]); // base plastics brick
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, ((pocet_der2-1)*vzdalenost_der+2*vzdalenost_od_okraje-2*radidus_hrany)/2, tloustka_plbase/2+1])
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,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
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+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje, (tloustka_plbase/2)]) // center top screw
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+(pocet_der1-1)*vzdalenost_der,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
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,vzdalenost_od_okraje+(pocet_der2-1)*vzdalenost_der, (tloustka_plbase/2)]) // center top screw
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_zapustene_srouby(pocet_der1,pocet_der2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_hlavy,prekryti_der,prumer_hlavy);
 
nozicka (vzdalenost_der,vyska_nozicky,prumer_sroubu,vyska_hlavy,prumer_hlavy);
 
//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+2,pocet_der2+2,radidus_hrany,vzdalenost_der,vzdalenost_od_okraje,prumer_sroubu,vyska_bocnice,prekryti_der,tloustka_bocnice,-0.6);
 
//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){
 
difference () {
translate([0,((pocet_der1)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice)/2,0])
cube([(pocet_der2+3)*vzdalenost_der+2*vzdalenost_od_okraje+2*tloustka_bocnice,(pocet_der1+3)*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-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]); // 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);
 
 
 
 
 
 
}
}
 
 
 
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX02A_USB/CAD/configuration/sloupek.scad
2,136 → 2,70
include <../configuration.scad>
use <MLAB_logo.scad>
 
//Funkce pro generovani sloupku
module sloupek(
vyska,
zapust,
vzdalenost_der,
vzdalenost_od_okraje,
vzdalenost_od_diry,
radidus_hrany,
prumer_sroubu,
prumer_matice,
vyska_matice,
posuv_dorazu,
matice_sila_materialu,logo_vyska,logo_sirka) {
sloupek ();
 
difference () {
union () {
color("green")
translate([-(vzdalenost_od_okraje-radidus_hrany),-(vzdalenost_od_okraje-radidus_hrany),0]) // center top screw
cylinder(vyska, d=(2*radidus_hrany), center=true);
 
color("cyan")
translate([vzdalenost_der/4, vzdalenost_der/4, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_der/2, vzdalenost_der/2], center = true);
//Funkce pro generovani sloupku
module sloupek() {
 
color("gray")
translate([-vzdalenost_od_okraje/2, vzdalenost_der/4, -vyska/2])
linear_extrude(height = vyska)
square([(vzdalenost_od_okraje), vzdalenost_der/2], center = true);
color("gray")
translate([vzdalenost_der/4, -vzdalenost_od_okraje/2, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_der/2, vzdalenost_od_okraje], center = true);
color("red")
translate([-(vzdalenost_od_okraje-radidus_hrany)/2, -vzdalenost_od_okraje/2, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_od_okraje-radidus_hrany, vzdalenost_od_okraje], center = true);
color("red")
translate([-vzdalenost_od_okraje/2,-(vzdalenost_od_okraje-radidus_hrany)/2, -vyska/2])
linear_extrude(height = vyska)
square([vzdalenost_od_okraje, vzdalenost_od_okraje-radidus_hrany], center = true);
 
color("green")
translate([vzdalenost_der, -vzdalenost_od_okraje/2, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([vzdalenost_der, vzdalenost_od_okraje], center = true);
color("red")
translate([-vzdalenost_od_okraje/2,vzdalenost_der, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([ vzdalenost_od_okraje,vzdalenost_der], center = true);
difference () {
translate([-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,0])
minkowski()
{
cube([prumer_matice+2*tloustka_bocnice-2*radidus_hrany,prumer_matice+2*tloustka_bocnice-2*radidus_hrany,vyska_matice+2*tloustka_bocnice]); // base plastics brick
cylinder(r=radidus_hrany,h=0.1);
}
translate([0,0,vyska_matice+2*tloustka_bocnice+0.1-tloustka_bocnice/2+0.2])
cylinder((tloustka_bocnice), d=(prumer_sroubu), center=true);
cylinder((vyska_matice+2*tloustka_bocnice), d=(prumer_sroubu), center=true);
//otvor na matici
translate([0,tloustka_bocnice/2-posuv_dorazu/2,(vyska_matice+2*tloustka_bocnice)/2])
color("cyan")
translate([vzdalenost_od_diry/2, vzdalenost_der, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([(vzdalenost_od_diry), vzdalenost_der], center = true);
color("cyan")
translate([vzdalenost_der, vzdalenost_od_diry/2, -(vyska-(2*zapust))/2])
linear_extrude(height = (vyska-(2*zapust)))
square([vzdalenost_der, vzdalenost_od_diry ], center = true);
cube([prumer_matice, prumer_matice+posuv_dorazu+tloustka_bocnice,vyska_matice], center = true);
}
 
}
difference () {
translate([-(prumer_matice+2*tloustka_bocnice)/2,-(prumer_matice+2*tloustka_bocnice)/2,-vyska_podpery])
rotate([0, 0, 45])
cylinder(vyska_podpery,0,sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))),$fn=4);
difference () {
 
//diry na sroub
translate([0,0,0]) // center top screw
cylinder(2*vyska, d=(prumer_sroubu), center=true);
 
translate([vzdalenost_der,0,0]) // center top screw
cylinder(2*vyska, d=(prumer_sroubu), center=true);
 
translate([0,vzdalenost_der,0]) // center top screw
cylinder(2*vyska, d=(prumer_sroubu), center=true);
translate([-((sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2))),-((sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2))),-vyska_podpery])
cube([2*(sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2)),2*(sqrt(2*((prumer_matice+2*tloustka_bocnice)*(prumer_matice+2*tloustka_bocnice))*2)),vyska_podpery+0.1]);
translate([-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,-(prumer_matice+2*tloustka_bocnice-2*radidus_hrany)/2,-vyska_podpery+0.05])
minkowski()
{
cube([prumer_matice+2*tloustka_bocnice-2*radidus_hrany,prumer_matice+2*tloustka_bocnice-2*radidus_hrany,vyska_podpery+0.01]); // base plastics brick
cylinder(r=radidus_hrany,h=0.1);
}
}
}
 
//diry na matice
//1. krajni matice
translate([vzdalenost_der,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
}
 
translate([vzdalenost_der,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),-(((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu)]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
 
 
//2. krajni matice
translate([(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)), vzdalenost_der,((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu]) // center top screw
cube([ prumer_matice+posuv_dorazu+vzdalenost_od_diry,prumer_matice,vyska_matice], center = true);
 
translate([(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)), vzdalenost_der,-(((vyska-2*zapust)/2-vyska_matice/2)-matice_sila_materialu)]) // center top screw
cube([ prumer_matice+posuv_dorazu+vzdalenost_od_diry,prumer_matice,vyska_matice], center = true);
 
//prostredni dira
translate([0,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),((vyska)/2-vyska_matice/2)-matice_sila_materialu]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
 
translate([0,(((((prumer_matice)/2)+posuv_dorazu+vzdalenost_od_diry)/2)-(posuv_dorazu+prumer_matice/2)),-(((vyska)/2-vyska_matice/2)-matice_sila_materialu)]) // center top screw
cube([prumer_matice, prumer_matice+posuv_dorazu+vzdalenost_od_diry,vyska_matice], center = true);
 
//----------------------------------------------------
//LOGO MLAB
union (){
translate ([5, -vzdalenost_od_okraje+1,0]) // ODROIDs passive components hole.
rotate([0, 90, 270])
scale(v = [logo_sirka, logo_vyska, 0.3])
MLAB_logo_short();
}
 
}
}
 
sloupek(
vyska,
zapust,
vzdalenost_der,
vzdalenost_od_okraje,
vzdalenost_od_diry,
radidus_hrany,
prumer_sroubu,
prumer_matice,
vyska_matice,
posuv_dorazu,
matice_sila_materialu,logo_vyska,logo_sirka);
/Designs/ROBOTS/TEFO01B/CAD/TEFO01B_BOX02A_USB/CAD/configuration.scad
1,38 → 1,41
//Název boxu (zařízení)
box_jmeno="TEFO01B";
 
 
//ALBASE1115
//------------------------------------------------------------
///*
vzdalenost_der = 10.16; //rozteč děr mezi sebou
radidus_hrany = 5; //radius zaobleni sloupku
 
//parametry lišty
vzdalenost_od_okraje = 8.88; //vzdalenost stredu upevnovaci diry od kraje desky
 
//mala hrana
pocet_der1 = 4; //pocet der desky, ponížené o 3
 
//velka hrana
pocet_der2 = 10; //pocet der desky, ponížené o 3
//*/
 
 
//OBECNE PARAMETRY KRABICKY
//------------------------------------------------------------
vyska = 40; //vyska celeho sloupku, pro zjisteni celkove vysky krabicky je potreba k teto vysce pricist tloustku 2xALBASE, nebo 2xPLBASE
 
//PLBASE PARAMETRY
//------------------------------------------------------------
tloustka_plbase = 2; //tloustka plbase
prekryti_der=0.3; //sila materiálu, který překrývá díry
 
//PRIPADNA VYSKA NOZICEK
//------------------------------------------------------------
vyska_nozicky=5;
 
//Rozmery loga MLAB
//------------------------------------------------------------
logo_vyska=0.15;
//Název boxu (zařízení)
box_jmeno="BASEBOX02A";
 
//ALBASE1115
//------------------------------------------------------------
///*
vzdalenost_der = 10.16; //rozteč děr mezi sebou
radidus_hrany = 3; //radius zaobleni sloupku
 
//parametry lišty
vzdalenost_od_okraje = 5.08; //vzdalenost stredu upevnovaci diry od kraje desky
 
//mala hrana
pocet_der1 = 4; //pocet děr v ose y
 
//velka hrana
pocet_der2 = 4; //pocet der v ose x
//*/
 
 
//OBECNE PARAMETRY KRABICKY
//------------------------------------------------------------
//BOCNICE
vyska_bocnice=30;
tloustka_bocnice=2;
 
//PLBASE PARAMETRY
//------------------------------------------------------------
tloustka_plbase = 2; //tloustka plbase
prekryti_der=0.3; //sila materiálu, který překrývá díry
 
plbase_tolerance_horni=0.0; //pro zvětšení tolerance aby tam šlo dát horní čelíčko
 
//PRIPADNA VYSKA NOZICEK
//------------------------------------------------------------
vyska_nozicky=5;
 
//Rozmery loga MLAB
//------------------------------------------------------------
logo_vyska=0.15;
logo_sirka=0.15;