module torus2(r1, r2) { rotate_extrude() translate([r1,0,0]) circle(r2); } module oval_torus(inner_radius, thickness=[0, 0]) { rotate_extrude() translate([inner_radius+thickness[0]/2,0,0]) ellipse(width=thickness[0], height=thickness[1]); } color ("green") translate([0,0,-40]) { union() { difference() { translate([0,0,56]) sphere(54*.40, $fn = 7); rotate([0,0,45+180]) cylinder(h=56, r1=54 * 0.25, r2=54 * 0.48, center = false, $fn = 9); } difference(){ rotate([0,0,45+180]) cylinder(h=56, r1=54 * 0.25, r2=54 * 0.48, center = false, $fn = 9); cube([100, 100, 80], center=true); } translate([0,0,76]) rotate([0, 0, 0]) torus2(1,1); translate([0,0,82]) rotate([90, 0, -45]) torus2(5,1); } }