Table des matières

Défi OpenSCAD Ressort

Consigne : Réaliser un ressort ! >Il s'agit du défi de fin de l'atelier Programmer avec OpenSCAD.

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);}
}