Skip to main content

Timothé MIEL

Objet n°1 - Fonctionnel : Cages de football

Capture d’écran 2024-11-25 à 17.48.32.png

Pour réaliser cet objet, j'ai principalement utilisé le module linear_extrude : donnant du relief à un objet en 2D (ici, des polygones).
Très utile pour la création des poteaux des cages par exemple.

Pour réaliser les trous dans le filet des cages, j'ai utilisé une boucle for générant des cylindres, se soustrayant à la surface arrière (elle aussi créée par linear_extrude).

Prototypage.scad :

module poteau(solX, solY){
rotate([0, -90, 0])
    linear_extrude(height = 0.5, true, 10, twist=0)
    polygon([[solX, solY], [solX, solY+10], [solX+2, solY+10], [solX+20, solY+2], [solX+20, solY]]);
}

module filet(solX, solY, largeur){
    difference(){
rotate([0, -90, 0])
    linear_extrude(height=largeur, true, 10, twist=0)
        polygon([[solX+2, solY+10], [solX+20, solY+2], [solX+18, solY+2], [solX+2, solY+8]]);
for( j = [0:2]){
    for( i = [0:12] ){
        translate([solX-38+3*i, solY+2, 0+7*j])
            rotate([-45, 0, 0])
                cylinder(15, 1, 1);
}}
for( j = [0:1]){
    for( i = [0:11] ){
        translate([solX-36.5+3*i, solY+2, 3.5+7*j])
            rotate([-45, 0, 0])
                cylinder(15, 1, 1);
    }}}}


module cadre(solX, solY, largeur){
    poteau(solX, solY);
        translate([-largeur, 0, 0])
            poteau(solX, solY);

    translate([-largeur, solY+8, solX])
        cube([largeur, 2, 2]);

    translate([solX, solY, solX+18])
        rotate([0, -90, 0])
            linear_extrude(height=largeur, true, 10, twist=0)
                polygon([[0, 0], [2, 0], [2, 2], [0, 2.88]]);
}

module cages(solX, solY, largeur){
    cadre(solX, solY, largeur);
    filet(solX, solY, largeur);
}

//NE PAS CHANGER LES VALEURS
cages(0, -40, 40);

Capture d’écran 2024-11-25 à 17.54.38.png

Pour imprimer cette dernière, un petit support fut nécessaire sous la rambarde basse comme nous pouvons le voir sur la capture d'écran.

IMG_5501.jpeg

L'impression de 1h et 3 min s'est déroulée sans problème.

Objet n°2 - Possible à créer seulement avec une imprimante 3D : Roue à bille

Capture d’écran 2024-11-25 à 17.59.50.png

Le code pour cet objet est simple et clair.

Vroom.scad :

difference(){
    cylinder(20, 12, 12, true);
    cylinder(20, 6, 6, true);
    cylinder(18, 10, 10, true);
}
sphere(8.5);


Capture d’écran 2024-11-25 à 18.04.01.png

Afin d'imprimer la bille intérieure, un support est obligatoire, j'ai donc ajouté ce dernier via un générateur de support.
De plus l'imprimer sur le côté comme ceci permettait d'éviter tout problème d'impression de la partie supérieure.

Capture d’écran 2024-11-25 à 18.04.12.png

L'impression sensée durer 46 min a finalement pris 1h01 dû à des changements de dernière minute non pris en photo.

IMG_5504.jpeg

Le retrait du support interne était un peu complexe, j'ai dû utiliser une pince pendant un bon quart d'heure pour le retirer.

Objet n°3 - Object avec pause d'impression : Calebasse

Calebasse avec vue interne

Pour cet objet, des fonctions simple ont été utilisées : resizeuniondifference. Mais obtenir un résultat correct a demandé d'être rigoureux sur l'utilisation de ces fonctions. J'ai d'abord conçu la calebasse avec ce code :

Calebasse.scad :

$fn = 100;

module extHaut(){
    translate([7, 7, 130])
        resize([45, 45, 50])
            sphere();
}

module intHaut(){
    translate([7, 7, 130])
        resize([40, 40, 45])
            sphere();
}

module extBas(){
    resize([100, 100, 130])
        sphere();
};

module intBas(){
    resize([95, 95, 123, 5])
        sphere();
};

module tubeHaut(){
    translate([0, 0, 95])
            cylinder(35, 12, 12);
    };
    
module tubeBas(){
    translate([0, 0, 61])
            cylinder(35, 12, 12);
};  
module tubeInt(){
    cylinder(120, 7, 7);
};

module bas(){
    difference(){
        extBas();
        intBas();
    };
    tubeBas();
};

module haut(){
        difference(){
            tubeHaut();
            extHaut();
        };
        difference(){
            extHaut();
            intHaut();
        };
};
  

module calebasse(){
    difference(){
        union(){
            bas();
            haut();
        };
        tubeInt();
    };
};


calebasse();

// Visualiser l'intérieur
/**
difference(){
    calebasse();
    translate([-100, -100, 0])
        cube([100, 100, 200]);
};**/

À cette calebasse, j'ai rajouté des graines : 

Capture d’écran 2024-12-02 à 15.26.29.png

Afin d'en avoir plusieurs d'un coup, j'ai ajouté une simple boucle for :

Capture d’écran 2024-12-02 à 15.27.06.png

Graines.scad :

$fn = 40;

module graine(){
    difference(){
        scale([7, 3, 1])
            sphere();
        translate([0, 0, -1])
            cube([20, 20, 2], true);
    };
};

//Une graine
//graine();

//50 graines
for (j = [0 : 4]){
    for(i = [0 : 9]){
        translate([21*j, 7*i, 0])
            graine();
    };
};
    

 

Réglages utilisés :

Les réglages à utiliser pour les imprimantes Prusa sont :

Hauteur de couche :  0.20mm
Filament : Prusa PLA
Imprimante : Original Prusa MK4S HF0.4 nozzle