h = 140; l = 100; w = 70 + 100; d2 = 25; hd = 10; wall = 3; $fn=50; // Private variables _slot = wall + sep; module wall() { difference() { translate([0, l / 2, 0]) rotate([0, 90, 0]) cylinder(r = l / 2, h = wall); translate([-0.5, 0, 0]) rotate([0, 90, 0]) cube(size =[l/2, l, wall+1]); translate([-0.5, l / 2 - 20, l / 2]) rotate([0, 90, 0]) cylinder(r = d2 / 2, h = wall+1); translate([-0.5, l / 2 + 20, l / 2]) rotate([0, 90, 0]) cylinder(r = d2 / 2, h = wall+1); } } module ellipsoid(diameter, width, height) { scale([1, width/diameter, 1]) linear_extrude(height = height) circle(d = diameter); } union() { difference() { cube(size = [w, l, wall]); translate([ 35, 50, 0]) ellipsoid(50,80, wall+1); translate([ 84, 50, 0]) ellipsoid(20,80, wall+1); translate([109, 50, 0]) ellipsoid(20,80, wall+1); translate([134, 50, 0]) ellipsoid(20,80, wall+1); translate([159, 50, 0]) ellipsoid(20,80, wall+1); } translate([ 0, 0, 0]) wall(); translate([ 70, 0, 0]) wall(); translate([ 95, 0, 0]) wall(); translate([120, 0, 0]) wall(); translate([145, 0, 0]) wall(); translate([170, 0, 0]) wall(); }