use use use module spider_section(ir=6,or=13, l=6, lt=1, h, die=false) { $fn= ($preview || $fn > 60) ? $fn : 60; a = 360/l; cx=or-ir+.2; for (r=[0,a]) rotate([0,0,r]) translate([ir+cx/2-.2,0,0]) cube([cx, die ? lt+.2 : lt, h], center=true); if (die) { RiS(R=or, r=0, h=h, w1=0, w2=60, center=true, D=undef, d=undef); Ri(R=ir+.4, r=0, h=h); } else { Ri(R=ir, r=ir-lt, h=h); } } module spider(ir=6, sd=9, or=13, l=6, lt=1, h=3, die=false) { difference() { union() { for (i=[0 : 1 : l-1]) if (i % 2) rotate([0,0,i*360/l]) spider_section(ir=ir,h=h,die=die); } } } module lovejoy(ph=5, jh=3) { ir = ($children < 1) ? 4.2 : 0; difference() { translate([0,0,-(jh+ph)/2]) Ri(R=13-.1,r=ir,h=ph+jh); translate([0,0,-jh/2+.01]) spider(ir=6, die=true, h=jh+.1); if ($children > 0) children(); } } $fs= ($preview || $fn > 2) ? $fn : .1; color("pink") lovejoy() translate([0,0,-6]) cylinder(r=2, h=12, $fn=4, center=true); color("green") translate([0,0,0]) spider(ir=6, die=false, h=3); color("blue") rotate([180,0,0]) { lovejoy(); } //translate([tan(60),0,-2]) color("yellow") cube([.1,1,5]);