include include include include ///////////////////////////////////////////////// ///// Assemblages ///// ///////////////////////////////////////////////// module motorPulley() { translate([0,-8,-19]) stepper28BYJ(); color("SILVER") translate([0,0,2.5]) pulley(); } //assemblageGlobal(); //cadreInf(); //translate([0,0,2]) brasSecondaire(); //translate([0,0,-2.0]) brasSecondaire(); //laser252(); //brasSecondaire(); //assemblageTriangle1(); //assemblageTriangle2(); //cadreInf(); //brasSecondaire([2,4,7]); module brasSecondaire(animation=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],moveInFinalPlace=true,offsetContrepoids = 250) { xContrePoids = xMotor + offsetContrepoids; xTensionner = xMotor + 400 - offsetContrepoids; xFinal = moveInFinalPlace ? longueur-xBrasSecondaire : 0; yFinal = moveInFinalPlace ? largeur/2+largeurBras/2 : 0; zFinal = moveInFinalPlace ? zBrasSecondaire : 0; rzFinal = moveInFinalPlace ? 180 : 0; translate([xFinal,yFinal,zFinal]) rotate([0,0,rzFinal]) { ///////////////arbre///////////////// if (search(0,animation)) { color("red") translate([23,largeurBras/2,8]) tube(10,6,lBrasSecondaire-23); } if (search(1,animation)) { translate([xContrePoids,largeurBras/2,8]) rotate([0,90,0]) LM10UU(); } if (search(2,animation)) { translate([xContrePoids,largeurBras/2,15]) rotate([0,0,180]) laser213(); } if (search(3,animation)) { translate([xContrePoids-6,largeurBras/2,8]) rotate([90,0,90]) serflex213(); translate([xContrePoids+6,largeurBras/2,8]) rotate([90,0,90]) serflex213(); } if (search(4,animation)) { for (x=[-12,12]) { for (y=[-12,12]) { translate([xContrePoids+x,largeurBras/2+y,17]) screwNut(4,50,46); translate([xContrePoids+x,largeurBras/2+y,-13.8]) nut(4); } translate([xContrePoids+x,largeurBras/2+12,14.8]) nut(4); } } if (search(5,animation)) { translate([xContrePoids,largeurBras/2,-23]) laser281(); translate([xContrePoids,largeurBras/2,-29]) laser281(); } if (search(6,animation)) { difference() { translate([xMotor-9,9,zMotor]) belt(); translate([xTensionner-5.8,8,0]) cube([11.6,10,6]); } translate([xTensionner,9,2]) { tensionner(); translate([-5.8,0,-1]) rotate([0,-57,0]) cube([7.6,6,1]); translate([5.8,6,-1]) rotate([0,-57,180]) cube([7.6,6,1]); translate([0,6,4.2]) rotate([90,0,0]) intersection() { difference() { cylinder(d=6.1,h=6,$fn=20); translate([0,0,-1]) cylinder(d=4,h=8,$fn=20); } translate([-5,1,-1]) cube([10,10,10]); } } } if (search(7,animation)) { translate([xContrePoids,largeurBras/2-12,10.2]) rotate([0,0,180]) laser211(); translate([xContrePoids,largeurBras/2-12,13]) rotate([0,0,180]) laser212(); translate([xContrePoids,largeurBras/2-12,17]) screwNut(3,10,6.8); translate([xContrePoids,largeurBras/2-12,12.2]) rondelle(3,6); } if (search(8,animation)) { translate([xPulley,16,zMotor]) rotate([90,0,0]) f623zz(); translate([xPulley,8,zMotor]) rotate([-90,0,0]) f623zz(); translate([xPulley,0,zMotor]) rotate([90,0,0]) screwNut(3,20,16); translate([xPulley,2,zMotor]) rotate([-90,0,0]) rondelle(3,8,5); } if (search(9,animation)) { translate([xMotor,0,zMotor]) rotate([-90,30,0]) motorPulley(); translate([xMotor+fixMoteur1X,-0.5,zMotor+fixMoteur1Y]) rotate([90,0,0]) screwNut(4,10,2.5); translate([xMotor-fixMoteur2X,-0.5,zMotor+fixMoteur2Y]) rotate([90,0,0]) screwNut(4,10,2.5); //translate([xMotor,4,zMotor]) rotate([-90,0,180]) laser251(); translate([xMotor,3,zMotor]) rotate([-90,0,0]) rotate([0,0,-60]) printed602(); } if (search(10,animation)) { translate([xCouteauIII,largeurBras+spacer108,zCouteauBrasSecondaire]) rotate([90,0,180]) laser108(); translate([xCouteauIII,-epaisseurCouteau-spacer108,zCouteauBrasSecondaire]) rotate([90,0,180]) laser108(); for (x=[xCouteauIII+10,xCouteauIII-20]) { translate([x,largeurBras+4.8,zCouteauBrasSecondaire+13]) rotate([-90,0,0]) screwNut(4,10,6.8); translate([x,-4.8,zCouteauBrasSecondaire+13]) rotate([90,0,0]) screwNut(4,10,6.8); translate([x,largeurBras,zCouteauBrasSecondaire+13]) rotate([-90,0,0]) rondelle(4,8,0.8); translate([x,0,zCouteauBrasSecondaire+13]) rotate([90,0,0]) rondelle(4,8,0.8); } } if (search(11,animation)) { 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,16]) translate([x,largeurBras/2+y,30]) screwNut(5,12,8); } if (search(12,animation)) { profile306(); } if (search(13,animation)) { translate([lBrasSecondaire,largeurBras,0]) rotate([0,0,180]) profile305(); } if (search(14,animation)) { translate([longueur-xBrasSecondaire-xObturateur+0.5,0,5]) rotate([90,0,-90]) laser252(); translate([longueur-xBrasSecondaire-xObturateur,epaisseurTole,17]) rotate([-90,0,0]) screwNut(4,10,4.5); } if (search(15,animation)) { render() translate([xMotor,58-0.8,zMotor]) rotate([90,0,0]) 625zz(); translate([xMotor,58-0.8,zMotor]) rotate([90,0,0]) serflex625zz(); 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]) { rotate([-90,0,0]) screwNut(3,10,7.8); translate([0,-2,0]) rotate([90,0,0]) rondelle(3,8,0.8); } } } if (search(16,animation)) { translate([xMotor+1,3.5,zMotor-19.3]) rotate([0,0,-90]) endstop(); translate([xMotor+5,-5,zMotor+7]) rotate([-90,0,180]) laser216(); translate([xMotor,-1,zMotor]) rotate([90,0,0]) serflex216(); } if (search(17,animation)) { translate([xMotor,8,zMotor]) arbre321(); } //Exploded views if (search(50,animation)) { translate([xCouteauIII,largeurBras+spacer108,zCouteauBrasSecondaire]) rotate([90,0,180]) laser108(); //translate([xCouteauIII,-epaisseurCouteau-spacer108,zCouteauBrasSecondaire]) rotate([90,0,180]) laser108(); } } } //brasSecondaire(); module assemblageCouteau3(animation) { if (search(19,animation)) { laser207(); translate([6,4,0]) rotate([-90,0,0]) screwNut(4,10,5.7); } if (search(20,animation)) { translate([0,-50,0]) laser207(); translate([6,4+20,0]) rotate([-90,0,0]) screwNut(4,10,5.7+70,true); } } /*module assemblageContreCouteauIII(animation) { translate([0,0,0]) rotate([90,0,0]) laser105(); translate([0,-epaisseurCouteau,0]) rotate([0,90,0]) assemblageCouteau3(animation); }*/ //cadreInf(); module cadre(animation=[0,1,2,3]) { if (search(0,animation)) { profile301(); translate([longueur,largeur,0]) rotate([0,0,180]) profile301(); } if (search(1,animation)) { translate([longueur,0,0]) rotate([0,0,90]) profile302(); translate([0,largeur,0]) rotate([0,0,-90]) profile302(); } if (search(2,animation)) { laser206(); translate([longueur,largeur,0]) rotate([0,0,180]) laser206(); translate([longueur,0,0]) rotate([0,0,90]) laser206(); translate([0,largeur,0]) rotate([0,0,-90]) laser206(); } if (search(3,animation)) { for (x=[26,48,longueur-26,longueur-48],y=[10,largeur-10]) translate([x,y,0]) rotate([180,0,0]) screwNut(4,10,4); for (x=[10,longueur-10],y=[26,48,largeur-26,largeur-48]) translate([x,y,0]) rotate([180,0,0]) screwNut(4,10,4); } } module cadreSup(animation=[0,1,2,3,4,5,6]) { translate([0,largeur,zPlateau]) rotate([180,0,0]) cadre(animation); if (search(4,animation)) { translate([longueur-xCouteauSuperieur,eCorniereCadre,zPlateau-epaisseurTole-eCorniereCadre]) rotate([-90,0,0]) laser101(); translate([longueur-xCouteauSuperieur,largeur-eCorniereCadre-epaisseurCouteau,zPlateau-epaisseurTole-eCorniereCadre]) rotate([-90,0,0]) laser101(); for (y=[eCorniereCadre+epaisseurCouteau,largeur-eCorniereCadre]) translate([xCouteauSuperieur,y,zPlateau-epaisseurTole-eCorniereCadre]) rotate([-90,0,180]) laser102(); } if (search(5,animation)) { for (x=[xCouteauSuperieur,xCouteauInferieur]) { translate([longueur-x,largeur,zPlateau-12])rotate([-90,0,0]) screwNut(4,10,6); translate([longueur-x,0,zPlateau-12])rotate([90,0,0]) screwNut(4,10,6); } translate([xCouteauSuperieur,0,zPlateau-12])rotate([90,0,0]) screwNut(4,10,6); translate([xCouteauSuperieur,largeur,zPlateau-12])rotate([-90,0,0]) screwNut(4,10,6); } if (search(6,animation)) { translate([2,yMediane,zPlateau-2]) protection701(); for (x=[10,longueur-10],y=[y303+2-10,y304-2+10]) { translate([x,y,zPlateau])rotate([0,0,0]) screwNut(4,10,2.6+0.8); translate([x,y,zPlateau-2.6-0.8]) rondelle(4,10,0.8); } } } module cadreInf(animation=[0,1,2,3,4,5,6,7,8,9,10,11]) { cadre(animation); if (search(4,animation)) { translate([2,y304-2,2]) profile303(); translate([498,y303+2,2]) rotate([0,0,180]) profile304(); } if (search(5,animation)) { translate([xBrasSecondaire2,y303,z]) rotate([0,0,0]) rotate([90,0,0]) laser105(); translate([xBrasSecondaire2,y304,z]) rotate([0,0,180]) rotate([90,0,0]) laser105(); for (x=[xBrasSecondaire2+8,xBrasSecondaire2-8]){ translate([x,y303+2,14])rotate([-90,0,0]) screwNut(4,10,6); translate([x,y304-2,14])rotate([90,0,0]) screwNut(4,10,6); } } if (search(6,animation)) { //obturateur translate([xObturateur,y304+4,4]) rotate([90,0,180]) { for (x=[-6.5,15.5]) { translate([x,9,-6]) rotate([180,0,0]) screwNut(4,16,8); translate([x,9,-4]) rondelle(4,8,4); //for (z=[0:4]) translate([x,9,-1-z]) rondelle(4,8,1); } laser203(); translate([0,26.4,epaisseurTole/2]) rotate([-90,180,0]) endstop(); translate([-9.5,31,1])rotate([-90,30,0]) screwNut(3,12,8.6); for (x=[-9.5,9.5],z=[0,0.8]) { translate([x,24.8+z,0])rotate([-90,0,0]) rondelle(3,8); } } } if (search(7,animation)) { for (x=[10,longueur-10],y=[y303+2-10,y304-2+10]) translate([x,y,0])rotate([180,0,0]) screwNut(4,10,4); } if (search(8,animation)) { for (y=[eCorniereCadre,largeur-eCorniereCadre-epaisseurCouteau]) { translate([xCouteauInferieur,y+epaisseurCouteau,epaisseurTole+eCorniereCadre]) rotate([90,0,0]) laser101(); translate([longueur-xCouteauInferieur,y,epaisseurTole+eCorniereCadre]) rotate([90,0,180]) laser101(); } } if (search(9,animation)) { for (x=[xCouteauInferieur,xCouteauSuperieur,longueur-xCouteauInferieur,longueur-xCouteauSuperieur]){ translate([x,0,12])rotate([90,0,0]) screwNut(4,10,6); translate([x,largeur,12])rotate([-90,0,0]) screwNut(4,10,6); } } if (search(10,animation)) { 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,2]) rotate([180,0,0]) screwNut(4,10,4); } } if (search(12,animation)) { translate([x309+2,largeur-90,6]) cube([100,68,50]); } //if (search(11,animation) || search(20,animation)) { translate([xBrasSecondaire2,y303,z]) rotate([0,0,0]) translate([0,-epaisseurCouteau,0]) rotate([0,90,0]) assemblageCouteau3(animation); translate([xBrasSecondaire2,y304,z]) rotate([0,0,180]) translate([0,-epaisseurCouteau,0]) rotate([0,90,0]) assemblageCouteau3(animation); //} } module assemblageContreCouteau(inversion,animation) { rotX = inversion ? -90: 90; transZ = ((inversion == 1) ? epaisseurCouteau : 0); //inversion ? -epaisseurCouteau:2*epaisseurCouteau; transY = ((inversion == 0) ? epaisseurCouteau : 0); transYCentrage = ((inversion == 0) ? epaisseurCouteau : -epaisseurCouteau); transYFixation = ((inversion == 0) ? -epaisseurTole : epaisseurTole); rotZ = ((inversion == 0) ? 180 : 0); if (search(0,animation)) { translate([-36,transY,-14]) rotate([90,0,0]) laser106(); } //if (search(1,animation)) { translate([0,transYCentrage,0]) rotate([0,-90,rotZ]) assemblageCouteau3(animation); translate([offsetCouteau,transYCentrage,0]) rotate([0,90,rotZ]) assemblageCouteau3(animation); //} if (search(2,animation)) { translate([-22,transYFixation,10]) rotate([0,0,rotZ+180]) laser201(); translate([-22,transYFixation,-10-epaisseurTole]) rotate([0,0,rotZ+180]) laser201(); } if (search(20,animation)) { translate([0,transYCentrage,0]) rotate([0,-90,rotZ]) { translate([0,-20,0]) laser207(); translate([6,4+80,0]) rotate([-90,0,0]) screwNut(4,10,5.7+100,true); } } if (search(21,animation)) { translate([offsetCouteau,transYCentrage,0]) rotate([0,90,rotZ]) { translate([0,-20,0]) laser207(); translate([6,4+80,0]) rotate([-90,0,0]) screwNut(4,10,5.7+100,true); } } //if (search(22,animation)) { translate([0,transYCentrage,0]) rotate([0,-90,rotZ]) assemblageCouteau3(animation); //} //if (search(23,animation)) { translate([offsetCouteau,transYCentrage,0]) rotate([0,90,rotZ]) assemblageCouteau3(animation); //} } //assemblageTriangle1([0,1,2,3,8,9,10,11]); module assemblageTriangle1(animation=[0,2,3,4,5,6,7,8,9,10,11,12,19]) { //contre couteaux translate([longueur-xCouteauInferieur, largeur-epaisseurTole, zPlateau/2]) rotate([0,0,180]) assemblageContreCouteau(0,animation); translate([longueur-xCouteauInferieur, epaisseurTole, zPlateau/2]) rotate([0,0,180]) assemblageContreCouteau(1,animation); if (search(3,animation)) { translate([longueur-6,0,zPlateau / 2 - 10]) rotate([0,0,90]) tube311(); } if (search(4,animation)) { translate([longueur/2,y312+10+spacer104+epaisseurCouteau,zPlateau / 2]) rotate([90,0,0]) laser103(); for (x=[21,-21]) { translate([longueur/2+x,y312+10,zPlateau / 2]) rotate([-90,0,0]) rondelle(4,8,spacer104); translate([longueur/2+x,y312+10+4+spacer104,zPlateau / 2]) rotate([-90,0,0]) screwNut(4,30,24+spacer104); } } if (search(5,animation)) { translate([longueur-26,y312-10,zPlateau / 2+10]) rotate([0,180,0]) tube312(); } if (search(6,animation)) { translate([longueur-xCouteauInferieur+32,y312+10,zPlateau / 2 + 10 + 2]) rotate([180,0,-90]) laser215(); translate([longueur-xCouteauInferieur+32,y312+10,zPlateau / 2 - 10]) rotate([180,0,-90]) laser215(); } if (search(7,animation)) { translate([longueur-xCouteauInferieur+32-10,y312,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); translate([longueur-xCouteauInferieur+32-30,y312,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); translate([longueur-xCouteauInferieur+32-90,y312,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); translate([longueur-xCouteauInferieur+32-10,y312-40,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); } if (search(8,animation)) { translate([longueur/2,largeur-y312-10-spacer104,zPlateau / 2]) rotate([90,0,0]) laser103(); for (x=[21,-21]) { translate([longueur/2+x,largeur-y312-10,zPlateau / 2]) rotate([90,0,0]) rondelle(4,8,spacer104); translate([longueur/2+x,largeur-y312-10-4-spacer104,zPlateau / 2]) rotate([90,0,0]) screwNut(4,30,24+spacer104); } } if (search(9,animation)) { translate([longueur-26,largeur-y312-10,zPlateau / 2+10]) rotate([0,180,0]) tube312(); } if (search(10,animation)) { translate([longueur-xCouteauInferieur+32,largeur-y312-10,zPlateau / 2 - 10 -2]) rotate([0,0,90]) laser215(); translate([longueur-xCouteauInferieur+32,largeur-y312-10,zPlateau / 2 + 10]) rotate([0,0,90]) laser215(); } if (search(11,animation)) { 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]) 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]) rotate([0,0,0]) screwNut(4,30,24); } if (search(12,animation)) { translate([longueur-16, 12, zPlateau/2+12]) screwNut(4,30,24); translate([longueur-16, largeur-12, zPlateau/2+12]) screwNut(4,30,24); } } //assemblageTriangle1(); //assemblageTriangle2([0,1,2,3,4,5,6,7,9,10,11,12,14]); //4 module assemblageTriangle2(animation=[0,19,2,3,4,5,6,7,8,9,10,11,12,13,14]) { zTubeCarre = zPlateau / 2 - 10; //if (search(0,animation)) { //contre couteaux translate([xCouteauInferieur,epaisseurTole,zPlateau/2]) assemblageContreCouteau(0,animation); translate([xCouteauInferieur,largeur-epaisseurTole,zPlateau/2]) assemblageContreCouteau(1,animation); //} if (search(3,animation)) { translate([xCouteauInferieur-12,0,zTubeCarre]) rotate([0,0,90]) tube313(); } if (search(4,animation)) { translate([xAppuiLong,y314+10,zTubeCarre+10]) rotate([90,0,90]) laser209(); translate([xAppuiLong,y314+10,zTubeCarre+10]) rotate([0,0,90]) laser208(); for (x=[10,-10]) translate([xAppuiLong+x,y314-10,zTubeCarre+11]) rotate([90,0,0]) screwNut(4,25,22); } if (search(5,animation)) { translate([26,y314-10,zPlateau / 2-10]) tube314(); } if (search(6,animation)) { translate([6,y314+10,zPlateau / 2 + 10]) rotate([0,0,-90]) laser215(); translate([6,y314+10,zPlateau / 2 - 10-2]) rotate([0,0,-90]) laser215(); } if (search(7,animation)) { translate([6+10,y314,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); translate([6+30,y314,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); translate([6+90,y314,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); translate([6+10,y314-40,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); } if (search(8,animation)) { translate([longueur/2,y314-10-spacer104,zPlateau / 2]) rotate([90,0,0]) laser104(); for (x=[8,-8]) { translate([longueur/2+x,y314-10,zPlateau / 2-4]) rotate([90,0,0]) rondelle(4,8,spacer104); translate([longueur/2+x,y314-10-4-spacer104,zPlateau / 2-4]) rotate([90,0,0]) screwNut(4,30,24+spacer104); } } if (search(9,animation)) { translate([xAppuiLong,largeur-y314-10,zTubeCarre+10]) rotate([90,0,-90]) laser209(); translate([xAppuiLong,largeur-y314-10,zTubeCarre+10]) rotate([0,0,-90]) laser208(); for (x=[10,-10]) translate([xAppuiLong+x,largeur-y314+10,zTubeCarre+11]) rotate([-90,0,0]) screwNut(4,25,22); } if (search(10,animation)) { translate([26,largeur-y314-10,zPlateau / 2-10]) tube314(); } if (search(11,animation)) { translate([6,largeur-y314-10,zPlateau / 2 + 10+2]) rotate([180,0,90]) laser215(); translate([6,largeur-y314-10,zPlateau / 2 - 10]) rotate([180,0,90]) laser215(); } if (search(12,animation)) { translate([6+10,largeur-y314,zPlateau / 2 +12]) rotate([0,0,0]) screwNut(4,30,24); 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]) rotate([0,0,0]) screwNut(4,30,24); } if (search(13,animation)) { translate([longueur/2,largeur-y314+10+spacer104+epaisseurCouteau,zPlateau / 2]) rotate([90,0,0]) laser104(); for (x=[8,-8]) { translate([longueur/2+x,largeur-y314+10,zPlateau / 2-4]) rotate([-90,0,0]) rondelle(4,8,spacer104); translate([longueur/2+x,largeur-y314+10+4+spacer104,zPlateau / 2-4]) rotate([-90,0,0]) screwNut(4,30,24+spacer104); } } if (search(14,animation)) { translate([16, largeur-12, zPlateau/2+12]) screwNut(4,30,24); translate([16, 12, zPlateau/2+12]) screwNut(4,30,24); } //Exploded views if (search(50,animation)) { translate([xAppuiLong,y314+10,zTubeCarre+10]) rotate([90,0,90]) laser209(); translate([xAppuiLong,y314+10,zTubeCarre+10]) rotate([0,0,90]) laser208(); } } module serflex213() { r1 = 19/2; r1ext = r1+1; r2 = 2; r2ext = r2+1; h = r1-r2+1; translate([0,0,-1.5]) { difference() { union() { cylinder(r=r1ext,h=3); translate([-r1ext+r2ext,h,0]) cylinder(r=r2ext,h=3); translate([-r1ext,0,0]) cube([r1ext*2,h,3]); translate([-r1ext+r2ext,h,0]) cube([r1ext*2-r2ext,r2ext,3]); } translate([0,0,-1]) cylinder(r=r1,h=5); translate([-r1+r2,h,-1]) cylinder(r=r2,h=5); translate([-r1,0,-1]) cube([r1*2,h,5]); translate([-r1+r2,h-1,-1]) cube([2*r1-r2,r2+1,5]); } translate([r1,h+r2-1,-1]) cube([3,3,5]); translate([r1,h+r2,0]) cube([5,1,3]); } } module serflex625zz() { linear_extrude(5) { difference() { offset(delta=1) hull() { translate([0,0]) circle(d=16); for (xz=[[0,0+8+1.5], [0-sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),-zMotor+3.5], [0+sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),-zMotor+3.5]]) { translate(xz) circle(d=3,$fn=32); } } hull() { translate([0,0]) circle(d=16); for (xz=[[0,0+8+1.5], [0-sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),3.5-zMotor], [0+sqrt(pow(9.5,2)-pow((zMotor-3.5),2)),3.5-zMotor]]) { translate(xz) circle(d=3,$fn=32); } } //#translate([5.8,6.8]) rotate(43) square([4,4]); } translate([3.4,8.5]) square([4.5,1]); } translate([4,7.5,-1]) cube([3,3,7]); } module serflex216_0() { projection() intersection() { rotate([-90,0,0]) translate([0,1,0]) { translate([1,3.5,0-19.3]) rotate([0,0,-90]) endstop(); translate([5,-5,0+7]) rotate([-90,0,180]) laser216(); translate([0,0,0]) rotate([-90,30,0]) motorPulley(); } translate([-50,-50,0]) cube([100,100,1]); } } module serflex216() { linear_extrude(4) difference() { offset(1) hull() serflex216_0(); hull() serflex216_0(); } } //serflex216() ; //assemblageGlobal(); //assemblageTriangle2([0,1]); /*a = [1,2,3]; function add(v, i = 0, r = 0, lim) = (i < lim) ? add(v, i + 1, r + v[i]) : r; output = add(a,0,0,3); echo(output);*/ module assemblageGlobal(animation=64) { numSteps = [12,17,15,13,7]; numStepsCumul = [12,29,44,57,64]; if (animation >= 0) { for (i=[0:min(animation,numStepsCumul[0]-1)]) cadreInf([i]); } if (animation >= numStepsCumul[0]) { for (i=[0:min(animation,numStepsCumul[1]-1)-numStepsCumul[0]]) brasSecondaire([i]); } if (animation >= numStepsCumul[1]) { for (i=[0:min(animation,numStepsCumul[2]-1)-numStepsCumul[1]]) assemblageTriangle2([i]); } if (animation >= numStepsCumul[2]) { for (i=[0:min(animation,numStepsCumul[3]-1)-numStepsCumul[2]]) assemblageTriangle1([i]); } if (animation >= numStepsCumul[3]) { for (i=[0:animation-numStepsCumul[3]]) cadreSup([i]); } } //cadreSup(); /* cadreInf(); brasSecondaire(); #cube([60,300,100]); */