OpenBeeLab/views.scad
2025-12-02 16:13:28 +01:00

1226 lines
46 KiB
OpenSCAD

include <functions.scad>
include <assembly.scad>
include <parameters.scad>
include <timing_belts.scad>
/////////////////////////////////////////////////
///// Manuel assemblage /////
/////////////////////////////////////////////////
//projection()
module laserParts() {
translate([0,300,0]) legend("101");
translate([50,300,0]) laser101();
translate([0,260,0]) legend("102");
translate([50,250,0]) laser102();
translate([0,220,0]) legend("103");
translate([70,230,0]) laser103();
translate([0,185,0]) legend("104");
translate([60,195,0]) laser104();
translate([0,140,0]) legend("105");
translate([60,160,0]) laser105();
translate([0,90,0]) legend("106");
translate([40,80,0]) laser106();
translate([0,40,0]) legend("108");
translate([60,40,0]) laser108();
translate([120,300,0]) legend("201");
translate([180,300,0]) laser201();
translate([120,260,0]) legend("203");
translate([170,270,0]) rotate([0,0,-90]) laser203();
translate([120,200,0]) legend("206");
translate([170,170,0]) laser206();
translate([120,140,0]) legend("207");
translate([185,150,0]) laser207();
translate([120,90,0]) legend("208");
translate([170,100,0]) laser208();
translate([120,50,0]) legend("209");
translate([170,50,0]) laser209();
translate([120,10,0]) legend("211");
translate([170,10,0]) laser211();
translate([270,300,0]) legend("212");
translate([320,300,0]) laser212();
translate([270,260,0]) legend("213");
translate([330,260,0]) laser213();
translate([270,200,0]) legend("215");
translate([380,220,0]) rotate([0,0,180]) laser215();
translate([270,100,0]) legend("216");
translate([340,100,0]) rotate([0,0,-180]) laser216();
//translate([270,50,0]) legend("251");
//translate([340,60,0]) rotate([0,0,-180]) laser251();
translate([270,10,0]) legend("252");
translate([330,15,0]) laser252();
translate([430,140,0]) legend("281");
translate([440,60,0]) rotate([0,0,90]) laser281();
translate([430,300,0]) legend("601");
translate([440,280,0]) rotate([-60,0,0]) rotate([0,0,-45]) printed601();
translate([430,240,0]) legend("602");
translate([440,220,0]) rotate([-60,0,0]) rotate([0,0,-45]) printed602();
}
module profiles() {
translate([-10,-30,0]) legend("301");
translate([-10,-50,0]) legend("x4");
translate([0,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([30,0,0]) translate([-longueur,0,0]) profile301();
translate([30,-30,0]) legend("302");
translate([30,-50,0]) legend("x4");
translate([40,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([30,0,0]) translate([-largeur,0,0]) profile302();
translate([70,-30,0]) legend("303");
translate([70,-50,0]) legend("x1");
translate([80,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([30,0,0]) translate([-l303304,0,0]) profile303();
translate([110,-30,0]) legend("304");
translate([110,-50,0]) legend("x1");
translate([120,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([30,0,0]) translate([-l303304,0,0]) profile304();
translate([150,-30,0]) legend("308");
translate([150,-50,0]) legend("x1");
translate([160,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([30,0,0]) translate([-l308309,0,0]) profile308();
translate([190,-30,0]) legend("309");
translate([190,-50,0]) legend("x1");
translate([200,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([30,0,0]) translate([-l308309,0,0]) profile309();
translate([245,-30,0]) legend("305");
translate([245,-50,0]) legend("x1");
translate([280,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([120,0,0]) translate([-lBrasSecondaire,-0,0]) profile305();
translate([295,-30,0]) legend("306");
translate([295,-50,0]) legend("x1");
translate([330,0,0]) rotate([-30,0,0]) rotate([0,0,-100]) rotate([120,0,0]) translate([-lBrasSecondaire,0,0]) profile306();
translate([350,-30,0]) legend("311");
translate([350,-50,0]) legend("x1");
translate([380,0,0]) rotate([-30,0,0]) rotate([-30,0,80]) tube311();
translate([390,-30,0]) legend("312");
translate([390,-50,0]) legend("x2");
translate([420,0,0]) rotate([-30,0,0]) rotate([-30,0,80]) tube312();
translate([430,-30,0]) legend("313");
translate([430,-50,0]) legend("x1");
translate([460,0,0]) rotate([-30,0,0]) rotate([-30,0,80]) tube313();
translate([470,-30,0]) legend("314");
translate([470,-50,0]) legend("x2");
translate([500,0,0]) rotate([-30,0,0]) rotate([-30,0,80]) tube314();
}
module legendCircle(n) {
l = (n > 9) ? -31 : -16;
linear_extrude(1) {
translate([l,-19]) text(str(n),38, "DejaVu Sans Mono", "center","center");
difference() {
circle(40);
circle(35);
}
}
}
module legend(t) {
linear_extrude(1) {
text(t,12, "DejaVu Sans Mono", "center","center");
}
}
legendStep = 20;
xLegend = -160;
yLegend = 300;
//assemblyStep13();
module serflexMontage(l1 = 22, h = 20) {
difference() {
union() {
cylinder(d=l1+2,h=3);
translate([0,h,0]) cylinder(d=l1+2,h=3);
translate([-(l1+2)/2,0,0]) cube([l1+2,h,3]);
translate([0,h,0]) cube([(l1+2)/2,(l1+2)/2,3]);
}
translate([0,0,-1]) cylinder(d=l1,h=5);
translate([0,h,-1]) cylinder(d=l1,h=5);
translate([-(l1)/2,0,-1]) cube([l1,h,5]);
translate([0,h,-1]) cube([(l1)/2,(l1)/2,5]);
}
translate([l1/2,h+(l1/2)-1,-1]) cube([3,3,5]);
translate([l1/2,h+(l1/2),0]) cube([20,1,3]);
}
module assemblyStep1() {
translate([xLegend+40,yLegend,0]) legendCircle(1);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("x2");
translate([xLegend+20,yLegend-50-1*legendStep,0]) legend(" =>");
translate([xLegend+80,yLegend-50-1*legendStep+5,0]) scale(0.3) legendCircle(3);
translate([xLegend+20,yLegend-50-2*legendStep,0]) legend(" =>");
translate([xLegend+80,yLegend-50-2*legendStep+5,0]) scale(0.3) legendCircle(4);
translate([xLegend,yLegend-50-4*legendStep,0]) legend("301 x4");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("302 x4");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("206 x8");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("M4x10 x32");
render() translate([280,210,0]) rotate([-55,0,0]) rotate([0,0,-25]) {
rotate([180,0,0]) {
translate([-200,-200,0]) cadre();
translate([50,-80,0]) intersection() {
translate([50,50,-100]) cylinder(r=100, h=200);
union() {
/*translate([26,10,-18]) cylinder(d=0.4, h = 110);
translate([48,10,-18]) cylinder(d=0.4, h = 110);
translate([10,26,-18]) cylinder(d=0.4, h = 110);
translate([10,48,-18]) cylinder(d=0.4, h = 110);*/
translate([26,10,-30]) rotate([180,0,0]) screwNut(4,10,120,true);
translate([48,10,-30]) rotate([180,0,0]) screwNut(4,10,120,true);
translate([10,26,-30]) rotate([180,0,0]) screwNut(4,10,120,true);
translate([10,48,-30]) rotate([180,0,0]) screwNut(4,10,120,true);
translate([0,0,0])profile301();
translate([0,largeur,15]) rotate([0,0,-90]) profile302();
translate([0,0,40]) laser206();
}
}
}
}
}
module assemblyStep2() {
translate([xLegend+40,yLegend,0]) legendCircle(2);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("303 x1");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("304 x1");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("105 x2");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("203 x1");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("M4x10 x4");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("M4x16 x2");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("M3x12 x1");
translate([xLegend,yLegend-50-8*legendStep,0]) legend("washer 3x8x0.8 inox x2");
translate([xLegend,yLegend-50-9*legendStep,0]) legend("washer 3x8x0.8 nylon x2");
translate([xLegend,yLegend-50-10*legendStep,0]) legend("washer 4x10x0.8 x10");
translate([100,265,0]) legend("nylon >");
translate([100,250,0]) legend("inox >");
y1 = largeur/2 - largeurBras/2 - 1;
y2 = largeur/2 + largeurBras/2 + 1;
translate([215,140,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
translate([-200,-200,0]) {
translate([2,y2-2,2]) profile303();
translate([xBrasSecondaire2,y2,z]) rotate([0,0,180]) {
translate([0,-20,0]) rotate([90,0,0]) laser105();
/*translate([0,-epaisseurCouteau,0]) rotate([0,90,0]) {
translate([6,-31.8,0]) rotate([90,30,0]) ecrou(5,7,3.2);
translate([0,-30,0]) laser207();
translate([6,-10,0]) rotate([-90,0,0]) boulonM4(10);
}*/
}
translate([361,220,14]) rotate([90,0,0]) screwNut(4,10,80,true);
translate([345,220,14]) rotate([90,0,0]) screwNut(4,10,80,true);
//obturateur
translate([xObturateur,y2+4,4]) rotate([90,0,180]) {
for (x=[-6.5,15.5]) {
translate([x,9,-40]) rotate([180,0,0]) screwNut(4,16,140,true);
//translate([x,9,-40]) rotate([0,0,0]) cylinder(d=0.4, h = 140);
//translate([x,9,40]) rondelle(4,8,4);
for (z=[0:4]) translate([x,9,-1-(z*6)+40]) rondelle(4,8,0.8);
}
translate([0,0,60]) {
laser203();
translate([0,26+20.4,epaisseurTole/2]) rotate([-90,180,0]) endstop();
translate([-9.5,31+35,1])rotate([-90,30,0]) screwNut(3,12,8.6+35,true);
//translate([-9.5,31+35,1])rotate([90,30,0]) cylinder(d=0.4, h = 44);
for (x=[-9.5,9.5],z=[0,0.8]) {
translate([x,24.8+(z*6) + 4,0])rotate([-90,0,0]) rondelle(3,8);
}
}
}
/////////////////304
translate([0,-20,0]) {
translate([498,y1+2-50,2]) rotate([0,0,180]) profile304();
//translate([xBrasSecondaire2,y1-50,z]) rotate([0,0,0]) assemblageContreCouteauIII();
translate([xBrasSecondaire2,y1-50,z]) rotate([0,0,0]) translate([0,0,0]) rotate([90,0,0]) laser105();
translate([361,137,14]) rotate([-90,0,0]) screwNut(4,10,6);
translate([345,137,14]) rotate([-90,0,0]) screwNut(4,10,6);
}
}
}
}
module assemblyStep3() {
translate([xLegend+40,yLegend,0]) legendCircle(3);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("101 x4");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("308");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("309");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("M4x10 x14");
translate([xLegend+15,yLegend-50-6*legendStep,0]) legend("!!!!!!");
translate([xLegend,yLegend-50-8*legendStep,0]) laser101();
translate([xLegend+30,yLegend-50-8*legendStep,0]) legend("!=");
translate([xLegend+90,yLegend-50-8*legendStep,0]) rotate([0,180,0]) laser101();
translate([0,180,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
cadreInf([0,1,2,3,8]);
translate([0,0,30]) cadreInf([4,5,6]);
//translate([0,0,80]) support303304(6);
for (x=[10,longueur-10],y=[y303+2-10,y304-2+10])
translate([x,y,-40])rotate([180,0,0]) screwNut(4,10,160,true);
for (x=[xCouteauInferieur,xCouteauSuperieur,longueur-xCouteauInferieur,longueur-xCouteauSuperieur]){
translate([x,-30,12])rotate([90,0,0]) screwNut(4,10,70,true);
translate([x,largeur+30,12])rotate([-90,0,0]) screwNut(4,10,70,true);
}
translate([0,0,60]) {
translate([x308,largeur-l308309-2,4]) rotate([0,0,90]) profile308();
translate([x309,largeur-2,4]) rotate([0,0,-90]) profile309();
}
for (x=[x308-10,x309+10]) {
translate([x,largeur-l308309-2+8,-60]) rotate([180,0,0]) screwNut(4,10,140,true);
}
}
}
module assemblyStep4() {
translate([xLegend+40,yLegend,0]) legendCircle(4);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("101 x2");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("102 x2");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("protection");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("M4x10+regular nut x8");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("M4x16+nylstop nut x2");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("washer M4 x4");
translate([xLegend,yLegend-50-8*legendStep,0]) legend("nylstop nut on 102 side");
translate([xLegend,yLegend-50-9*legendStep,0]) legend("do not tighten completely");
translate([xLegend,yLegend-50-10*legendStep,0]) legend("as few slack as possible");
translate([xLegend,yLegend-50-11*legendStep,0]) legend("but 102 still free to turn");
translate([370,30,0]) {
translate([0,210,0]) legend("!!!!!!");
translate([0,160,0]) laser101();
translate([30,160,0]) legend("!=");
translate([90,160,0]) rotate([0,180,0]) laser101();
}
translate([50,50,0]) rotate([-60,0,0]) rotate([0,0,-20]) {
translate([0,largeur,zPlateau]) rotate([180,0,0]) cadre();
translate([longueur-xCouteauSuperieur,eCorniereCadre + 130,zPlateau-epaisseurTole-eCorniereCadre]) rotate([-90,0,0]) laser101();
translate([longueur-xCouteauSuperieur,largeur-eCorniereCadre-epaisseurCouteau -60,zPlateau-epaisseurTole-eCorniereCadre]) rotate([-90,0,0]) laser101();
for (x=[xCouteauSuperieur,xCouteauInferieur]) {
translate([longueur-x,largeur + 50,zPlateau-12])rotate([-90,0,0]) screwNut(4,10,180,true);
translate([longueur-x,-30,zPlateau-12])rotate([90,0,0]) screwNut(4,10,200,true);
}
translate([xCouteauSuperieur,12-50,zPlateau-12])rotate([90,0,0]) screwNut(4,10,170,true);
translate([xCouteauSuperieur,largeur-12+50,zPlateau-12])rotate([-90,0,0]) screwNut(4,10,120,true);
for (y=[eCorniereCadre+epaisseurCouteau+100,largeur-eCorniereCadre-30])
translate([xCouteauSuperieur,y,zPlateau-epaisseurTole-eCorniereCadre]) rotate([-90,0,180]) laser102();
translate([2,yMediane,zPlateau-2-40]) protection701();
for (x=[10,longueur-10],y=[y303+2-10,y304-2+10]) {
translate([x,y,zPlateau+20])rotate([0,0,0]) screwNut(4,10,2.6+110,true);
translate([x,y,zPlateau-0.8-70]) rondelle(4,10,0.8);
}
}
}
module assemblyStep5() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(5);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("211");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("212");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("213");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("2x cable tie");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("M3x12");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("3x6x0.8 washer");
translate([0,100,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
/////////////Contrepoids/////////////////
xContrePoids = longueurCornieres-17-55;
xContrePoids = 80;
scale(2) {
intersection() {
color("blue") translate([xMotor-9,9,zMotor]) belt();
cube([120,100,100]);
}
render(convexity=5) translate([xContrePoids,largeurBras/2,8+25]) rotate([0,90,0]) LM10UU();
translate([xContrePoids,largeurBras/2,15+25]) rotate([0,0,180]) laser213();
translate([xContrePoids,largeurBras/2-12,6+60]) screwNut(3,10,80,true);
translate([xContrePoids,largeurBras/2-12,10]) rotate([0,0,180]) laser211();
translate([xContrePoids,largeurBras/2-12,13+15]) rotate([0,0,180]) laser212();
translate([xContrePoids,largeurBras/2-12,12+5]) rondelle(3,6,0.8);
translate([xContrePoids-7.5,30,30]) rotate([90,0,90]) serflexMontage();
translate([xContrePoids+4.5,30,30]) rotate([90,0,90]) serflexMontage();
}
}
translate([350,100,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
scale(5) {
translate([-11,-5.5,0]) rotate([90,0,0]) belt_len(tGT2_2,6,22);
rotate([0,0,180]) laser211();
}
}
}
module assemblyStep6() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(6);
translate([xLegend+20,yLegend-50-1*legendStep,0]) legend("tensionner");
//-150,0 - 0,100
translate([0,200,0]) {
translate([110,10,0]) legend("=");
translate([270,-70,0]) legend("=");
rotate([-60,0,0]) rotate([0,0,-45]) {
brasSecondaire([1,2,3,6,7],false,200);
}
}
translate([100,50,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
scale(5) {
translate([-15.7,3,0]) rotate([90,0,0]) belt_len(tGT2_2,6,10);
translate([-5.4,3,0.2]) rotate([90,-59,0]) belt_len(tGT2_2,6,6.6);
translate([5.4,3,0.2]) rotate([90,-59,180]) belt_len(tGT2_2,6,6.6);
translate([5.7,3,0]) rotate([90,0,0]) belt_len(tGT2_2,6,10);
translate([-0.95,6,6.35]) rotate([90,-22,0]) draw_tooth(tGT2_2,0,6);
translate([0.95,6,6.35]) rotate([90,22,0]) draw_tooth(tGT2_2,0,6);
translate([-5.65,6,0.25]) rotate([90,0,0]) cylinder(d=1.7,h=6,$fn=20);
translate([5.65,6,0.25]) rotate([90,0,0]) cylinder(d=1.7,h=6,$fn=20);
translate([0,6,4.2]) rotate([90,0,0])
intersection() {
difference() {
cylinder(d=5.1,h=6,$fn=20);
translate([0,0,-1]) cylinder(d=4,h=8,$fn=20);
}
translate([-5,1,-1]) cube([10,10,10]);
}
tensionner();
}
}
}
module assemblyStep7() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(7);
translate([xLegend+20,yLegend-50-1*legendStep,0]) legend("281 x2");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("M4x50 x4");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("M4 nut x10");
translate([150,180,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
brasSecondaire([1,2,3,6,7,4,5],false);
}
translate([-100,200,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
brasSecondaire([2],false);
for (x=[-12,12]) {
for (y=[-12,12]) {
translate([xContrePoids+x,largeurBras/2+y,75]) screwNut(4,50,200,true);
translate([xContrePoids+x,largeurBras/2+y,-50]) nut(4);
}
translate([xContrePoids+x,largeurBras/2+12,-10]) nut(4);
}
translate([xContrePoids,largeurBras/2,-70]) laser281();
translate([xContrePoids,largeurBras/2,-90]) laser281();
}
translate([450,150,0]) scale(2) rotate([-90,-90,0]) {
brasSecondaire([1,2,3,6,4,5,7],false);
}
}
module assemblyStep8() {
translate([xLegend+40,yLegend,0]) legendCircle(8);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("108 x1");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("602 (3d printed)");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("252");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("motor");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("pulley");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("f623zz x2");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("M4x10 x5");
translate([xLegend,yLegend-50-8*legendStep,0]) legend("M4 washer x2");
translate([xLegend,yLegend-50-9*legendStep,0]) legend("M3x20");
translate([xLegend,yLegend-50-10*legendStep,0]) legend("spacer 3x8x5");
translate([50,200,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
profile306();
//9
translate([xMotor,-30,zMotor]) rotate([-90,30,0]) translate([0,-8,-19]) stepper28BYJ();
translate([xMotor+fixMoteur1X,-0.5-60,zMotor+fixMoteur1Y]) rotate([90,0,0]) screwNut(4,10,130,true);
translate([xMotor-fixMoteur2X,-0.5-60,zMotor+fixMoteur2Y]) rotate([90,0,0]) screwNut(4,10,120,true);
translate ([xMotor,-1,zMotor]) translate([0,-40,0]) rotate([-90,0,0]) cylinder(d=0.4, h = 160);
//translate([xMotor,4+90,zMotor]) rotate([-90,0,180]) laser251();
translate([xMotor,4+90,zMotor]) rotate([0,90,90]) printed602();
translate([xMotor,110,zMotor]) rotate([-90,30,0]) translate([0,0,3]) pulley();
//10
translate([xCouteauIII,-epaisseurCouteau-spacer108-30,zCouteauBrasSecondaire]) rotate([90,0,180]) laser108();
for (x=[xCouteauIII+10,xCouteauIII-20]) {
translate([x,-4.8-70,zCouteauBrasSecondaire+13]) rotate([90,0,0]) screwNut(4,10,140,true);
translate([x,-15,zCouteauBrasSecondaire+13]) rotate([90,0,0]) rondelle(4,8,0.8);
}
//8
render() translate([xPulley,90,zMotor]) rotate([90,0,0]) f623zz();
render() translate([xPulley,70,zMotor]) rotate([-90,0,0]) f623zz();
translate([xPulley,-30,zMotor]) rotate([90,0,0]) screwNut(3,20,140,true);
translate([xPulley,2+50,zMotor]) rotate([-90,0,0]) rondelle(3,8,5);
//14
translate([longueur-xBrasSecondaire-xObturateur+epaisseurTole/2,-40,5]) rotate([90,0,-90]) laser252();
translate([longueur-xBrasSecondaire-xObturateur,epaisseurTole+80,17]) rotate([-90,0,0]) screwNut(4,10,4.5+120,true);
}
}
//assemblyStep9();
module assemblyStep9() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(9);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("108");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("625zz");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("cable tie");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("M4x10 x2");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("M4 washer x2");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("M3 washer x3");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("M3x12 x3");
translate([350,50,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
rotate([0,0,180]) {
translate([lBrasSecondaire,largeurBras,0]) rotate([0,0,180]) profile305();
//10
translate([xCouteauIII,largeurBras+spacer108+30,zCouteauBrasSecondaire]) rotate([90,0,180]) laser108();
for (x=[xCouteauIII+10,xCouteauIII-20]) {
translate([x,largeurBras+4.8+70,zCouteauBrasSecondaire+13]) rotate([-90,0,0]) screwNut(4,10,140,true);
translate([x,largeurBras+15,zCouteauBrasSecondaire+13]) rotate([-90,0,0]) rondelle(4,8,0.8);
}
//15
for (xz=[[xMotor,zMotor+8+1.5],
[xMotor-sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),3.5],
[xMotor+sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),3.5]]) {
x = xz[0];
z = xz[1];
translate([x,largeurBras,z]) {
translate([0,30,0]) rotate([-90,0,0]) screwNut(3,10,160,true);
translate([0,-2-50,0]) rotate([90,0,0]) rondelle(3,8,0.8);
}
}
translate([xMotor,58-110,zMotor]) rotate([90,0,0]) 625zz();
/*translate([xMotor,largeurBras+20,zMotor+8+1.5]) rotate([-90,0,0]) screwNut(3,10,130,true);
translate([xMotor-sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),largeurBras+20,3.5]) rotate([-90,0,0]) screwNut(3,10,130,true);
translate([xMotor+sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),largeurBras+20,3.5]) rotate([-90,0,0]) screwNut(3,10,130,true);*/
translate([xMotor,58-75,zMotor]) rotate([90,0,180]) serflexMontage(32,0);
}
}
translate([300,180,0]) scale(2) intersection() {
translate([480,-50,0])
rotate([-99.4,0,0]) rotate([0,0,-30.1])
{
rotate([0,0,180]) brasSecondaire([13,15]);
}
translate([0,0,-100]) cylinder(d=100,h=200);
}
}
module assemblyStep10() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(10);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("10mm shaft");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("SK10 (shaft support) x2");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("M5x12 x2");
translate([350,50,0]) rotate([-60,0,0]) rotate([0,0,-45]) rotate([0,0,180]) {
brasSecondaire([0,1,2,3,4,5,6,7,8,9,12],false);
translate([23,largeurBras/2-21,28]) rotate([180,0,90]) SK10();
translate([lBrasSecondaire-14,largeurBras/2-21,28]) rotate([180,0,90]) SK10();
for (x=[30,lBrasSecondaire-7],y=[-16])
translate([x,largeurBras/2+y,60]) screwNut(5,12,100,true);
}
}
module assemblyStep11() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(11);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("M5x12 x2");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("5mm shaft");
translate([420,85,0]) rotate([-60,0,0]) rotate([0,0,-45]) rotate([0,0,180]) {
brasSecondaire([0,1,2,3,4,5,6,7,8,9,12],false);
translate([23,largeurBras/2-21,28]) rotate([180,0,90]) SK10();
translate([lBrasSecondaire-14,largeurBras/2-21,28]) rotate([180,0,90]) SK10();
for (x=[30,lBrasSecondaire-7],y=[-16])
translate([x,largeurBras/2+y,30]) screwNut(5,12,8,false);
translate([0,100,30]) {
brasSecondaire([13,15],false);
}
translate([xMotor,8+30,zMotor]) arbre321();
translate([xMotor,0,zMotor]) rotate([-90,0,0]) cylinder(d=0.4, h = 100);
translate([xMotor,100,zMotor]) rotate([0,0,0]) cylinder(d=0.4, h = 30);
translate([xMotor,100,zMotor+30]) rotate([-90,0,0]) cylinder(d=0.4, h = 60);
for (x=[30,lBrasSecondaire-7],y=[16]) {
translate([x,largeurBras/2+y,100]) screwNut(5,12,180,false);
translate([x,largeurBras/2+y,100]) rotate([180,0,0]) cylinder(d=0.4, h = 30);
translate([x,largeurBras/2+y,100-30]) rotate([-90,0,0]) cylinder(d=0.4, h = 100);
translate([x,largeurBras/2+y+100,100-30]) rotate([180,0,0]) cylinder(d=0.4, h = 30);
translate([x,largeurBras/2+y,100-30-30]) rotate([-90,0,0]) cylinder(d=0.4, h = 100);
translate([x,largeurBras/2+y,100-30-30]) rotate([180,0,0]) cylinder(d=0.4, h = 180-60);
}
}
}
module assemblyStep12() {
yLegend = 200;
translate([xLegend+40,yLegend,0]) legendCircle(12);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("216");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("endstop");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("cable tie");
translate([200,200,0]) rotate([-87.9,0,0]) rotate([0,0,-253.4]) {
brasSecondaire([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17],false);
translate([xMotor+5,-5-50,zMotor+7]) rotate([-90,0,180]) laser216();
translate([xMotor+1,3.5,zMotor-19.3-30]) rotate([0,0,-90]) endstop();
translate([xMotor,-6,-40]) rotate([0,0,0]) cylinder(d=0.4, h = 15);
translate([xMotor,-6,-25]) rotate([90,0,0]) cylinder(d=0.4, h = 50);
translate([xMotor,-6-50,-25]) rotate([0,0,0]) cylinder(d=0.4, h = 15);
translate([xMotor,-5,zMotor-12]) rotate([-90,180,0]) serflexMontage(80,0);
}
translate([100,50,0]) rotate([-89.6,0,0]) rotate([0,0,-109.9+180]) scale(2) intersection() {
brasSecondaire([12,16,9],false);
translate([-20,-50,-20]) cube([200,100,100]);
}
}
module assemblyStep13() {
yLegend = 300;
translate([xLegend+40,yLegend,0]) legendCircle(13);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("207 x2");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("M4x10 x2");
translate([20,190,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
cadreInf([0,1,2,3,4,5,6,7,8,9,10,20]);
brasSecondaire();
}
translate([-50,172,0])
intersection() {
rotate([-66.5,0,0]) rotate([0,0,-100.8]) {
cadreInf([0,1,2,3,4,5,6,7,8,9,10,20]);
brasSecondaire([10]);
}
translate([30,-170,100]) cube([250,100,500]);
}
}
module assemblyStep14() {
translate([xLegend+40,yLegend,0]) legendCircle(14);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("loosen 4x M5");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("check alignment between");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("beam and bottom frame");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("tighten 4x M5");
//translate([0,190,0]) rotate([-60,0,0]) rotate([0,0,-45])
translate([500,10,0])
rotate([-45,0,0]) rotate([0,0,-270])
{
cadreInf([0,1,2,3,4,5,6,7,8,9,10]);
brasSecondaire();
}
translate([200,90,0]) scale(2) legend("<");
translate([350,90,0]) scale(2) legend(">");
}
module assemblyStep15() {
translate([xLegend+40,yLegend,0]) legendCircle(15);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("check shutter is centered");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("between endstop fork");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("bend shutter if necessary");
translate([150,0,0])
scale(3) render() intersection() {
translate([150,50,0]) rotate([-83,0,0]) rotate([0,0,-180])
{
brasSecondaire([12,14]);
cadreInf([4,6]);
}
cube([150,200,300]);
}
}
module assemblyStep16() {
translate([xLegend+40,yLegend,0]) legendCircle(16);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("311");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("312");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("103");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("106 x2");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("201 x4");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("215 x2");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("M4x30 x8");
translate([xLegend,yLegend-50-8*legendStep,0]) legend("washer M4 x10");
translate([-200,260,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
translate([longueur-xCouteauInferieur, epaisseurTole-100, zPlateau/2]) rotate([0,0,180]) {
translate([-36,0,-14]) rotate([90,0,0]) laser106();
translate([-22,epaisseurTole,10]) rotate([0,0,0+180]) laser201();
translate([-22,epaisseurTole,-10-epaisseurTole+8]) rotate([0,0,0+180]) laser201();
}
assemblageTriangle1([0,2,3,5]);
//4
translate([longueur/2,y312+10+spacer104+epaisseurCouteau+60,zPlateau / 2]) rotate([90,0,0]) laser103();
for (x=[21,-21]) {
for (n=[1:spacer104N]) translate([longueur/2+x,y312+10 + n * 8 + 12,zPlateau / 2]) rotate([-90,0,0]) rondelle(4,8,spacer104Thick); //rondelle(4,8,spacer104);
translate([longueur/2+x,y312+10+4+spacer104+100,zPlateau / 2]) rotate([-90,0,0]) screwNut(4,30,24+spacer104+130,true);
}
//6
translate([longueur-xCouteauInferieur+32,y312+10,zPlateau / 2 + 10 + 2 + 50]) rotate([180,0,-90]) laser215();
translate([longueur-xCouteauInferieur+32,y312+10,zPlateau / 2 - 10 - 30]) rotate([180,0,-90]) laser215();
//7
translate([longueur-xCouteauInferieur+32-10,y312,zPlateau / 2 +12 + 90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
translate([longueur-xCouteauInferieur+32-30,y312,zPlateau / 2 +12 + 90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
translate([longueur-xCouteauInferieur+32-90,y312,zPlateau / 2 +12 + 90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
translate([longueur-xCouteauInferieur+32-10,y312-40,zPlateau / 2 +12 + 90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
//12
translate([longueur-16, 12, zPlateau/2+12+40]) screwNut(4,30,24+70,true);
translate([longueur-16, largeur-12, zPlateau/2+12+40]) screwNut(4,30,24+70,true);
}
translate([300,105,0]) scale(0.8) legend("control");
translate([300,90,0]) scale(0.8) legend("right-angle");
translate([438,62,0]) linear_extrude(1)
intersection() {
translate([-100,0]) square([100,100]);
difference() {
circle(d=100);
circle(d=98);
}
}
translate([250,10,0]) scale(0.4) assemblageTriangle1([0,2,3,4,5,6,7,12]);
}
module assemblyStep17() {
translate([xLegend+40,yLegend,0]) legendCircle(17);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("313");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("314");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("104");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("106 x2");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("201 x4");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("208");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("209");
translate([xLegend,yLegend-50-8*legendStep,0]) legend("215 x2");
translate([xLegend,yLegend-50-9*legendStep,0]) legend("M4x30 x8");
translate([xLegend,yLegend-50-10*legendStep,0]) legend("M4x25 x2");
translate([xLegend,yLegend-50-11*legendStep,0]) legend("washer M4 x10");
translate([0,90,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
assemblageTriangle2([0,2,3,5]);
zTubeCarre = zPlateau / 2 - 10;
//4
translate([xAppuiLong,y314+10+30,zTubeCarre+10]) rotate([90,0,90]) laser209();
translate([xAppuiLong,y314+10+60,zTubeCarre+10]) rotate([0,0,90]) laser208();
for (x=[10,-10])
translate([xAppuiLong+x,y314-10-30,zTubeCarre+11]) rotate([90,0,0]) screwNut(4,25,22+90,true);
//6
translate([6,y314+10,zPlateau / 2 + 10+50]) rotate([0,0,-90]) laser215();
translate([6,y314+10,zPlateau / 2 - 10-2-30]) rotate([0,0,-90]) laser215();
//7
translate([6+10,y314,zPlateau / 2 +12+90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
translate([6+30,y314,zPlateau / 2 +12+90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
translate([6+90,y314,zPlateau / 2 +12+90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
translate([6+10,y314-40,zPlateau / 2 +12+90]) rotate([0,0,0]) screwNut(4,30,24+180,true);
//8
translate([longueur/2,y314-10-spacer104-60,zPlateau / 2]) rotate([90,0,0]) laser104();
for (x=[8,-8]) {
for (n=[1:spacer104N]) translate([longueur/2+x,y314-20 - n * 8,zPlateau / 2-4]) rotate([90,0,0]) rondelle(4,8,spacer104Thick);
translate([longueur/2+x,y314-10-4-spacer104-100,zPlateau / 2-4]) rotate([90,0,0]) screwNut(4,30,24+spacer104+140,true);
}
//14
translate([16, largeur-12, zPlateau/2+12+40]) screwNut(4,30,24+70,true);
translate([16, 12, zPlateau/2+12+40]) screwNut(4,30,24+70,true);
//12
}
translate([500,215,0]) scale(0.8) legend("control");
translate([500,200,0]) scale(0.8) legend("right-angle");
translate([462,165,0]) linear_extrude(1)
intersection() {
translate([0,0]) square([100,100]);
difference() {
circle(d=100);
circle(d=98);
}
}
translate([450,100,0]) scale(0.4) assemblageTriangle2([0,2,3,4,5,6,7,8,14]);
translate([250,140,0]) scale(0.8) legend("asymmetry!");
render() translate([260,150,0]) intersection() {
translate([-205,5,25]) rotate([-90,0,0]) tube314();
cube([40,40,30]);
}
}
module assemblyStep18() {
translate([xLegend+40,yLegend,0]) legendCircle(18);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("207 x4");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("M4x10 x4");
translate([0,190,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
cadreInf([0,1,2,3,4,5,6,7,8,9,10]);
brasSecondaire();
assemblageTriangle2([0,2,3,4,5,6,7,8,14]);
assemblageTriangle1([0,2,3,4,5,6,7,12]);
translate([longueur-xCouteauInferieur, largeur-epaisseurTole, zPlateau/2]) rotate([0,0,180]) assemblageContreCouteau(0,[20]);
translate([longueur-xCouteauInferieur, epaisseurTole, zPlateau/2]) rotate([0,0,180]) assemblageContreCouteau(1,[20]);
translate([xCouteauInferieur,epaisseurTole,zPlateau/2]) assemblageContreCouteau(0,[20]);
translate([xCouteauInferieur,largeur-epaisseurTole,zPlateau/2]) assemblageContreCouteau(1,[20]);
}
translate([550,350,0]) {
linear_extrude(1) {
difference() {
circle(70);
circle(67);
}
}
scale(2)
{
laser103();
laser104();
}
}
translate([100,70,0]) {
scale(2)
rotate([-90,0,0]) rotate([0,0,238])
translate([-longueur+xCouteauIII+xBrasSecondaire,-largeur/2+30,-zPlateau/2])
{
brasSecondaire([50]);
assemblageTriangle2([50]);
}
linear_extrude(1) {
translate([-30,5,0]) difference() {
circle(65);
circle(62);
}
}
}
}
module assemblyStep19() {
translate([xLegend+40,yLegend,0]) legendCircle(19);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("312");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("314");
translate([xLegend,yLegend-50-3*legendStep,0]) legend("103");
translate([xLegend,yLegend-50-4*legendStep,0]) legend("104");
translate([xLegend,yLegend-50-5*legendStep,0]) legend("208");
translate([xLegend,yLegend-50-6*legendStep,0]) legend("209");
translate([xLegend,yLegend-50-7*legendStep,0]) legend("215 x4");
translate([xLegend,yLegend-50-8*legendStep,0]) legend("M4x30 x8");
translate([xLegend,yLegend-50-9*legendStep,0]) legend("M4x25 x2");
translate([xLegend,yLegend-50-10*legendStep,0]) legend("washer M4 x20");
translate([-50,150,0]) rotate([-60,0,0]) rotate([0,0,-45]) {
zTubeCarre = zPlateau / 2 - 10;
translate([-100,0,0]) {
//8
translate([longueur/2,largeur-y312-10-spacer104-60,zPlateau / 2]) rotate([90,0,0]) laser103();
for (x=[21,-21]) {
for (n=[1:spacer104N]) translate([longueur/2+x,largeur-y312-10 - n * 8 - 12,zPlateau / 2]) rotate([-90,0,0]) rondelle(4,8,spacer104Thick);
translate([longueur/2+x,largeur-y312-10-4-spacer104-100,zPlateau / 2]) rotate([90,0,0]) screwNut(4,30,24+spacer104+130,true);
}
//9
translate([longueur-26,largeur-y312-10,zPlateau / 2+10]) rotate([0,180,0]) tube312();
//10
translate([longueur-xCouteauInferieur+32,largeur-y312-10,zPlateau / 2 - 10 -2-10]) rotate([0,0,90]) laser215();
translate([longueur-xCouteauInferieur+32,largeur-y312-10,zPlateau / 2 + 10+10]) rotate([0,0,90]) laser215();
//11
//translate([longueur-xCouteauInferieur+32-10,largeur-y312,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24);
translate([longueur-xCouteauInferieur+32-30,largeur-y312,zPlateau / 2 +12+50]) rotate([0,0,0]) screwNut(4,30,24+80,true);
translate([longueur-xCouteauInferieur+32-90,largeur-y312,zPlateau / 2 +12+50]) rotate([0,0,0]) screwNut(4,30,24+80,true);
//translate([longueur-xCouteauInferieur+32-10,largeur-y312+40,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24);
}
translate([0,-200,0]) {
//9
translate([xAppuiLong,largeur-y314-10-30,zTubeCarre+10]) rotate([90,0,-90]) laser209();
translate([xAppuiLong,largeur-y314-10-60,zTubeCarre+10]) rotate([0,0,-90]) laser208();
for (x=[10,-10])
translate([xAppuiLong+x,largeur-y314+10+40,zTubeCarre+11]) rotate([-90,0,0]) screwNut(4,25,22+100,true);
//10
translate([26,largeur-y314-10,zPlateau / 2-10]) tube314();
//11
translate([6,largeur-y314-10,zPlateau / 2 + 10+2+10]) rotate([180,0,90]) laser215();
translate([6,largeur-y314-10,zPlateau / 2 - 10-10]) rotate([180,0,90]) laser215();
//12
translate([6+30,largeur-y314,zPlateau / 2 +12+60]) rotate([0,0,0]) screwNut(4,30,24+80,true);
translate([6+90,largeur-y314,zPlateau / 2 +12+60]) rotate([0,0,0]) screwNut(4,30,24+80,true);
//13
translate([longueur/2,largeur-y314+10+spacer104+epaisseurCouteau+70,zPlateau / 2]) rotate([90,0,0]) laser104();
for (x=[8,-8]) {
for (n=[1:spacer104N]) translate([longueur/2+x,largeur-y314+10+20+n * 8,zPlateau / 2-4]) rotate([90,0,0]) rondelle(4,8,spacer104Thick);
translate([longueur/2+x,largeur-y314+10+4+spacer104+120,zPlateau / 2-4]) rotate([-90,0,0]) screwNut(4,30,24+spacer104+150,true);
}
}
}
}
module assemblyStep20() {
translate([xLegend+40,yLegend,0]) legendCircle(20);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("M4x30 x4");
translate([660,160,0]) rotate([-60,0,0]) rotate([0,0,-45]) rotate([0,0,180]){
cadreInf([0,1,2,3,4,5,6,7,8,9,,10,11]);
brasSecondaire();
assemblageTriangle1([0,1,2,3,4,5,6,7,12]);
assemblageTriangle2([0,1,2,3,4,5,6,7,8,14]);
assemblageTriangle1([8,9,10]);
//11
translate([longueur-xCouteauInferieur+32-10,largeur-y312,zPlateau / 2 +12+40]) rotate([0,0,0]) screwNut(4,30,24+65,true);
translate([longueur-xCouteauInferieur+32-30,largeur-y312,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24);
translate([longueur-xCouteauInferieur+32-90,largeur-y312,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24);
translate([longueur-xCouteauInferieur+32-10,largeur-y312+40,zPlateau / 2 +12+40]) rotate([0,0,0]) screwNut(4,30,24+65,true);
assemblageTriangle2([9,10,11,13]);
translate([6+30,largeur-y314,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24);
translate([6+90,largeur-y314,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24);
translate([6+10,largeur-y314+40,zPlateau / 2 +12+40]) rotate([0,0,0]) screwNut(4,30,24+55,true);
translate([6+10,largeur-y314,zPlateau / 2 +12+40]) rotate([0,0,0]) screwNut(4,30,24+55,true);
}
}
module assemblyStep21() {
translate([xLegend+40,yLegend,0]) legendCircle(21);
translate([xLegend,yLegend-50-1*legendStep,0]) legend("207 x4");
translate([xLegend,yLegend-50-2*legendStep,0]) legend("M4x10 x4");
translate([660,160,0]) rotate([-60,0,0]) rotate([0,0,-45]) rotate([0,0,180]){
cadreInf([0,1,2,3,4,5,6,7,8,9,10,11]);
brasSecondaire();
assemblageTriangle1([0,2,3,4,5,6,7,8,9,10,11,12,21,22]);
assemblageTriangle2([0,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22]);
cadreSup([0,1,2,3,4,5,6,7,8,9,11]);
}
}
//assemblyStep1();
//assemblyStep2();
//assemblyStep3();
//assemblyStep4();
//assemblyStep5();
//assemblyStep6();
//assemblyStep7();
//assemblyStep8();
//asemblyStep9();
//assemblyStep10();
//assemblyStep11();
//assemblyStep11_5();
//assemblyStep12();
//assemblyStep12_5();
//assemblyStep14();
//assemblyStep14();
//assemblyStep15();
//assemblyStep16();
//assemblyStep17();
//assemblyStep18();
//translate([0,-500,0]) projection() laserParts();
//projection() laserParts();
module assembly(s=1) {
if (s==1) assemblyStep1();
if (s==2) assemblyStep2();
if (s==3) assemblyStep3();
if (s==4) assemblyStep4();
if (s==5) assemblyStep5();
if (s==6) assemblyStep6();
if (s==7) assemblyStep7();
if (s==8) assemblyStep8();
if (s==9) assemblyStep9();
if (s==10) assemblyStep10();
if (s==11) assemblyStep11();
if (s==12) assemblyStep12();
if (s==13) assemblyStep13();
if (s==14) assemblyStep14();
if (s==15) assemblyStep15();
if (s==16) assemblyStep16();
if (s==17) assemblyStep17();
if (s==18) assemblyStep18();
if (s==19) assemblyStep19();
if (s==20) assemblyStep20();
if (s==21) assemblyStep21();
}
assembly(step);
/////////////////////////////////////////////
/// Animations
/////////////////////////////////////////////
//assemblageGlobal(round(($t*43)));
//assemblageGlobal(animationStep);
/*for (i = [0:13]) {
translate([(13-i)*500,0,0]) rotate([-60,0,0]) rotate([0,0,-160]) brasSecondaireAnimation(i);
}*/
//animationStep = 44;
//animationStep2 = 13 - animationStep;