Outils pour utilisateurs

Outils du site


wiki:projet:codes_openscad

Ceci est une ancienne révision du document !


Codes OpenSCAD

Impressions 3D

Code OpenSCAD pour la boîte inférieure

diffRayon = 10; //mm difference de rayon intérieur entre la boîte supérieure et la boîte inférieure

// rayon interieur de la boite supérieure
rayonBSup = 40; //mm

//dimensions de la boite inférieure
hauteurBoite = 55;
rayonBoite = rayonBSup + diffRayon;
epaisseurBoite = 10;
fond = 10; //mm

difference(){
    cylinder(h = hauteurBoite + fond,r1 = rayonBoite+epaisseurBoite, r2 = rayonBoite+epaisseurBoite, $fn = 1000, center = false);
    translate([0, 0, fond]){
        cylinder(h = hauteurBoite, r1 = rayonBoite, r2 = rayonBoite, $fn = 1000, center = false);
    }
}

Code OpenSCAD pour la boîte supérieure

diffRayon = 10; //mm difference de rayon intérieur entre la boîte supérieure et la boîte inférieure

//dimensions de la boite supérieure
hauteurBSup = 55; //mm
epaisseurBSup = 10; //mm
rayonBSup = 40; //mm

difference(){
    cylinder(h = hauteurBSup, r1 = rayonBSup+epaisseurBSup+diffRayon, r2 = rayonBSup+epaisseurBSup+diffRayon, $fn = 1000, center = true);
    cylinder(h = hauteurBSup, r1 = rayonBSup, r2 = rayonBSup, $fn = 1000, center = true);
}

Code OpenSCAD pour le piston

//rayon intérieur de la boîte supérieure
rayonBSup = 40; //mm

//dimensions du piston
rayonC = rayonBSup;
fondC = 10; //mm
hauteurC = 30;
epaisseurC = 10; //mm
largeurEncoche = 6.001; //mm
profondeurEncoche = 20; //mm
profondeurEncoche2 = 30; //mm profondeur réelle : 25 mm
epsilon = 0.001; //mm, pour pouvoir entrer dans la boite supérieure

rotate([0, 180, 0]){
    difference(){
        cylinder(h = hauteurC + fondC, r1 = rayonC-epsilon, r2 = rayonC-epsilon, $fn = 1000, center = false);
        cylinder(h = hauteurC, r1 = rayonC - epaisseurC, r2 = rayonC - epaisseurC, $fn = 1000, center = false);
        translate([0, 0, 10]){
            cube([2*rayonC, largeurEncoche, profondeurEncoche], center = true);
            cube([largeurEncoche, 2*rayonC, profondeurEncoche2], center = true);
        }
    }
}

Code OpenSCAD pour l'anse

//dimensions de la boite supérieure
hauteurBSup = 55; //mm
epaisseurBSup = 10; //mm
rayonBSup = 40; //mm
diffRayon = 10; //mm

diametreVis = 2.5; //mm diametre du trou

difference(){
    //cube pour former la anse
    translate([25, 0, -10]){
        rotate([90, 0, 45]){
            difference(){
                cube([40, 20 ,40], center = false);
                cube([30, 40, 30], center = false);
            }
        }
    }
    //on enleve la boite supérieure pour que les 2 éléments s'accolent parfaitement
    cylinder(h = hauteurBSup, r1 = rayonBSup+epaisseurBSup+diffRayon, r2 = rayonBSup+epaisseurBSup+diffRayon, $fn = 1000, center = true);
    //trou
    translate([rayonBSup+diffRayon+epaisseurBSup-2, -10, 0]){
        rotate([45, 90, 0]){
            cylinder(h = 20, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = true);
        }
    }
    //trou
    translate([rayonBSup+diffRayon+epaisseurBSup-2, +10, 0]){
        rotate([-45, 90, 0]){
            cylinder(h = 20, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = true);
        }
    }
}

Code OpenSCAD pour le support 1 de la poulie

//dimensions du roulement à billes et de la gaine
diametreTrou = 7.9; //mm diametre du trou du roulement à billes
epaisseurR = 7; //mm epaisseur du roulement à billes
depassement = 2; //mm dépassement de la gaine de chaque cote du roulement à billes

//dimensions du support de la poulie
coteColonne = 30; //mm epaisseur de la colonne
hauteurColonne = 57.55; //mm
longTige = depassement*2 + epaisseurR + 10+20;

//dimensions du support pour le raporteur
longSupRap = 10; //mm longueur du support pour enfiler le rapporteur
epSupRap = 10; //mm epaisseur du support pour enfiler le rapporteur

//dimensions du socle du support
diametreVis = 2.5; //mm // diametre des trous pour les vis
epaisseurSocle = 5;//mm
largSocle = coteColonne + 20;


//colonne
cube([coteColonne, coteColonne, hauteurColonne], center = true);

//tige pour la poulie
translate([coteColonne/2+longSupRap-2, 0, hauteurColonne/2-diametreTrou/2]){
    rotate([0, 90, 0]){
        translate([0, 0, 0]){
            cylinder(h = longTige, r1 = diametreTrou/2, r2 = diametreTrou/2, $fn = 1000, center = false);
        }
    }
    
}

//support pour enfiler le rapporteur
translate([coteColonne/2+longSupRap/2-1, 0, 0]){
    cube([longSupRap, epSupRap, hauteurColonne], center = true);
}

//socle
difference(){
    translate([0, 0, -hauteurColonne/2+epaisseurSocle/2]){
        cube([largSocle, largSocle, epaisseurSocle], center = true);
    }
    //Trous pour les vis : 5
    //Trou 1
    translate([-coteColonne/2-5, 0, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 2
    translate([0, -coteColonne/2-5, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 3
    translate([0, coteColonne/2+5, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 4
    translate([+coteColonne/2+5, epSupRap-2, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 5
    translate([+coteColonne/2+5, -epSupRap+2, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
}

Code OpenSCAD pour le support 2 de la poulie

//dimensions du support de la poulie
coteColonne = 30; //mm  epaisseur de la colonne
hauteurColonne = 57.55 ; //mm
surplusCol = 10; //mm hauteur de la colonne au-dessus du trou

//dimensions du trou
enfoncement = 20; //profondeur du trou pour emboîter la tige
diametreTrou = 7.9; //mm diametre du trou du roulement à billes

//dimensions du socle du support
diametreVis = 2.5; //mm // diametre des trous pour les vis
epaisseurSocle = 5;//mm
largSocle = coteColonne + 20;


//colonne
difference(){
    translate([0, 0, surplusCol/2]){
        cube([coteColonne, coteColonne, hauteurColonne+surplusCol], center = true);
    }
    //Trou pour enfoncer la tige
        translate([-5, 0, hauteurColonne/2-diametreTrou/2]){
        rotate([0, 90, 0]){
        cylinder(h = enfoncement, r1 = diametreTrou/2+0.5, r2 = diametreTrou/2+0.5, $fn = 1000, center = false);
        }
    }
}

//socle
difference(){
    translate([0, 0, -hauteurColonne/2+epaisseurSocle/2]){
        cube([largSocle, largSocle, epaisseurSocle], center = true);
    }
    //Trous pour les vis : 4
    //Trou 1
    translate([-coteColonne/2-5, 0, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 2
    translate([0, -coteColonne/2-5, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 3
    translate([0, coteColonne/2+5, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
    //Trou 4
    translate([+coteColonne/2+5, 0, -hauteurColonne/2]){
        cylinder(h = epaisseurSocle, r1 = diametreVis/2, r2 = diametreVis/2, $fn = 1000, center = false);
    }
}

Code OpenSCAD pour la gaine de la poulie

//dimensions de la gaine
epaisseurR = 7; //m epaisseur du roulement à billes
diametreR = 20; //mm diametre du roulement à billes
depassement = 2; //mm dépassement de la gaine de chaque cote du roulement à billes

epaisseurExt = 15; //mm epaisseur des cylindres exterieurs de la gaine
epaisseurInt = 10; //mm epaisseur du cylindre interieur de la gaine

longFleche = 40; //mm

//cylindre intérieur de la gaine
difference(){
    cylinder(h = epaisseurR, r1 = diametreR/2 + epaisseurInt, r2 = diametreR/2 + epaisseurInt, $fn = 1000, center = true);
    cylinder(h = epaisseurR, r1 = diametreR/2, r2 = diametreR/2, $fn = 1000, center = true);
}

//cylindre extérieur 1 de la gaine
difference(){
    translate([0, 0, epaisseurR/2]){
        cylinder(h = depassement, r1 = diametreR/2 + epaisseurExt, r2 = diametreR/2 + epaisseurExt, $fn = 1000, center = true);
    }
    cylinder(h = epaisseurR+2*depassement, r1 = diametreR/2, r2 = diametreR/2, $fn = 1000, center = true);
}

//cylindre extérieur 2 de la gaine
difference(){
    translate([0, 0, -epaisseurR/2]){
    cylinder(h = depassement, r1 = diametreR/2 + epaisseurExt, r2 = diametreR/2 + epaisseurExt, $fn = 1000, center = true);
    }
    cylinder(h = epaisseurR+2*depassement, r1 = diametreR/2, r2 = diametreR/2, $fn = 1000, center = true);
}

//tige de la fleche
translate([diametreR/2+epaisseurExt-1+longFleche/2, 0, epaisseurR/2]){
    cube([longFleche, depassement, depassement], center = true);
}

//pointe de la fleche
translate([diametreR/2+epaisseurExt+longFleche-1, 0, epaisseurR/2]){
    rotate([0, 0, 45]){
        cube([2, 2, 2], center = true);
    }
}

Découpe/gravure

Code OpenSCAD pour le cadre

//dimensions du cadre
longC = 300 + 80 + 40; //mm longueur du cadre
hautC = 300; //mm hauteur du cadre
bordureBas = 50; //mm épaisseur de la partie inférieure du cadre
bordure = 40; //mm épaisseur des partie latérales et supérieure du cadre
largeurFente = 7; //mm
profondeurFente = 25; //mm

difference(){
    square([longC, hautC], center = true);
    translate([0, (bordureBas-bordure)/2, 0]){
        square([longC-bordure*2, hautC-bordure-bordureBas], center = true);
    }
    translate([-largeurFente/2, -hautC/2+bordureBas/2, 0]){
        square([largeurFente, profondeurFente]);
    }
   
}

Code OpenSCAD pour le bras de levier

//dimensions du bras de levier
largeur = 40; //mm
diametreTrou = 4; //mm
nbUnites = 48; //nombre d'encoches
longueur = 500; //mm longueur de la barre à partir du trou

//dimensions des encoches
profondeurEncoche = 2; //mm
var = 0;

difference(){
    square([longueur, largeur]);
    //trou
    translate([0, largeur/2, 0]){
        circle(diametreTrou/2, $fn = 360);
    }
    //encoches
    for (i=[1:nbUnites]){
        var = i*10;
        translate([var, 0, 0]){
            rotate([0, 0, 45]){
                square([profondeurEncoche, profondeurEncoche], center = true);
            }
        }
    }
}

//Pour la forme arrondie
translate([0, largeur/2, 0]){
    difference(){
        circle(largeur/2);
        //trou
        circle(diametreTrou/2, $fn = 360);
    }
}

Code OpenSCAD pour le soutien de bras de levier

Code OpenSCAD pour la pièce d'emboîtement 1

Code OpenSCAD pour la pièce d'emboîtement 2

Code OpenSCAD pour la pièce d'emboîtement 3

Code OpenSCAD pour l'ailette

//dimensions des demi-cercles pour espacer les 2 boites
rayonExt = 60; //mm
rayonInt = 40; //mm

//"poignee
translate([0, rayonExt, 0]){
    circle(20, $fn = 1000);
}

//arc de cercle
difference(){
    difference(){
        circle(rayonExt, $fn = 1000);
        circle(rayonInt, $fn = 1000);
    }
    translate([-rayonExt, -rayonExt, 0]){
        square([rayonExt*2, rayonExt]);
    }
}

Code OpenSCAD pour la barre

longB = 170; //mm
largB = 5; //mm
square([longB, largB]);

Code OpenSCAD pour le support inférieur

Code OpenSCAD pour le support supérieur

Code OpenSCAD pour les pieds

Code OpenSCAD pour la barre de soutien

square([150, 350]);

Code OpenSCAD pour le rapporteur

LDAP: couldn't connect to LDAP server
wiki/projet/codes_openscad.1491483001.txt.gz · Dernière modification: 2017/04/06 12:50 de amauge