Com a pandemia do COVID19, e a escassez de EPI’s e EPC’s muitos grupos pelo Brasil a fora começaram a fazer protetores faciais em impressoras 3D, maravilhoso, porem estão utilizado um modelo muito bom mas muito complexo e de tamanho único. A principio eu tentei usar este modelo em minha RepRap, mas como troquei a extrusora recentemente e ela não esta imprimindo em toda a bandeja térmica, e o confinamento limita a aquisição de peças, tive que fazer o modelo do zero usando o OpenScad. Um programa totalmente open source e que usa scripts e matemática para criar os sólidos geométricos e ate animados, como sua linguagem única é muito bom para projetos como desenho mecânico que podem ser modificados facilmente e que depois de compilados podem ser exportados em diversos formatos.
Por padrão as unidades do OpenScad são em milímetros e para facilitar uso três variáveis que definem o tamanho da aba interna, que se prende a cabeça, e anel externo onde se fixa a película transparente uma que define o tamanho dos suportes laterais.
$fn=200;
//anel interno
//variaveis
D1 = 80; // 8,00cm
D2 = 90; // 9,00cm
A1 =23; //2,30 cm
difference(1){
union() {
translate([0,0,0]) cylinder(r= D1 ,h=16,center=true);
translate([D1-5, -26, -5]) rotate (a=[90, 0, 76]) linear_extrude(2) text("S");
translate([D1-2, -17, -5]) rotate (a=[90, 0, 77]) linear_extrude(2) text("U");
translate([D1-1, -8, -5]) rotate (a=[90, 0, 83]) linear_extrude(2) text("S");
}
translate([0,0,0]) cylinder(r=D1 -1.5 ,h=30,center=true);
translate([-100,0,-20]) cube([200,200,40], center);
}
//anel externo
difference(2){
union() {
translate([0,-30,0]) cylinder(r=D2 ,h=16,center=true);
//pino centro
translate([00,-D2 -30,-5.5]) rotate(a=[90, 00, 0]) cylinder(r=2 ,h=10,center=true);
//pino esquerdo
translate([-D2,-43,-5.5]) rotate(a=[90, 0, -90]) cylinder(r=2 ,h=8,center=true);
//pino direito
translate([D2,-43,-5.5]) rotate(a=[90, 0, 90]) cylinder(r=2 ,h=8,center=true);
}
translate([0,-30,0]) cylinder(r=D2-1.5 ,h=30,center=true);
//Furo nas abas, retire os comentarios //
//translate([0,-D2-30,3]) rotate(a=[90, 0, 00]) cylinder(r=1.5 ,h=10,center=true);
//translate([-94,-45,3]) rotate(a=[90, 0, -90]) cylinder(r=1.5 ,h=8,center=true);
//translate([94,-45,3]) rotate(a=[90, 0, 90]) cylinder(r=1,5 ,h=8,center=true);
//corte das abas use "%"na frente da estrutura p vizualizar
translate([-D1 -100,0,-20]) cube([400,400,40], center);
translate([-D1 -100,-30,-20]) cube([100,70,40], center);
translate([ D1 ,-30,-20]) cube([100,70,40], center);
}
//suportes centro
difference(){
union() {
translate([-1,-D2-29,-8]) cube([2,D2-D1+30,9]);
//translate([00,-D2 -30,-5.5]) rotate(a=[90, 00, 0]) cylinder(r=2 ,h=8,center=true);
}
}
//suportes esquerda
difference(SE){
union() {
translate([-D2 +2.5,-45,-8]) rotate(a=[0, 0, -90]) cube([2,A1,13]);
}
translate([0,0,0]) cylinder(r=D1 -1.5 ,h=30,center=true);
}
//suportes direita
difference(SD){
union() {
translate([D2-2.5,-47,-8]) rotate(a=[0, 0, 90]) cube([2,A1,13]);
}
translate([0,0,0]) cylinder(r=D1 -1.5 ,h=30,center=true);
}
//Abas elastico
difference(2){
union() {
translate([D1 -1.5,0,-8]) cube([2,15,16], center);
}
//Furo aba direita
//retamgular
//translate([D1 -3,8,-5]) cube([10,2,9], center);
//circular
translate([D1 -2,8,0]) rotate (a=[90, 0, 90]) cylinder(r=2 ,h=8,center=true);
}
difference(2){
union() { translate([-D1 -.5,0,-8]) cube([2,15,16], center);
}
//Furo aba esquerda
//retangular
//translate([-D1 -5,8,-5]) cube([10,2,9], center);
//circular
translate([-D1 -2,8,0]) rotate (a=[90, 0, 90]) cylinder(r=2 ,h=8,center=true);
}
//AHOY!!! visite www.partidopirata.org
Se preferir pode baixar os arquivos compilados diretamente. Aqui.