inner_box = [15, 3, 20]; wall_strength = 2; difference() { difference() { cube(size=[inner_box[0]+wall_strength*2, inner_box[1]+wall_strength*2, inner_box[2]+wall_strength], center=true); translate([0,0,wall_strength]) { cube(size=[inner_box[0], inner_box[1], inner_box[2]+wall_strength], center=true); }; }; translate([0, wall_strength / 2, (inner_box[2]/2 - wall_strength/2)]) { cube(size=[inner_box[0] + wall_strength * 2, inner_box[1] + wall_strength, 4], center=true); }; translate([0, -(wall_strength/2 + inner_box[1]/2), (((inner_box[2]- (8+5.5))/2) -inner_box[2]/2 + wall_strength/2 + 5.5) ]) { cube(size=[inner_box[0]-3.5, wall_strength, inner_box[2]- (8+5.5)], center=true); }; }; translate([inner_box[0]/2+wall_strength/2,inner_box[1]/2+wall_strength,(inner_box[2]/2+wall_strength/2)-4]) { rotate([180,0,90]) { translate([-(wall_strength+inner_box[1]), -wall_strength/2, 0]){ polyhedron( points=[ [0,0,0], [inner_box[1]+wall_strength,0,0], [inner_box[1]+wall_strength,wall_strength,0], [0,wall_strength,0], [0,0,-4], [0,wall_strength,-4], ], faces=[ [0,1,2,3], [5,4,0,3], [4,1,0], [3,2,5], [2,1,4,5], ] ); } } } translate([-(inner_box[0]/2+wall_strength/2),inner_box[1]/2+wall_strength,(inner_box[2]/2+wall_strength/2)-4]) { rotate([180,0,90]) { translate([-(wall_strength+inner_box[1]), -wall_strength/2, 0]){ polyhedron( points=[ [0,0,0], [inner_box[1]+wall_strength,0,0], [inner_box[1]+wall_strength,wall_strength,0], [0,wall_strength,0], [0,0,-4], [0,wall_strength,-4], ], faces=[ [0,1,2,3], [5,4,0,3], [4,1,0], [3,2,5], [2,1,4,5], ] ); } } }