Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
animations:ateliers_openscad:exercices:defi_entonnoir [2020/03/27 17:32] plogingenu |
animations:ateliers_openscad:exercices:defi_entonnoir [2020/04/03 17:58] (Version actuelle) plogingenu |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
usager: plogingenu | usager: plogingenu | ||
licence:cc-by-nc | licence:cc-by-nc | ||
+ | |||
}}} | }}} | ||
Ligne 15: | Ligne 16: | ||
**Consigne : Réaliser un entonnoir en ligne de code !** | **Consigne : Réaliser un entonnoir en ligne de code !** | ||
- | * méthode A : X lignes & X fonctions | + | * méthode A : 9 lignes & 3 fonctions différentes |
* méthode B : 2 lignes & 2 fonctions différentes | * méthode B : 2 lignes & 2 fonctions différentes | ||
+ | * méthode C : 7 lignes & 6 fonctions différentes | ||
{{:animations:ateliers_openscad:exercices:cn2_openscad_defi-entonnoir_hm.stl | Voir l'objet en 3D}} | {{:animations:ateliers_openscad:exercices:cn2_openscad_defi-entonnoir_hm.stl | Voir l'objet en 3D}} | ||
Ligne 24: | Ligne 26: | ||
===== Aides ===== | ===== Aides ===== | ||
+ | ==== 1. Réfléchissez ==== | ||
+ | Prenez vraiment le temps de réfléchir (papier et crayon peuvent être utile ) | ||
+ | ==== 2. Phrase explicative ==== | ||
+ | Si vous ne savez pas par où commencer : | ||
- | Réfléchissez ! | + | * **méthode A :** l'entonnoir est composé de deux cônes évidés superposés |
+ | * **méthode B :** l'entonnoir est une forme géométrique qui subit une rotation extrudante | ||
+ | * **méthode C :** l'entonnoir est composé d'une différence entre l'union d'un cône et d'une sphère, dans laquelle on l'évide par un cône, une sphère et un cube. | ||
+ | |||
+ | |||
+ | ==== 3. Les fonctions utiles ==== | ||
+ | |||
+ | |||
+ | |||
+ | **méthode A :** | ||
+ | * la différence : //difference(){...}// | ||
+ | * le déplacement : //translate([x,y,z]){...}// | ||
+ | * le cylindre/cône : //cylinder(d1,d2,h);// | ||
+ | |||
+ | **méthode B :** | ||
+ | * la rotation extrudante : //rotate_extrude(){...}// | ||
+ | * le polygone : //polygon(...);// | ||
+ | |||
+ | |||
+ | **méthode A :** | ||
+ | * la différence : //difference(){...}// | ||
+ | * le déplacement : //translate([x,y,z]){...}// | ||
+ | * le cylindre/cône : //cylinder(d1,d2,h);// | ||
+ | * la sphère : //sphere (d);// | ||
+ | * le cube : //cube(c);// | ||
+ | |||
+ | <note tip>Si vous ne connaissez pas bien l'utilisation d'une de ses fonctions, il peut être utile d'aller voir les exercices du wiki ou la page Aide-Mémoire OpenSCAD.</note> | ||
- | Si vous ne savez pas par où commencer : | ||
- | __méthode 1 :__ l'entonnoir est composé de deux cônes évidés superposés | ||
+ | ==== 4. Pièges à éviter ==== | ||
+ | **En général :** | ||
+ | * Le point-virgule | ||
+ | * Bien ouvrir et fermer les parenthèses, crochets et accolades | ||
+ | * Les erreurs de frappe | ||
- | Pièges à éviter : | + | **méthode A :** |
- Se souvenir de comment on code un cône (ici, pointe vers le bas) | - Se souvenir de comment on code un cône (ici, pointe vers le bas) | ||
- Positionner les pièces correctement les unes par rapport aux autres sans abuser du translate() | - Positionner les pièces correctement les unes par rapport aux autres sans abuser du translate() | ||
Ligne 43: | Ligne 78: | ||
- Une fois la pièce faite, si ce n'est pas déjà fait penser à la mise en variable | - Une fois la pièce faite, si ce n'est pas déjà fait penser à la mise en variable | ||
- | solution par étape : {{:animations:ateliers_openscad:exercices:cn2_openscad_de_fi-entonnoir_hm.scad| Fichier .SCAD code complet - Hélène}} | ||
+ | **méthode B :** | ||
+ | - Se souvenir de comment on code un polynôme (ici, il faut 6 points)/ Le dessiner sur papier quadrillé peut aider | ||
+ | - Partir d'un point , puis faire les positions extérieures de la forme, puis intérieur / Ne pas mettre deux fois le point de départ | ||
+ | |||
+ | ===== Solutions ===== | ||
+ | |||
+ | solution par étape : {{:animations:ateliers_openscad:exercices:cn2_openscad_de_fi-entonnoir_hm.scad| Fichier .SCAD code complet - Hélène}} | ||
+ | |||
+ | **méthode A :** | ||
+ | {{:animations:ateliers_openscad:exercices:entonnoir.png?200 }} | ||
+ | {{:animations:ateliers_openscad:exercices:cn2_openscad_defi-entonnoir_hm.stl | Voir l'objet en 3D}} | ||
<code java> | <code java> | ||
a=80; // le diamètre extérieur supérieur du cône supérieur en mm | a=80; // le diamètre extérieur supérieur du cône supérieur en mm | ||
Ligne 70: | Ligne 115: | ||
</code> | </code> | ||
- | __méthode 2 :__ l'entonnoir est une forme géométrique qui subit une rotation extrudante | + | **méthode B :** |
+ | {{:animations:ateliers_openscad:exercices:entonnoir.png?200 }} | ||
+ | {{:animations:ateliers_openscad:exercices:cn2_openscad_defi-entonnoir_hm.stl | Voir l'objet en 3D}} | ||
+ | |||
<code java> | <code java> | ||
a=80; // le diamètre extérieur supérieur du cône supérieur en mm | a=80; // le diamètre extérieur supérieur du cône supérieur en mm | ||
Ligne 85: | Ligne 133: | ||
</code> | </code> | ||
- | ===== Aides Etapes par Etapes ======== | ||
- | ===== Solutions ===== | + | **méthode C :** |
+ | {{:animations:ateliers_openscad:exercices:defiopenscad-entonnoir-c.png?200 }} | ||
+ | {{:animations:ateliers_openscad:exercices:defi_entonnoir_methodec.stl | Voir l'objet en 3D}} | ||
+ | <code java> | ||
+ | a=80; // le diamètre extérieur supérieur de la sphère supérieure en mm | ||
+ | b=10; // le diamètre extérieur inférieur du cône supérieur en mm | ||
+ | c=8; // le diamètre extérieur inférieur du cône inférieur (dit le tube) en mm. | ||
+ | |||
+ | hc=60; // hauteur du cône supérieur en mm | ||
+ | ht=30;// hauteur du cône inférieur (dit le tube) en mm | ||
+ | |||
+ | e=3;// épaisseur en mm ( Attention pas moins de 3mm pour l'impression 3D) | ||
+ | $fn=100; // détail de la finition (en nombre de facettes) / Maillage | ||
+ | |||
+ | difference(){ | ||
+ | union(){ | ||
+ | translate([0,0,a/2-e]) sphere(d=a); | ||
+ | translate([0,0,-ht]) cylinder(d1=c, d2=b, h=ht); | ||
+ | } | ||
+ | translate([0,0,a/2-e-1]) sphere(d=a-e); | ||
+ | translate([0,0,a-e]) cube(a,center=true); | ||
+ | translate([0,0,-ht-1]) cylinder(d1=c-e, d2=b-e, h=ht+2); | ||
+ | } | ||
+ | </code> |