plusieurs séances (au moins 4) de deux heures chacune
10 / 12 personnes, idéalement des binômes parent/enfant
à partir de 13 ans jusqu'à 107 ans (notions de trigonométrie (angles, ¶, sinus, cosinus) acquises)
→ savoir écrire, compter
→ connaître les angles, les sinus et cosinus (trigonométrie)
Matériel nécessaire et mis à disposition des participants: ordinateur, logiciel Openscad, imprimantes 3D et accessoires, logiciel Cura
Le but de cet atelier est:
Vous avez 15 ans ou presque, vous réfléchissez à l'orientation que vous choisirez et pour affiner votre choix, vous avez décidez de trouver un stage dans des entreprises dont l'activité vous intéresse.
Çà y est, vous avez décrochez un stage dans une entreprise informatique et le sujet de votre stage est le suivant:
“Pour répondre aux souhaits de nos adhérents, l'association vous propose de l'aider à concevoir et produire un arbre généalogique modulaire 3D. A partir d'un point d'origine, les modules que vous proposerez permettront de construire une arborescence contenant l'ensemble des descendants d'un couple.
Pour représenter les descendants d'un ancêtre né pendant la révolution française (1795-1811), il est fort probable qu'il faille envisager une représentation contenant près de 1000 descendants. Il faut y ajouter les conjoints des couples de parents … cela ajoutera près de 1000 personnes supplémentaires.
Génération n ou niveau n : chaque enfant de la génération n-1 pourra avoir de 1 à 15 enfants
Génération 4 ou niveau 4 : chaque enfant de la génération 3 pourra avoir de 1 à 15 enfants
Génération 3 ou niveau 3 : chaque enfant de la génération 2 pourra avoir de 1 à 15 enfants
Génération 2 ou niveau 2 : 1 à 15 enfants
Génération 1 ou niveau 1 : 2 personnes
Représenter cet arbre descendant sur un plan se révèle impossible à moins de disposer d'un … très grand mur.
Comme le poumon des mammifères pour augmenter sa surface d'échange air/sang ou l'arbre pour augmenter sa surface d'exposition au soleil pour la photosynthèse, nous tenterons une représentation en 3D et disposer ainsi de la place nécessaire pour contenir et hiérarchiser.
Ce qui vous est demandé ici est donc de proposer une représentation 3D de l'arbre.
Et si nous proposions la production d'un arbre de type mécano. L'arbre part d'un tronc (qui ne fait pas partie de l'exercice, on pourra se servir avec avantage d'un pied pupitre de musicien). Nous débuterons le travail par le haut du fût du tronc où seront représentés les deux individus du couple du début de 19ème siècle d'où partirons un nombre de 1 à 15 enfants (1ère subdivision).
De ce premier plan de subdivisions partiront donc un nombre variable de branches de première génération qui elles-même se subdiviseront à leur tour en un nombre variable de branches de seconde génération et ainsi de suite.
Inspirons d'exemples présents dans la nature (les arbres) ou dans notre corps (nos bronches) pour nous aider à comprendre comment nous pourrons résoudre ce défi.
Nous pouvons observer ici un arbre dont chaque branche donne naissance à un nombre variable de branches sur plusieurs générations.
Si nous examinons cet arbre présent dans nos bronches, nous voyons qu'à chaque subdivision ou génération, par un nombre variable de branches et que cela se répète à chaque subdivision suivante.
L'arbre généalogique de nos ancêtre obéit au même phénomène: chacun de nos ancêtres à un nombre variable d'enfants et cela se répète à chaque génération !
Il est difficile voire impossible de représenter une telle structure sur un plan (2 dimensions) au-delà de la troisième génération.
La représentation en 3 dimensions devra résoudre cette difficulté de représentation.
Je vous propose donc de concevoir un arbre en trois dimensions avec un nombre variable de branches à chaque génération et de modéliser les sous-objets emboîtables de cet arbre en les imprimant sur une imprimante 3D classique.
Différents sous-objets de notre arbre:
Pour pouvoir modéliser toute forme d'arborescence en fonction des besoins (nombre variable d'enfants dans chaque famille), il faudra être capable de la composer au montage en fonction des besoins spécifiques.
Par conséquent, pour relier les branches filles à leur branche mère, nous créerons des couronnes à deux plateaux superposés qui termineront chaque branche mère.
Pour cela, nous proposons les sous-ensembles emboîtables suivants:
La branche (A) sera le composant les plus facile à programmer.
Elle aura une longueur fixe et qui pourra changer de valeur pendant les tests.
Elle sera cylindrique et terminée à chaque extrémité pour une forme polygonale; cela évitera la rotation des branches autour de leur axe.
Résumé:
// variables utilisées //dimensions communes facettes=6; // dimensions branche di_br=10; // diamètre branche lg_emboutsbr=15; // longueur des embouts des branches lg_br=170; // longueur de la branche (hors tout) // //dimensions capitule di_grdplatcap=150; // diamètre plateau supérieur du capitule ep_grdplatcap=2; // épaisseur plateau supérieur du capitule di_ptplatcap=90; // diamètre plateau inférieur du capitule ep_ptplatcap=2; // épaisseur plateau inférieur du capitule ep_anncap=14; // épaisseur anneau inter plateaux du capitule // //dimensions socle di_socle=15; // diamètre du socle (à adapter au support // choisi (pied de pupitre de musicien // par exemple) //dimensions calculées haut_cap=ep_grdplatcap+ep_ptplatcap+ep_anncap; di_emboutsbr=di_br-1.0; // diamètre des embouts
Langage Openscad
Pour la création de ce sous objet, nous découvrirons le langage Openscad, la syntaxe des commandes, les variables et les variables spéciales et les principes de programmation avec ce langage. Nous n'utiliserons que deux fonctions: une fonction 3D cylinder() et une fonction de transformation translate().
Le capitule est le composant le plus ardu à programmer.
Il sera composé de deux plateaux concentriques circulaires superposés, posés horizontalement avec un intervalle.
Ils seront percés d'un nombre variable de trous pentagonaux disposés en deux cercles au tour du centre et dans lesquels les branches viendront s'insérer.
Pour percer les trous dans l'angle et la direction souhaitée, nous aurons ici besoin de calculer les coordonnées de chaque point à l'aide des sinus / cosinus de ces points:
Résumé:
//dimensions communes facettes=6; // dimensions branche di_br=10; // diamètre branche lg_emboutsbr=15; // longueur des embouts lg_br=170; // longueur de la branche // //dimensions capitule di_grdplatcap=150; // diamètre plateau supérieur du capitule ep_grdplatcap=3; // épaisseur plateau supérieur du capitule di_ptplatcap=90; // diamètre plateau inférieur du capitule ep_ptplatcap=4; // épaisseur plateau inférieur du capitule ep_anncap=14; // épaisseur anneau inter plateaux du capitule //
La troisième pièce de notre montage aura le rôle crucial de cheviller le capitule à la branche qui le supporte. Il aura la forme d'un Y irrégulier
toutes les variables:
//dimensions communes facettes=6; // dimensions branche di_br=10; // diamètre branche lg_emboutsbr=15; // longueur des embouts lg_br=170; // longueur de la branche // //dimensions capitule di_grdplatcap=150; // diamètre plateau supérieur du capitule ep_grdplatcap=3; // épaisseur plateau supérieur du capitule di_ptplatcap=90; // diamètre plateau inférieur du capitule ep_ptplatcap=4; // épaisseur plateau inférieur du capitule ep_anncap=14; // épaisseur anneau inter plateaux du capitule // //dimensions calculées haut_cap=ep_grdplatcap+ep_ptplatcap+ep_anncap+3; //
La quatrième et dernière pièce de notre montage assurera la fixation de notre ensemble sur le pied que vous aurez choisi. On utilisera donc un seul raccord-socle pour un arbre.
Ce raccord sera composé de:
Résumé:
toutes les variables:
//dimensions communes facettes=6; // dimensions branche di_br=10; // diamètre branche lg_emboutsbr=15; // longueur des embouts lg_br=170; // longueur de la branche // //dimensions capitule di_grdplatcap=150; // diamètre plateau supérieur du capitule ep_grdplatcap=3; // épaisseur plateau supérieur du capitule di_ptplatcap=90; // diamètre plateau inférieur du capitule ep_ptplatcap=4; // épaisseur plateau inférieur du capitule ep_anncap=14; // épaisseur anneau inter plateaux du capitule // //dimensions calculées haut_cap=ep_grdplatcap+ep_ptplatcap+ep_anncap+3; //
L'arborescence est faite pour représenter les descendants d'un ancêtre ou l'organisation d'une entreprise sous forme d'organigramme.
Pour afficher les personnes qui composent l'organigramme, il faudra pouvoir poser des étiquettes au différentes terminaisons et intersection des branches.
Et si nous utilisions des feuilles comme les feuilles de l'arbre.
de nombreuses formes de feuilles existent. Pour cet exercice, nous choisirons les feuilles de tilleul dont le forme est agréable à voir.
Comment s'y prendre ?
Coder une feuille d'arbre est possible mais représente un véritable défi. Nous arriver à nos fins, nous choisirons une photo de feuille de tilleul (de bonne résolution et téléchargée sur Wikimedia Commons) et à laquelle nous aurons préalablement ajouté un pétiole de belle longueur avec le logiciel libre GIMP.
Une photo est un document 2D … comment passer de la photo 2D à un document 3D modifiable avec Openscad.
Cela est possible mais il faut d'abord passer notre photo d'image matricielle en image vectorielle et nous choisirons le logiciel libre de traitement d'images vectorielles Inkscape pour faire cela.
Le tutoriel en ligne Convert Any 2D Image to a 3D Object Using OpenSCAD (and Only Free Software) nous permettra d'aboutir facilement à la création d'une feuille de tilleul 3D avec Openscad. Voici quelques copie d'écran:
- Vectoriser une image 2D
- Génération d'un script Openscad pour l'image vectorisée
- Adaptation du script Openscad
Les principales fonctions qui seront utilisées au cours de cet atelier sont les les suivantes:
Les principales opérations que nous exécuterons seront:
translate([0,0,0]) { color("DarkKhaki"){ translate([0,-4,-diametre_branche/2]){ difference(){ cylinder(d=17.6,h=2.5,$fn=60); translate([0,0,0.001]) cylinder(d=14.8,h=2.6.001,$fn=6); } } } }
creusera un cylindre hexagonal ($fn=6) de 14.8 mm de diamètre à l'intérieur d'un cylindre circulaire ($fn=60) de 17.6 mm de diamètre et de même hauteur.
Les principaux mouvements dont nous aurons besoin sont:
D'une manière générale, l'opération ou le mouvement peuvent ne concerner qu'une exécution de la fonction ou plusieurs.
Le processus de production d'un fichier 3D comporte 3 étapes essentielle:
L'étape 1 part d'une feuille blanche pour arriver à un fichier STL, la seconde étape part du fichier STL (identique pour toutes les imprimantes) pour arriver à un fichier Gcode (spécifique à un objet pour un modèle d'imprimante) et la dernière consiste à copier le fichier Gcode sur une carte SD qui sera introduite dans l'imprimante pour lancer l'impression.
Comme pour les images numériques, Internet propose un nombre illimité d'objet STL à imprimer. Si on écarte d'impression d'objets “gadget” pour lesquels l'acquisition d'une imprimante 3D parait inappropriée, ces bibliothèques proposent d'autres ressources.
A titre d'exemple, je vous propose de cliquer sur ce lien pour voir voir que ces bibliothèques proposent aussi des codes OpenScad pour des objets … alors facilement “customisables” …