include _width_middle = 72.24; _width_end = 68; _height = 46.40; _height_middle = 20.0; translate([_t, _od_h, 0]) rotate([0, 0, 180]) magnet_surface(); translate([_od_w - _t, 0, 0]) magnet_surface(); difference(){ cube([_od_w, _od_h, _od_z]); translate([(_od_w - _width_middle)/2, (_od_h - _height)/2, _t]) headshape(_width_middle, _width_end, _height, _height_middle, _od_z); translate([(_od_w - _width_middle)/2 + _t, (_od_h - _height)/2 + _t, -1]) headshape(_width_middle - _t*2, _width_end - _t*2, _height - _t*2, _height_middle - _t, _od_z); } module headshape(width_middle, width_end, height, height_middle, z) { w1 = (width_middle - width_end)/2; linear_extrude(z + 1) polygon([[w1, height], [width_end + w1, height], [width_middle, height_middle], [width_end + w1, 0], [w1, 0], [0, height_middle]]); }