module ring (id, wt, h)
{
  difference () {
    cylinder (d=id+2*wt, h);
    down (1) cylinder (d=id, h=h+2);
  }
}

rr = 45/2;
r2 = 60/2;

module b1 (i)  translate ([rr*sin(i),rr*cos(i),0]) sphere (d=5);
module b2 (i)  up (40) rot_y (-40) translate ([r2*sin(i),r2*cos(i),0]) sphere (d=5);

output = 0;

if (output == 0) {

  down (50) ring (40,5,50);
  s = 10;
  for (i=[0:s:180]) {
    hull () {
      b1 (i);
      b2 (i);
      b2 (i+s);
      b1 (i+s);
    }
  }
}

De "handige dingen" die ik gebruik zal je "even" zelf moeten schrijven. Is minder dan 60 sec werk.