// Composantes pour la mini cuve // allviews support plaque1-gauche plaque1-droite // printviews support:y4,h30 // allviews plaque2-gauche plaque2-droite // allviews distributeur support-plaque // viewopts distributeur h2 // testviews tranche test-distributeur asm-plaques test-plaque1 test-plaque2 // testviews devidoir // pour design // allviews devidoir-print // viewopts devidoir-print h2 support // allviews devidoir-guide // pour découper // testviews devidoir-guide-test // Compare avec devidoir // PLan de coupe pour mini cuve contenant 2 mineurs et 2 blocs d'alimentation // testviews mini2-base mini2-fin mini2-asm include use module support(){ cube([20,10,30]); translate([0,0,25]) cube([30,10,5]); translate([20,0,25]) rotate([-90,0,0]) triangle_rectangle(10,15,10); } ray=12/2; thick=2; height=30; // Hauteur des mineurs dans la cuve module coude_ext(){ rotate_extrude(angle=90,$fn=80) translate([20,0,0]) circle(r=ray); } module coude_int(){ rotate([0,0,-1]) rotate_extrude(angle=92,$fn=80) translate([20,0,0]) circle(r=ray-thick); } module coude(exterieur){ if (exterieur){ coude_ext(); }else{ coude_int(); } } module tube0(len,bosse,exterieur){ if (exterieur){ cylinder(r=ray,h=len,$fn=80); if (bosse){ for (z=[1:3]){ translate([0,0,len/3*z-5]) rotate_extrude(angle=360,$fn=40) translate([ray-0.75,0,0]) circle(r=1); } } }else{ translate([0,0,-1]) cylinder(r=ray-thick,h=len+2,$fn=80); } } module tube(len,bosse,exterieur){ difference(){ tube0(len,bosse,true); tube0(len,bosse,false); } } mineur_width=130; module distrib(mineurw,exterieur){ translate([0,20,20]) rotate([-90,90,90]) coude(exterieur); translate([0,0,20]) tube0(50,true,exterieur); translate([0,20,0]) rotate([-90,0,0]) tube0(30,false,exterieur); // Le distributeur combine 2 coudes translate([0,20+30,0]){ translate([-20,0,0]) coude(exterieur); translate([20,0,0]) rotate([0,0,90]) coude(exterieur); } // Il y a 3 mineurs un à coté de l'autre // On veut sortir le liquide de chaque coté du mineur du centre // mais légèrement décalé vers les mineurs extérieur (20 mm) // Nos coudes font 20 mm de rayon. l1=mineurw/2-20; translate([0,20+30+20,0]){ translate([20,0,0]) rotate([0,90,0]) tube0(l1,false,exterieur); translate([-20,0,0]) rotate([0,-90,0]) tube0(l1,false,exterieur); } translate([0,20+30+20,0]){ translate([20+l1,0,20]) rotate([0,90,-90]) coude(exterieur); translate([-20-l1,0,20]) rotate([0,90,90]) coude(exterieur); translate([20+20+l1,0,20]) tube0(50,true,exterieur); translate([-20-20-l1,0,20]) tube0(50,true,exterieur); } } module distributeur(mineurw){ difference(){ union(){ distrib(mineurw,true); union(){ ray2=2*ray; off=80; // Renforts translate([-ray-2,-ray,-ray]){ cube([ray2+4,off,ray2+2]); cube([ray2+4,ray*2+7,4*ray]); } translate([-ray2*2,off-ray*3,-ray]){ cube([ray2*4,ray*3,ray2+2]); } // Plaque de support difference(){ w=30; offp=30; translate([-w/2,offp,-ray]){ cube([w,4,w]); cube([w,20,ray2+2]); } union(){ trou=2.5; translate([-w/2+5,offp-1,-ray+w-5]) rotate([-90,0,0]) cylinder(r=trou,h=6,$fn=40); translate([w/2-5,offp-1,-ray+w-5]) rotate([-90,0,0]) cylinder(r=trou,h=6,$fn=40); } } } } distrib(mineurw,false); } } // Plaque vis à vis le mineur du centre avec deux alimentations pdepth=70; pthick=3; pwidth=(mineur_width+20+20)/2-0.5; module plaque1(gauche){ w=pwidth; holedepth=pdepth-58; difference(){ cube([pdepth,w,pthick]); union(){ if (gauche){ translate([holedepth,10,-1]) cylinder(r=ray-thick,h=pthick+2,$fn=40); }else{ translate([holedepth,w-10,-1]) cylinder(r=ray-thick,h=pthick+2,$fn=40); } } } if (gauche){ translate([holedepth,10,3]) tube(30,true); }else{ translate([holedepth,w-10,3]) tube(30,true); } } module support_plaque() { cube([pdepth-5,10,30-pthick]); } module plaque2(gauche){ len=mineur_width-20-1; difference(){ cube([pdepth,len,pthick]); translate([pdepth-10,0,-1]) union(){ if (gauche) translate([11,-1,0]) rotate([0,0,90]) triangle_rectangle(15,15,pthick+2); if (!gauche) translate([11,len+1,0]) rotate([0,0,180]) triangle_rectangle(15,15,pthick+2); } } //translate([0,10,pthick]) support_plaque(); translate([0,10,pthick]) cube([10,10,30-pthick]); translate([pdepth-20,10,pthick]) cube([10,10,30-pthick]); translate([0,len-20,pthick]) cube([10,10,30-pthick]); translate([pdepth-20,len-20,pthick]) cube([10,10,30-pthick]); } mini2_base_len=48*10; mini2_base_height=36*10; mini2_base_thick=13.5*10; mini2_base_width=mini2_base_height*2+mini2_base_thick; module mini2_base(){ color("red") cube([mini2_base_len,mini2_base_height,0.86]); color("pink") translate([0,mini2_base_height,0]) cube([mini2_base_len,mini2_base_thick,0.86]); color("red") translate([0,mini2_base_height+mini2_base_thick,0]) cube([mini2_base_len,mini2_base_height,0.86]); } mini2_fin_width=14.7*10; mini2_fin_len=36.6*10; module mini2_fin(){ cube([mini2_fin_width,mini2_fin_len,0.86]); } module mini2_asm_un(){ mini2_base(); // color("green") translate([mini2_base_len+1,0,0]) mini2_fin(); color("green"){ translate([mini2_fin_len,mini2_base_width+2,0]) rotate([0,0,90])mini2_fin(); translate([mini2_fin_len,mini2_base_width+2+mini2_fin_width+2,0]) rotate([0,0,90])mini2_fin(); } } devide_height=20; devide_len=60; devide_thick=3; module devidoir_arc(width,ray,raysub){ rotate([0,90,0]) difference(){ cylinder(r=ray,h=width,$fn=120); union(){ translate([-ray,-ray,-1]) cube([2*ray,ray,width+2]); translate([0,-ray,-1]) cube([ray,2*ray,width+2]); translate([0,0,-1]) cylinder(r=ray-raysub,h=width+2,$fn=120); } } } module devidoir(){ extra=10; ray=50; difference(){ union(){ translate([-extra,0,-extra]) cube([devide_len+2*extra,devide_thick,devide_height+2*extra]); translate([0,devide_thick,-ray+devide_height]) difference(){ devidoir_arc(devide_len,ray,devide_height); translate([2,0,0]) devidoir_arc(devide_len-4,ray+1,devide_height-2); } } // Trou dans la plaque verticale translate([2,-1,devide_thick]) cube([devide_len-2*2,devide_thick+2,devide_height-devide_thick]); // Trou dans la fin de l'arc translate([2,ray-devide_height+devide_thick+3,-ray]) cube([devide_len-4,50,100]); // 2 trous pour l'assemblage translate([-extra/2,-1,devide_height/2]) rotate([-90,0,0]) cylinder(r=2,h=devide_thick+2,$fn=40); translate([devide_len+extra/2,-1,devide_height/2]) rotate([-90,0,0]) cylinder(r=2,h=devide_thick+2,$fn=40); } } module devidoir_guide(){ extra=10; thick=1.5; offset=15; difference(){ translate([-extra,-extra,0]) cube([devide_len+2*extra,devide_height+2*extra+offset,thick]); union(){ add=2; add2=add*2; translate([2-add,-add,-1]) cube([devide_len-2*2+add2,devide_height-devide_thick+add2 ,thick+2]); translate([-extra/2,devide_height/2,-1]) cylinder(r=3,h=devide_thick+2,$fn=40); translate([devide_len+extra/2,devide_height/2,-1]) cylinder(r=3,h=devide_thick+2,$fn=40); } } } module main_view(view){ if (view=="support"){ support(); }else if (view=="support-plaque"){ support_plaque(); }else if (view=="plaque1-gauche"){ plaque1(true); }else if (view=="plaque1-droite"){ plaque1(false); }else if (view=="plaque2-gauche"){ plaque2(true); }else if (view=="plaque2-droite"){ plaque2(false); }else if (view=="distributeur"){ translate([0,0,ray]) distributeur(mineur_width); }else if (view=="test-distributeur"){ intersection(){ w1=100; translate([-w1/2,-50,0]) cube([w1,200,30]); translate([0,0,ray]) distributeur(40); } }else if (view=="tranche"){ intersection(){ translate([-100,-100,0]) cube([200,200,5]); translate([0,0,ray]) distributeur(mineur_width); } }else if (view=="asm-plaques"){ translate([pdepth,0,height]) rotate([180,0,180]) plaque2(true); m1=mineur_width-20; translate([0,m1,height-pthick]) plaque1(true); translate([0,m1+pwidth+1,height-pthick]) plaque1(false); translate([10,m1+40,0]) support_plaque(); translate([10,m1+mineur_width+20+20-40,0]) support_plaque(); translate([pdepth,1*(mineur_width-20)+mineur_width+20+20+1,height]) rotate([180,0,180]) plaque2(false); for (m=[0:2]){ translate([50,m*130.5,height]){ difference(){ cube([130,130,270]); translate([1,1,-1]) cube([128,128,272]); } // Chaque mineur a 3 connecteurs condepth=23; conwidth=12.71; coninter=23.60; confirst=30; conlen=48; for (c=[0:2]){ translate([-condepth,confirst+c*(conwidth+coninter),0]) cube([condepth,conwidth,conlen]); } } } }else if (view=="test-plaque1"){ intersection(){ cube([200,200,10]); translate([0,0,-pthick+0.5]) plaque1(true); } }else if (view=="test-plaque2"){ intersection(){ cube([200,200,10]); translate([0,0,-pthick+0.5]) plaque2(false); } }else if (view=="mini2-base"){ mini2_base(); }else if (view=="mini2-fin"){ mini2_fin(); }else if (view=="mini2-asm"){ cube([8*30*10,4*30*10,0.86]); for (x=[0:4]){ translate([x*(mini2_base_len+2),0,10]) mini2_asm_un(); } }else if (view=="devidoir"){ devidoir(); //devidoir_arc(devide_len,70,20); }else if (view=="devidoir-print"){ rotate([90,0,0]) devidoir(); }else if (view=="devidoir-guide"){ devidoir_guide(); }else if (view=="devidoir-guide-test"){ devidoir_guide(); translate([0,20,5]) rotate([90,0,0]) devidoir(); } }