$fs=0.25;$fa=6; union() { difference(){union() { difference(){sphere(r=31.75); sphere(r=28.75); }intersection(){ sphere(r=31.75); union(){translate([-27.25,0,0])cylinder(h=31.75, r=3, center=true); translate([27.25,0,0])cylinder(h=31.75, r=3, center=true); }} intersection(){ sphere(r=31.75); translate([0,28.25,0])rotate([90,0,0])cylinder(h=3, r=15.1026, center=true); } } rotate_extrude() translate([31.75,0,0])polygon([[-1.5,-1.5],[-1.5,1.5],[1.5,2.5],[1.5,-2.5]]);;translate([0,0,-50])cube([100,100,100],center=true); translate([0,30.75,0])rotate([90,0,0])cylinder(h=6, r=10, center=true); union(){translate([-27.25,0,1])union() { cylinder(h=2, r=2, center=true); translate([0,0,2])cylinder(h=2, r1=2, r2=0, center=true); } translate([27.25,0,1])union() { cylinder(h=2, r=2, center=true); translate([0,0,2])cylinder(h=2, r1=2, r2=0, center=true); } }}difference(){union() { difference(){sphere(r=31.75); sphere(r=28.75); }intersection(){ sphere(r=31.75); union(){translate([-27.25,0,0])cylinder(h=31.75, r=3, center=true); translate([27.25,0,0])cylinder(h=31.75, r=3, center=true); }} intersection(){ sphere(r=31.75); translate([0,28.25,0])rotate([90,0,0])cylinder(h=3, r=15.1026, center=true); } } rotate_extrude() translate([31.75,0,0])polygon([[-1.5,-1.5],[-1.5,1.5],[1.5,2.5],[1.5,-2.5]]);;translate([0,0,50])cube([100,100,100],center=true); translate([0,30.75,0])rotate([90,0,0])cylinder(h=6, r=10, center=true); union(){translate([-27.25,0,-1])mirror([0,0,1])union() { cylinder(h=2, r=2, center=true); translate([0,0,2])cylinder(h=2, r1=2, r2=0, center=true); } translate([27.25,0,-1])mirror([0,0,1])union() { cylinder(h=2, r=2, center=true); translate([0,0,2])cylinder(h=2, r1=2, r2=0, center=true); } }}translate([0,28.1496,0])rotate([-90,0,0])union() { cylinder(h=0.7993, r=9, center=true); translate([0,0,1.1496])cylinder(h=1.5, r=6.75, center=true); translate([0,0,2.6496])cylinder(h=1.5, r=4.5, center=true); } }