r=10; d=5; d1=2; difference(){ cylinder(10,r=r+5,center=true); union()for (i=[0:10])let(j=i+1){ hull(){ rotate(i*3)translate([r,0,-i/10])cylinder(1,d=d); rotate(j*3)translate([r,0,-j/10])cylinder(1,d=d); } hull(){ rotate(i*3)translate([r,0,-i/10])cylinder(20,d=d1); rotate(j*3)translate([r,0,-j/10])cylinder(20,d=d1); } translate([r,0,0])cylinder(20,d=d); } if($preview)translate([r,0,-10])cube(50); }