include // Parameter for console overwrite b = 178; t = 38; h = 20; module box(b, t, h) { difference() { difference() { // base cuboid([ b, t, h], anchor = [ -1, -1, -1 ],rounding = 1,edges = [ TOP, 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); // inner translate([ 21, 19, h-11 ]) cylinder(h = 12, r = 13, center = false); translate([14, -1, h-11]) cube([14, t + 2, 18.5], false); translate([ 55, 19, h-11 ]) cylinder(h = 12, r = 13, center = false); translate([49, -1, h-11]) cube([14, t + 2, 18.5], false); translate([ 89, 23, h-11 ]) cylinder(h = 12, r = 13, center = false); translate([83, -1, h-11]) cube([14, t + 2, 18.5], false); translate([ 123, 25, h-11 ]) cylinder(h = 12, r = 13, center = false); translate([117, -1, h-11]) cube([14, t + 2, 18.5], false); translate([ 157, 25, h-11 ]) cylinder(h = 12, r = 13, center = false); translate([151, -1, h-11]) cube([14, t + 2, 18.5], false); // clean area for card pocket translate([b- 79, -1, -1]) cube([80, 13, 41], false); } } module sideCut(b,t) { translate([0,-1,0]) { rotate([-90,-90,0]) { linear_extrude(t/4+4) { polygon(points=[[-1,-1], [-1,1.6], [3.1, 1.6], [6.1,-1]]); } } } difference() { translate([0,t/4+2,0]) { rotate([-90,-90,0]) { linear_extrude(0.75 * t) { polygon(points=[[-1,-1], [-1,3.2], [6.9, 3.2], [11.2,-1]]); } } } translate([2.2,0.75 * t - 2.4, 0]) { rotate([90,-90,0]) { linear_extrude(0.4 * t + 5) { polygon(points=[[-1,-1], [-1,0.6], [3.3, 0.6], [4.9,-1]]); } } } } } box(b, t, h);