$fn = 90; module case() { module annular() { difference() { rotate([0,90,0]) cylinder(r=7.5, h=18); translate([2,0,0]) rotate([0,90,0]) cylinder(r=6.5, h=14); } } module elipsoid() { scale([1,1,2.3]) annular(); translate([0,-7.5, -2]) cube([18, 15, 2]); } module halfelipse() { difference() { elipsoid(); translate([-1, -10, -22]) cube(20); } translate([-2,-10,-2]) cube([20,20,2]); } difference() { halfelipse(); // translate([10,0,7.5]) rotate([0,90,0]) cylinder(r=4.5, h=10); // translate([9,0,-8]) cylinder(r=6, h=10); // translate([9,0,-8]) cube([26, 12, 5]); translate([2,-4.5,-3]) cube([14, 9, 4]); } } difference() { scale([1.7,1.5,1]) case(); translate([10,0,7.5]) rotate([0,90,0]) cylinder(r=4.5, h=50); }