Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
Prochaine révision
Les deux révisions suivantes
|
atelierscodage [2021/06/30 17:14] mediarbx |
atelierscodage [2021/07/12 16:16] mediarbx [Principales fonctions] |
* __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 }} |
{{ :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é:** |
<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> |
| |
===== 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]] |
| |
| |