include // Parameter for console overwrite b = 30.0; t = 30.0; h = 30.0; module box(b, t, h) { difference() { // base cuboid( [ b, t, h], anchor = [ -1, -1, -1 ], rounding = 1, edges = [ TOP, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ] ); // inner translate([ 5, 1.5, 1.5 ]) { cuboid( [ b - 10, t - 3, h - 0.5 ], anchor = [ -1, -1, -1 ], rounding = 8, edges = [ BOTTOM + FRONT, BOTTOM + LEFT, BOTTOM + BACK, BOTTOM + RIGHT, FRONT + LEFT, FRONT + RIGHT, BACK + LEFT, BACK + RIGHT ] ); } // left lower sideCut(b,t); // left upper translate([0, 0, h]) { mirror([0, 0, 1]) { sideCut(b, t); } } // right lower translate([b, 0, 0]) { mirror([1, 0, 0]) { sideCut(b,t); } } // right upper translate([b, 0, h]) { mirror([1, 0, 0]) { mirror([0, 0, 1]) { sideCut(b, t); } } } } } module sideCut(b,t) { translate([0,-1,0]) { rotate([-90,-90,0]) { linear_extrude(t/4+4) { polygon(points=[[-1,-1], [-1,1.85], [3.35, 1.85], [6.35,-1]]); } } } difference() { translate([0,t/4+2,0]) { rotate([-90,-90,0]) { linear_extrude(0.75 * t) { polygon(points=[[-1,-1], [-1,3.45], [7.15, 3.45], [11.45,-1]]); } } } translate([2.45,0.75 * t - 2.4, 0]) { rotate([90,-90,0]) { linear_extrude(0.4 * t + 5) { polygon(points=[[-1,-1], [-1,0.35], [3.05, 0.35], [4.65,-1]]); } } } } } box(b, t, h - 2);