include base = [250, 135, 4]; box = [235,120, 95]; t = 1.5; $slop = 1; c1 = 0.5; c2 = -0.5; top = [120,30]; box_out = [box[0]+2*t, box[1]+2*t, box[2]+t]; // top box up(box_out[2]/2) difference() { // box cuboid(box_out, chamfer=c1, edges=[TOP,"Z"]); // hollow middle down(t/2) cuboid(box); // hole at the top up(box_out[2]/2) union() { left(top[0]/2) cyl(d=top[1], h=t, anchor=TOP, chamfer=c2); right(top[0]/2) cyl(d=top[1], h=t, anchor=TOP, chamfer=c2); cuboid([top[0], top[1], t], anchor=TOP, chamfer=c2); } } // base down(base[2])difference() { cuboid(base, chamfer=c1); difference() { // box up(base[2]/2) cuboid([box_out[0]+$slop,box_out[1]+$slop,base[2]], chamfer=c1, edges="Z"); // hollow middle down(t/2) cuboid([box[0]-$slop,box[1]-$slop,box[2]]); } }