======= Défi OpenSCAD Ressort ====== {{{project logiciels: OpenSCAD fichiers: usager: bully plogingenu licence:cc-by-nc }}} {{: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. * méthode A : * méthode B : ===== 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) nb_sphere=100; nbboucle=0.5;//nb_sphere/360 diamsphere=20; $fn=20; for ( i= [0:nb_sphere] ) rotate([0,0,i*(nbboucle*360/nb_sphere)]) { translate([0,2.5*diamsphere,i]){ sphere(d=diamsphere); } translate([0,-2.5*diamsphere,i]){ sphere(d=diamsphere); } translate([2.5*diamsphere,0,i]){ sphere(d=diamsphere); } translate([-2.5*diamsphere,0,i]){ sphere(d=diamsphere); } } difference(){ $fn=60; union(){ translate([0,0,-0.25*diamsphere]){ cylinder(r=3*diamsphere, h=10,center=true); } translate([0,0,5+nb_sphere]){ cylinder(r=3*diamsphere, h=10, center=true); } } translate([0,0,-diamsphere]){ cylinder(r=2*diamsphere,h=1.5*nb_sphere); } } méthode B (Méthode Hélène) p=50; //rayon par rapport au centre ds=10; // diamètre de la sphère pas=2; // pas iteration =200; // gère aussi la hauteur de la pièce // Le coeur du ressort for(positionX=[p,-p], positionY=[p,-p],i=[1:iteration]){ rotate([0,0,i*pas]) translate([positionX,positionY,i*pas]) sphere(ds, $fn=75); } //base et haut du ressort difference(){ union(){ translate([0,0,-ds]){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=iteration*pas+2*ds+0.2,$fn=100);} }