Cours:Fabrication : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(openscad)
(openscad)
Ligne 8 : Ligne 8 :
  
 
https://www.apmep.fr/IMG/pdf/AtelierOpenSCAD.pdf
 
https://www.apmep.fr/IMG/pdf/AtelierOpenSCAD.pdf
 +
 +
 +
==fichiers pour coupe de robotique==
 +
 +
<source lang=c>
 +
tailleCube=7.5;
 +
isConge=1;
 +
isPercage=1;
 +
rayonPercage=1.5;
 +
conge=0.25;
 +
$fn=25;
 +
 +
module longeronX(nbCubes=3,posX=0,posY=0,posZ=0)
 +
{
 +
    translate([posX*tailleCube,posY*tailleCube,posZ*tailleCube])
 +
        rotate([0,0,0])
 +
            longeron(nbCubes);
 +
}
 +
 +
module longeronY(nbCubes=3,posX=0,posY=0,posZ=0)
 +
{
 +
    translate([posX*tailleCube,posY*tailleCube,posZ*tailleCube])
 +
        rotate([0,0,90])
 +
            longeron(nbCubes);
 +
}
 +
 +
module longeronZ(nbCubes=3,posX=0,posY=0,posZ=0)
 +
{
 +
    translate([posX*tailleCube,posY*tailleCube,posZ*tailleCube])
 +
        rotate([0,-90,0])
 +
            longeron(nbCubes);
 +
}
 +
 +
module longeron(nbCubes=3)
 +
{
 +
    difference()
 +
    {
 +
        translate([-tailleCube/2,-tailleCube/2,-tailleCube/2])
 +
        cube([tailleCube*nbCubes,tailleCube,tailleCube]);
 +
        if (isPercage==1)
 +
        {
 +
        for (i=[0:nbCubes-1])
 +
        {
 +
            translate([i*tailleCube,0,0])
 +
            rotate([0,0,0])
 +
                trou();
 +
            translate([i*tailleCube,0,0])
 +
            rotate([90,0,0])
 +
                trou();
 +
        }
 +
        rotate([0,90,0])
 +
            trou(nbCubes);
 +
    }}
 +
}
 +
 +
 +
module boite()
 +
{
 +
    difference()
 +
    {
 +
    cube([tailleCube,tailleCube,tailleCube],center=true);
 +
        if (isPercage==1)
 +
        {
 +
    rotate([0,0,0])
 +
          trou();
 +
    rotate([90,0,0])
 +
          trou();
 +
    rotate([0,90,0])
 +
          trou();
 +
    }
 +
}
 +
}
 +
 +
module trou(size=1)
 +
{
 +
        translate([0,0,(size-1)*tailleCube/2])
 +
        {
 +
            cylinder(h=tailleCube*size+2*conge, r=rayonPercage,center=true);
 +
        if (isConge==1)
 +
        {
 +
        translate([0,0,-tailleCube*size/2-conge])
 +
            cylinder(h=2*conge, d1=(rayonPercage+2*conge)*2,
 +
                                d2=(rayonPercage)*2);
 +
        translate([0,0,tailleCube*size/2-conge])
 +
            cylinder(h=2*conge, d2=(rayonPercage+2*conge)*2,
 +
                                d1=(rayonPercage)*2);
 +
        }
 +
            }
 +
}
 +
</source>

Version du 18 novembre 2020 à 15:09

CharlyGraal

https://www.youtube.com/channel/UCZ2wggss-0usQrapW_bGplQ/videos

openscad

http://static.fablab-lannion.org/tutos/openscad/#/pageDeGarde

https://www.apmep.fr/IMG/pdf/AtelierOpenSCAD.pdf


fichiers pour coupe de robotique

tailleCube=7.5;
isConge=1;
isPercage=1;
rayonPercage=1.5;
conge=0.25;
$fn=25;

module longeronX(nbCubes=3,posX=0,posY=0,posZ=0)
{
    translate([posX*tailleCube,posY*tailleCube,posZ*tailleCube])
        rotate([0,0,0])
            longeron(nbCubes);
}

module longeronY(nbCubes=3,posX=0,posY=0,posZ=0)
{
    translate([posX*tailleCube,posY*tailleCube,posZ*tailleCube])
        rotate([0,0,90])
            longeron(nbCubes);
}

module longeronZ(nbCubes=3,posX=0,posY=0,posZ=0)
{
    translate([posX*tailleCube,posY*tailleCube,posZ*tailleCube])
        rotate([0,-90,0])
            longeron(nbCubes);
}

module longeron(nbCubes=3)
{
    difference()
    {
        translate([-tailleCube/2,-tailleCube/2,-tailleCube/2])
        cube([tailleCube*nbCubes,tailleCube,tailleCube]);
        if (isPercage==1)
        {
        for (i=[0:nbCubes-1])
        {
            translate([i*tailleCube,0,0])
            rotate([0,0,0])
                trou();
            translate([i*tailleCube,0,0])
            rotate([90,0,0])
                trou();
        }
        rotate([0,90,0])
            trou(nbCubes);
    }}
}


module boite()
{
    difference()
    {
     cube([tailleCube,tailleCube,tailleCube],center=true);
        if (isPercage==1)
        {
     rotate([0,0,0])
           trou();
     rotate([90,0,0])
           trou();
     rotate([0,90,0])
           trou();
    }
}
}

module trou(size=1)
{
        translate([0,0,(size-1)*tailleCube/2])
        {
            cylinder(h=tailleCube*size+2*conge, r=rayonPercage,center=true);
        if (isConge==1)
        {
        translate([0,0,-tailleCube*size/2-conge])
            cylinder(h=2*conge, d1=(rayonPercage+2*conge)*2,
                                d2=(rayonPercage)*2);
        translate([0,0,tailleCube*size/2-conge])
            cylinder(h=2*conge, d2=(rayonPercage+2*conge)*2,
                                d1=(rayonPercage)*2);
        }
            }
}