Timothé MIEL
Objet n°1 - Fonctionnel : Cages de football
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).
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);
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.
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
Le code pour cet objet est simple et clair.
difference(){
cylinder(20, 12, 12, true);
cylinder(20, 6, 6, true);
cylinder(18, 10, 10, true);
}
sphere(8.5);
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.
L'impression sensée durer 46 min a finalement pris 1h01 dû à des changements de dernière minute non pris en photo.
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
Pour cet objet, des fonctions simple ont été utilisées : resize, union, difference. 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 :
$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 :
Afin d'en avoir plusieurs d'un coup, j'ai ajouté une simple boucle for :
$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