Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
animations:ateliers_openscad:exercices:ressort [2020/08/19 15:40] plogingenu créée |
animations:ateliers_openscad:exercices:ressort [2020/08/19 17:01] (Version actuelle) plogingenu |
||
|---|---|---|---|
| Ligne 9: | Ligne 9: | ||
| }}} | }}} | ||
| - | {{:animations:ateliers_openscad:exercices:defiopenscad_pyramidemethodee.png?200 }} | ||
| + | {{:animations:ateliers_openscad:exercices:defi_ressort.png?200 }} | ||
| - | **Consigne : Réaliser un ressort !** >Il s'agit du défi de fin de l'atelier Programmer avec OpenSCAD. // | + | **Consigne : Réaliser un ressort !** >Il s'agit du défi de fin de l'atelier Programmer avec OpenSCAD. |
| - | * méthode A : 1 ligne & 1 fonction différente (Méthode Bully) | + | |
| - | * méthode B : 15 lignes & 3 fonctions différentes (Méthode Hélène) | + | |
| - | méthode A | + | * méthode A : |
| - | <code> | + | * méthode B : |
| - | nb_sphere=100; | + | |
| + | ===== Aides ===== | ||
| + | |||
| + | ==== 1. Réfléchissez ==== | ||
| + | |||
| + | Prenez vraiment le temps de réfléchir (Papier et crayon peuvent être utiles). Décomposez l'objet final en plusieurs petits objets. | ||
| + | |||
| + | |||
| + | ==== 2. Phase explicative ==== | ||
| + | |||
| + | Si vous ne savez pas par où commencer : | ||
| + | |||
| + | ==== 3. Les fonctions utiles ==== | ||
| + | |||
| + | ==== 4. Pièges à éviter ==== | ||
| + | |||
| + | |||
| + | ===== Solutions ===== | ||
| + | |||
| + | méthode A (Méthode Bully) | ||
| + | <code java>nb_sphere=100; | ||
| nbboucle=0.5;//nb_sphere/360 | nbboucle=0.5;//nb_sphere/360 | ||
| diamsphere=20; | diamsphere=20; | ||
| Ligne 38: | Ligne 56: | ||
| } | } | ||
| } | } | ||
| - | difference(){ | + | |
| + | difference(){ | ||
| $fn=60; | $fn=60; | ||
| union(){ | union(){ | ||
| Ligne 56: | Ligne 75: | ||
| + | |||
| + | méthode B (Méthode Hélène) | ||
| - | méthode B | + | <code java> |
| - | + | ||
| - | <code> | + | |
| p=50; //rayon par rapport au centre | p=50; //rayon par rapport au centre | ||
| ds=10; // diamètre de la sphère | ds=10; // diamètre de la sphère | ||
| pas=2; // pas | pas=2; // pas | ||
| - | itineration =200; // gère aussi la hauteur de la pièce | + | iteration =200; // gère aussi la hauteur de la pièce |
| - | for(positionX=[p,-p], positionY=[p,-p],i=[1:itineration]){ | + | // Le coeur du ressort |
| + | for(positionX=[p,-p], positionY=[p,-p],i=[1:iteration]){ | ||
| rotate([0,0,i*pas]) | rotate([0,0,i*pas]) | ||
| - | translate([0,0,i*pas]) | + | translate([positionX,positionY,i*pas]) |
| - | translate([positionX,positionY,0]) sphere(ds, $fn=75); | + | sphere(ds, $fn=75); |
| } | } | ||
| - | + | //base et haut du ressort | |
| - | difference(){ | + | difference(){ |
| union(){ | union(){ | ||
| - | translate([0,0,-ds])cylinder(r=2*(p-ds)+2,h=ds,$fn=100); | + | translate([0,0,-ds]){cylinder(r=2*(p-ds)+2,h=ds,$fn=100);} |
| - | translate([0,0,itineration*pas])cylinder(r=2*(p-ds)+2,h=ds,$fn=100); | + | translate([0,0,iteration*pas]){cylinder(r=2*(p-ds)+2,h=ds,$fn=100);} |
| } | } | ||
| - | translate([0,0,-ds-0.1])cylinder(r=p+ds,h=itineration*pas+2*ds+0.2,$fn=100); | + | translate([0,0,-ds-0.1]){cylinder(r=p+ds,h=iteration*pas+2*ds+0.2,$fn=100);} |
| - | } | + | } |
| </code> | </code> | ||