$fn =100; difference(){ union(){ difference(){ difference(){ // outer shell union(){ translate([10/2,0,0]) cube([10,75,15],center=true); difference(){ cylinder(d=75, h=15, center = true); translate([75/4,0,0]) cube([75/2,75,16],center=true); } } // inner schell translate([0,0,-1]){ union(){ translate([(10-3)/2,0,0]) cube([10-3/4,75-3,15],center=true); difference(){ cylinder(d=75-3, h=15, center = true); translate([(75-3)/4,0,0]) cube([(75-3)/2,(75-1.5),16],center=true); } } } } translate([10,0,(15/2)]) rotate([0,90,90]) cylinder(d=10, h=10, center = true); } difference(){ translate([-1,0,(15/2)-(9/2)])rotate([0,15,0])cylinder(h=9,d=6+3, center= true); translate([-20/2,-20/2,15/2])cube(20); } } translate([-1,0,(15/2)-(9/2)])rotate([0,15,0])cylinder(h=9+4,d=6, center = true); translate([-23/2 -18 ,-22/2,5])cube([23,23,10]); }