translate([15,15,0])intersection(){ translate([0,0,15])cube(30,center=true); translate([0,0,-13])ball(28,8); } translate([-15,-15,0])intersection(){ translate([0,0,15])cube(30,center=true); translate([0,0,13])rotate([180,0,0])ball(28,8); } module ball(diam1,diam2){ difference(){ translate([0,0,diam1/2-1])sphere(d=diam1,$fn=80); translate([0,0,-1])cylinder(h=diam1/2+3, d=diam2, center=false); translate([0,0,diam1/2+1.9])cylinder(h=diam1/2-4, d1=diam2,d2=0.1, center=false); } }