======= Défi OpenSCAD Entonnoir ====== {{{project logiciels: OpenSCAD fichiers: usager: plogingenu licence:cc-by-nc }}} {{:animations:ateliers_openscad:exercices:entonnoir.png?200 }} **Consigne : Réaliser un entonnoir en ligne de code !** * méthode A : 9 lignes & 3 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}} Besoin d'aide, lisez la suite ! ===== 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 : * **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);// 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. ==== 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 **méthode A :** - 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() - Faites attention, que les pièces qui sont extrudés dépasse bien des 2 côtés, afin d'éviter l'apparition de zébrures. - Une fois la pièce faite, si ce n'est pas déjà fait penser à la mise en variable **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}} a=80; // le diamètre extérieur supérieur du cône supérieur 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=60; // détail de la finition (en nombre de facettes) / Maillage difference(){ cylinder(d2=a, d1=b, h=hc); translate([0,0,-1]) cylinder(d2=a-e, d1=b-e, h=hc+2); } translate([0,0,-ht]){ difference(){ cylinder(d1=c, d2=b, h=ht); translate([0,0,-1]) cylinder(d1=c-e, d2=b-e, h=ht+2); } } **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}} a=80; // le diamètre extérieur supérieur du cône supérieur 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=60; rotate_extrude($fn=80) polygon( points=[[c,0],[b,ht],[a,ht+hc],[a-e,ht+hc],[b-e,ht],[c-e,0]] ); **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}} 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); }