OpenSCAD Example #1

image missing

////////////////////////////////////////////
//////////////// Parameters ////////////////

baseHeight     = 3;
baseRaidus     = 30;
helixHeight    = 70;
helixRaidus    = 3;
helixTwist     = 360;
helixTranslate = 20;

start = [[helixTranslate,0],
         [-helixTranslate,0],
         [0,helixTranslate],
         [0,-helixTranslate]]; 

////////////////////////////////////////////
/////////////////// Base ///////////////////

cylinder(baseHeight,baseRaidus,baseRaidus);

////////////////////////////////////////////
////////////////// Helix ///////////////////

for(i = [0:len(start)-1])
{
  // debug
  // echo(str("I=",i));
  // assign(x = start[i][0],
  //        y = start[i][1],
  //        z = baseHeight+helixHeight)
  // {
  //   echo(str("X=",x));
  //   echo(str("Y=",y));
  //   echo(str("Z=",z));
  // }

  // extrude helix

  translate(0,0,baseHeight)
    linear_extrude(height=helixHeight,
                   twist=helixTwist)
       translate(start[i])
          circle(helixRaidus);

  // top helix with a sphere

  translate([start[i][0],start[i][1],
            baseHeight+helixHeight-helixRaidus])
     sphere(helixRaidus);
}