Table des matières

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

//dimensions de la piece de soutien
largB2 = 40; //mm largeur de la piece
longB2 = 123; //mm longueur de la piece à partir du trou circulaire
largFente = 20; //mm largeur du trou rectangulaire
hautFente = 18+6+6+3; //mm hauteur du trou rectangulaire
hautCreux = longB2/10; //mm longueur d'une crénelure
profCreux = 6; //mm profondeur d'une crénelure
diametreTrou = 4; //mm

difference(){
    square([longB2, largB2]);
    translate([0, largB2/2, 0]){
        //trou
        circle(diametreTrou/2, $fn = 360);
    }
    //fente rectangulaire
    translate([longB2-(hautFente+largB2/2), largB2/4, 0]){
        square([hautFente, largFente]);
    }
     //crenelures : 4
    translate([hautCreux, 0, 0]){
        square([hautCreux,profCreux]);
    }
    translate([3*hautCreux, 0, 0]){
        square([hautCreux,profCreux]);
    }
    translate([2*hautCreux, largB2-profCreux, 0]){
        square([hautCreux,profCreux]);
    }
    translate([4*hautCreux, largB2-profCreux, 0]){
        square([hautCreux,profCreux]);
    }
}

//forme arrondie
translate([0, largB2/2, 0]){
    difference(){
        circle(largB2/2);
        translate([hautCreux, -largB2/2, 0]){
            square([hautCreux,profCreux]);
        }
        //Trou
        circle(diametreTrou/2, $fn = 360);
        
    }
}

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

//dimensions de la piece d'emboitement 1
longB2 = 123; //mm longueur de la piece de soutien à partir du trou circulaire
hautCreux = longB2/10; //mm longueur d'une crénelure
profCreux = 6; //mm profondeur d'une crénelure

difference(){
    square ([4*hautCreux, profCreux*3]);
    translate([0, 0, 0]){
        square([hautCreux,profCreux]);
    }
    translate([2*hautCreux, 0, 0]){
        square([hautCreux,profCreux]);
    }
    translate([hautCreux, 2*profCreux, 0]){
         square([hautCreux,profCreux]);
    }
    translate([3*hautCreux, 2*profCreux, 0]){
        square([hautCreux,profCreux]);
    }
}

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

longueur = 50; //mm
largeur = 20; //mm
square([longueur, largeur]);

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

longueur = 50; //mm
largeur = 20; //mm
square([longueur, largeur]);

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

difference(){
    square([300, 600], center = true);
    translate([6, -100, 0]){
        square([6, 40], center = true);
    }
    translate([-6, -100, 0]){
        square([6, 40], center = true);
    }
    translate([-6, -195, 0]){
        square([6, 40], center = true);
    }
    translate([6, -195, 0]){
        square([6, 40], center = true);
    }
    translate([0, -300, 0]){
        square([5, 40], center = true);
    }
}

Code OpenSCAD pour le support supérieur

difference(){
    square([300, 600], center = true);
    circle(60, center = true, $fn = 360);
    translate([6, -100, 0]){
        square([6, 40], center = true);
    }
    translate([-6, -100, 0]){
        square([6, 40], center = true);
    }
    translate([-6, -195, 0]){
        square([6, 40], center = true);
    }
    translate([6, -195, 0]){
        square([6, 40], center = true);
    }
    translate([0, -300, 0]){
        square([5, 40], center = true);
    }
}

Code OpenSCAD pour les pieds

//dimension des pieds
hauteur = 600; //mm
largeur = 300; //mm
largHaut = 100; //mm largeur de sommet des pieds
largBas = 200; //mm largeur de la base des pieds
//dimensions de la fente
profFente = 300; //mm
largFente = 20 ;//mm

difference(){
    square([largeur, hauteur]);
    translate([largHaut, 0, 0]){
        rotate([0, 0, -10]){
          square([largeur, hauteur+100]);
        }
    }
    //fente du pied à gauche
    translate([largHaut/2, profFente/2, 0]){
        square([largFente, profFente], center = true);
    }
}

//fente du pied  droite
translate([largeur-largHaut/2, hauteur-profFente/2, 0]){
    square([largFente, profFente], center = true);
}

Code OpenSCAD pour la barre de soutien

square([150, 350]);

Code OpenSCAD pour le rapporteur

rayonRap = 40; //mm
e = 0.01; //mm largeur des graduations
epSupRap = 10; //mm largeur de la fante du rapporteur (épaisseur du support)
diametreTrou = 7.9; //mm diamètre du trou du roulement à billes

difference(){
    circle(rayonRap, $fn = 1000, center = true);
    //graduations
    difference(){
        for(i=[1:18]){
            rotate([0, 0, i*10]){
                square([e, rayonRap*2], center = true);
            }
        }
        circle(rayonRap-8, $fn = 1000, center = true);
    }
    difference(){
        for(i=[1:18*2]){
            rotate([0, 0, i*5]){
                square([e, rayonRap*2], center = true);
            }
        }
        circle(rayonRap-5, $fn = 1000, center = true);
    }
    difference(){
        for(i=[1:180]){
            rotate([0, 0, i]){
                square([e, rayonRap*2], center = true);
            }
        }
        circle(rayonRap - 2, $fn = 1000, center = true);
    }
    //fente
    translate([0, -rayonRap/2+diametreTrou/4, 0]){
        square([epSupRap, rayonRap+diametreTrou/2], center = true);
    }
    //texte : 0, 90, 180
    translate([-2.5, rayonRap-12, 0]){
        text("90", size = 3, font = "Yu Gothic:style=Regular");
        //text("90", size = 3, font = "Arial");
    }
    translate([-rayonRap+12, -1, 0]){
        rotate([0, 0, 90]){
            text("0", size = 3, font = "Yu Gothic:style=Regular");
        }
    }
    translate([rayonRap-12, 3.5, 0]){
        rotate([0, 0, -90]){
            text("180", size = 3, font = "Yu Gothic:style=Regular");
        }
    }
}