Outils pour utilisateurs

Outils du site


atelierscodage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
atelierscodage [2021/06/30 17:14]
mediarbx
atelierscodage [2021/07/15 18:36] (Version actuelle)
mediarbx [du bon usage des bibliothèques d'objet]
Ligne 52: Ligne 52:
   * __le tronc:__  comme annoncé, nous n'imprimerons pas le tronc, un pied de pupitre de musicien fera très bien notre affaire.   * __le tronc:__  comme annoncé, nous n'imprimerons pas le tronc, un pied de pupitre de musicien fera très bien notre affaire.
   * __les branches:__  du tronc partent un nombre variables de branches. Comme pour l'arbre réel illustré plus haut, nous déciderons que certaines branches sont inclinées à 30 degrés et d'autres à 50 degrés.   * __les branches:__  du tronc partent un nombre variables de branches. Comme pour l'arbre réel illustré plus haut, nous déciderons que certaines branches sont inclinées à 30 degrés et d'autres à 50 degrés.
-  * pour emboîter les sous-branches aux branches, nous nous servirons d'un __capitule__ (comme le capitule d'une fleur) d'où partent nos branches filles à leur tour inclinées à 30 degrés et où à 50 degrés.+  * pour emboîter les sous-branches aux branches, nous nous servirons d'un __capitule__  (comme le capitule d'une fleur) d'où partent nos branches filles à leur tour inclinées à 30 degrés et où à 50 degrés.
  
 {{  :codage:arbre_generationel-plateau1-bis.png?direct&600  }} {{  :codage:arbre_generationel-plateau1-bis.png?direct&600  }}
Ligne 72: Ligne 72:
 {{  :codage:tige_a_embouts_2021.png?direct&  }}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. {{  :codage:tige_a_embouts_2021.png?direct&  }}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.
  
-  * nous désignerons la longueur par la variable brl à laquelle nous donnerons une valeur initiale de 170 mm hors tout (cad embouts compris). +  * nous désignerons la longueur par les variables //di_br//  et //lg_br//  à laquelle nous donnerons une valeur initiale de 170 mm hors tout (cad embouts compris / lg_br=170). 
-  * elle sera cylindrique d'un diamètre de 10 mm +  * elle sera cylindrique d'un diamètre de 10 mm (di_br=10) 
-  * elle sera prolongée d'un embout cylindrique hexagonal (cylindre à 6 côtés sur sa longueur) de 15mm qui pourra s'enfoncer dans le capitule à l'une de ses extrémité et dans le raccord à l'autre extrémité (le diamètre de l'embout sera de 1.5 mm plus petit que celui de la branche).+  * elle sera prolongée d'un embout cylindrique hexagonal (cylindre à 6 côtés sur sa longueur) qui pourra s'enfoncer dans le capitule à l'une de ses extrémité (voir //haut_cap=ep_grdplatcap+ep_ptplatcap+ep_anncap//  : attention à l'inclinaison) et dans le raccord à l'autre extrémité (le diamètre de l'embout sera de 1.5 mm plus petit que celui de la branche).
  
 **Résumé:** **Résumé:**
Ligne 80: Ligne 80:
 <code> <code>
 // variables utilisées // variables utilisées
-    facettes=6;         // nombre de facettes des embouts +//dimensions communes 
-    lg_emboutsbr=15;    // longueur des embouts en mm +facettes=6; 
-    lg_br=170;          // longueur tige +// dimensions branche 
-    di_br=10          // diamètre tige +di_br=10;           // diamètre branche 
-// variables calculées +lg_emboutsbr=15;    // longueur des embouts des branches 
-    di_emboutsbr=di_br-1.5; // diamètre des embouts+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
  
 </code> </code>
Ligne 199: Ligne 215:
  
 ===== Principales fonctions ===== ===== Principales fonctions =====
 +Les principales fonctions qui seront utilisées au cours de cet atelier sont les les suivantes:
 +  * **cylinder(h,r1|d1,r2|d2,center)** où h est la hauteur du cylindre, r ou d ses rayon/diamètre à chaque extrémité et center permet de positionner son axe par rapport au centre.
 +Les principales opérations que nous exécuterons seront:
 +  * **difference()** cette opération permet de soustraire à la forme construite par la première fonction toutes les formes décrites par les fonctions suivantes.\\ Par exemple, le code <code>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);
 +                }
 +            }
 +        }
 +    }</code> 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:
 +  * **translate([x,y,z])** permet de se déplacer du point en cours vers le point [x,y,z]
 +  * **rotation([x,y,z])** permet d'orienter les parties de l'objet en cours dans la direction de l'angle [x,y,z]
 +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.
 +
  
 [[https://www.openscad.org/cheatsheet/|Aide-mémoire des fonctions du langage OpenScad]] [[https://www.openscad.org/cheatsheet/|Aide-mémoire des fonctions du langage OpenScad]]
 +===== du fichier à l'objet imprimé =====
 +Le processus de production d'un fichier 3D comporte 3 étapes essentielle:
 +  - création du modèle avec un logiciel de codage (OpenScad), avec un modélisateur (Blender, ThinkerCad, ...) ou encore en téléchargeant le fichier depuis un site (il s'agit alors d'une copie et non d'une création !)
 +  - la transformation du fichier 3D et sa préparation pour l'imprimante (choix de la densité, de la taille, du positionnement sur le plateau de l'imprimante, de l'ajout de support pour les parties en suspension, etc
 +  - l'impression proprement dite (qui peut être très, très longue pour les objets complexes
 +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.  
 +{{ :codage:delideealobjet.png?800 |}}
 +===== du bon usage des bibliothèques d'objets =====
 +
 +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.
 +
 +  * des fichiers OpenScad personnalisables
 +  * des contacts avec des créateurs souvent très érudits
 +
 +A titre d'exemple, je vous propose de cliquer sur [[https://www.thingiverse.com/search?q=openscad+hooks&type=things&sort=relevant|ce lien]] pour voir voir que ces bibliothèques proposent aussi des codes OpenScad pour des objets … alors facilement "customisables"
  
  
atelierscodage.1625066040.txt.gz · Dernière modification: 2021/06/30 17:14 de mediarbx