Toufic BATACHE
1 - Objet fonctionnel
Cabane pour oiseaux :
J'ai commencé par une maison : la chose la plus simple à dessiner. J'ai rapidement compris que ce n'était pas le cas en 3D. J'ai réussi à faire un cube, le vider, créer une porte, des fenêtres et un toit. Ensuite, comme on a besoin d'un objet fonctionnel, j'ai modifié cette maison pour en faire une cabane pour oiseaux en remplaçant la porte rectangulaire par une cylindrique et en créant des trous dans le toit pour pouvoir l'accrocher.
Fichier SCAD : cabane_pour_oiseaux.scad
Fichier exporté STL : cabane_pour_oiseaux.stl
Capture d'écran du modèle 3D :
Code SCAD :
$fn=100;
module fenetre() { // 4 cubes pour créer une fenêtre avec la différence
translate([0, 0, 0]) cube([1.5, 4, 1.5]);
translate([2, 0, 0]) cube([1.5, 4, 1.5]);
translate([2, 0, 2]) cube([1.5, 4, 1.5]);
translate([0, 0, 2]) cube([1.5, 4, 1.5]);
}
difference() {
union() {
cube([10, 10, 10]); // cube maison
translate([5, -.5, 5]) rotate([-90, 0, 0]) cylinder(2, 2.5, 2.5); // contour 3D porte cercle
}
translate([1, 1, 1]) cube([8, 8, 10]); // cube pour vider la maison
//translate([4, -2, 1]) cube([2, 4, 4]); // porte rectangle
translate([5, -1, 5]) rotate([-90, 0, 0]) cylinder(3, 2, 2); // porte cercle
translate([2, 3.25, 3.25]) rotate([0, 0, 90]) fenetre(); // fenetre gauche
translate([12, 3.25, 3.25]) rotate([0, 0, 90]) fenetre(); // fenetre droite
translate([3.25, 7.5, 3.25]) fenetre(); // fenetre arrière
}
difference() {
translate([4.25, -1, 14.5]) rotate([0, 135, 0]) union() { // toit
cube([10, 12, 1]);
translate([0, 0, 0]) rotate([0, -90, 0]) cube([11, 12, 1]);
}
translate([5, 3, 12]) { // trous dans le toit pour qu'on puisse l'accrocher
cylinder(4, .5, .5);
translate([0, 3.5, 0]) cylinder(4, .5, .5);
}
}
translate([1, 1, 10]) rotate([90, 0, 0]) linear_extrude(height=1) { // prisme qui bouche l'espace entre le mur avant et le toit
polygon([[0, 0], [8, 0], [4, 4]]);
}
translate([1, 10, 10]) rotate([90, 0, 0]) linear_extrude(height=1) { // prisme qui bouche l'espace entre le mur arrière et le toit
polygon([[0, 0], [8, 0], [4, 4]]);
}
translate([7, 2, 11]) cube([2, 2, 4]); // cheminée
translate([2.75, .5, 8.5]) rotate([90, 0, 0]) linear_extrude(height=1) {
text("TB", 3, "Figtree:style=Bold"); // initiales TB
}
Paramètres d'impression :
Pour imprimer la cabane à l'endroit, il faut rajouter beaucoup de supports : le trou d'entrée en relief, les initiales, le toit et l'intérieur. Pour résoudre ce problème, je l'ai tourné comme ceci :
Avec supports et jupe (on voit aussi les paramètres d'impression à droite de la capture d'écran) :
Fichier 3MF : cabane_pour_oiseaux.3mf
Fichier GCODE : cabane_pour_oiseaux_0.4n_0.25mm_PLA_MK4S_6h3m.bgcode
Imprimé en 3D :
Vidéo : IMG_6762.MOV
Photos :
2 - Objet impossible à faire autrement qu'en 3D
Table d'appoint en tanségrité :
J'ai toujours aimé avoir une table tanségrité. Tanségrité, c'est quoi ? C'est un principe structurel selon lequel les éléments sous compression sont maintenus en place par des éléments sous tension. Donc une table reliée que par des chaines. Le fait que les chaines fassent partie de l'objet le rendent impossible à recréer qu'en 3D.
Pour faire les chaines, j'ai regardé sur le wiki comment faire des "torus" en SCAD. Un maillon de chaine est un torus, coupé en deux et allongé par deux cylindres. Voilà un maillon de chaine décomposé :
J'ai ensuite transformé ce modèle en module "chain_link()" pour pouvoir l'utiliser dans un autre module "chain()". Dans ce dernier, j'ai créé une for loop qui les lie en les bougant tous et en tournant uniquement les maillons impairs.
Après impression, je me suis rendu compte qu'il y a eu un problème de mesures et les chaines sont un peu longues : la table ne tient pas parfaitement mais ça marche quand même.
Fichier SCAD : tensegrity.scad
Fichier corrigé (que je n'ai pas imprimé) SCAD : tensegrity fixed.scad
Fichier exporté STL : Je ne peux pas le mettre, il fait 275MB :( même en compressant ça fait 30MB...
Capture d'écran du modèle 3D :
Code SCAD :
$fn = 1;
module support() {
cube([3, 3, 20.5]);
translate([0, 0, 17.5]) cube([3, 11, 3]);
}
module base() {
cube([20, 20, 3]);
translate([8.5, 0, 0]) support();
}
difference() {
union() {
base();
translate([0, 20, 30]) rotate([180, 0, 0]) base();
}
translate([6, 7.5, 29]) linear_extrude(height=2) {
text("TB", 5, "Figtree:style=Bold"); // initiales TB
}
}
// https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/2D_to_3D_Extrusion#Mesh_Refinement_2
module chain_link(r, s, t, fn = 100) {
// r = radius
// s = size
// t = tall
union() {
rotate_extrude(angle = 180, $fn = 100) translate([s, 0, 0]) circle(r = r, $fn = fn);
translate([-s, 0, 0]) rotate([90, -36, 0]) cylinder(r = r, h = s * t, $fn = fn);
translate([s, 0, 0]) rotate([90, 0, 0]) cylinder(r = r, h = s * t, $fn = fn);
translate([0, -s * t, 0]) rotate_extrude(angle = -180, $fn = 100) translate([s, 0, 0]) circle(r = r, $fn = fn);
}
}
module chain(r, s, t, l, fn = 100) {
union() {
for (i = [0:l]) {
if (i % 2 == 0) {
translate([0, -t * 1.05 * i, 0]) chain_link(r, s, t, fn);
} else {
translate([0, -t * 1.05 * i, 0]) rotate([0, 90, 0]) chain_link(r, s, t, fn);
}
}
}
}
chain_r = .2;
chain_s = .6;
chain_t = 1.5;
chain_l_long = 16;
chain_l_short = 3;
//translate([1.5, 1.5, 31]) rotate([-90, 0, -45]) chain_link(.2, .6);
union() {
translate([1.5, 1.5, 2.5]) rotate([-90, 0, -45]) chain(chain_r, chain_s, chain_t, chain_l_long, $fn);
translate([18.5, 1.5, 2.5]) rotate([-90, 0, 45]) chain(chain_r, chain_s, chain_t, chain_l_long, $fn);
translate([18.5, 18.5, 2.5]) rotate([-90, 0, -45]) chain(chain_r, chain_s, chain_t, chain_l_long, $fn);
translate([1.5, 18.5, 2.5]) rotate([-90, 0, 45]) chain(chain_r, chain_s, chain_t, chain_l_long, $fn);
translate([10, 10, 12.33]) rotate([-90, 0, 45]) chain(chain_r, chain_s, chain_t, chain_l_short, $fn);
}
Paramètres d'impression :
Pour imprimer la table à l'endroit, il faut rajouter beaucoup de supports. Pour résoudre ce problème, je l'ai tourné comme ceci :
Avec supports et jupe (on voit aussi les paramètres d'impression à droite de la capture d'écran) :
Fichier 3MF : Fichier trop grand pour le télécharger :(
Fichier GCODE : tensegrity_0.4n_0.25mm_PLA_MK4S_5h9m.bgcode
Imprimé en 3D :
Photos :
3 - Objet avec pause d'impression
Cone contenant des petites boules :
J'ai réfléchi à quel objet pourrait ne pas avoir besoin de support, pour que je puisse mettre des trucs à l'intérieur et que ça soit vide. Un cone me semblait le plus simple et intuitif à réaliser. J'ai décidé de mettre des petites boules dedans qui font un bruit lorsqu'on le secoue. J'ai rajouté ces boules à côté du cone, de façon à ce qu'elles soient imprimées avant la pause. Comme ça, je peux les enlever et les mettre dedans !
Fichier SCAD : cone.scad
Fichier exporté STL : cone.stl
Capture d'écran du modèle 3D :
Code SCAD :
$fn=100;
difference() {
// https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder
cylinder(h=15, r1=10, r2=0);
// https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder
translate([0, 0, 1]) cylinder(h=12, r1=8, r2=0);
//cube(15);
}
translate([15, 0, .75]) sphere(.75);
translate([12, 0, .75]) sphere(.75);
translate([-15, 0, .75]) sphere(.75);
translate([-12, 0, .75]) sphere(.75);
translate([0, 15, .75]) sphere(.75);
translate([0, 12, .75]) sphere(.75);
translate([0, -15, .75]) sphere(.75);
translate([0, -12, .75]) sphere(.75);
Paramètres d'impression :
Il n'y a pas besoin de supports pour cette structure. J'ai cependant rajouté une jupe pour plus de stabilité.
On voit aussi les paramètres d'impression à droite de la capture d'écran :
Pour que l'imprimante se mette en pause et nous permette de mettre les boules dans la structure, nous ajoutons une pause en sélectionnant la couche cible avec le curseur de couches à droite et en faisant "clic droit" > "ajouter une pause".
Fichier 3MF : cone.3mf
Fichier GCODE : cone_0.4n_0.25mm_PLA_MK4S_28m.bgcode
Imprimé en 3D :
Photos :
4 - BB-8 : un robot que j'aimerais beaucoup pouvoir réaliser
Ça fait 8 ans que je rêve de construire un BB-8, le droid spherique de Star Wars. En 2016, j'ai même créé une soundboard avec tous les sons que fait BB-8 et elle est toujours disponible sur mon site web. J'ai recherché des tutoriels et j'en ai trouvé un qui date de 2019 (un peu ancien) : https://www.instructables.com/DIY-BB8-Fully-3D-Printed-20cm-Diameter-First-Proto/
Je suis à la recherche d'autres plus nouveaux. Je posterai les liens que je trouve ici.
No Comments