1226 lines
46 KiB
OpenSCAD
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;
|
|
|
|
|
|
|