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();
}
