prgmrx = 89; prgmry = 81; prgmrz = 15; thickness = 2; usbwidth = 13; holeoffsetx = 3.75; holeoffsety = 4.25; difference() { // big outer cube cube([prgmrx+(thickness*2), prgmry+(thickness*2), 11+(thickness*2)]); // inside translate([thickness, thickness, thickness]) { cube([prgmrx, prgmry, 11*2]); } // edges translate([-1, -1, 11+(thickness*1.5)]) { cube([prgmrx+thickness*2 + 2, thickness/2 + 1, thickness/2 + 1]); } translate([-1, prgmry+(thickness*1.5), 11+(thickness*1.5)]) { cube([prgmrx+thickness*2 + 2, thickness/2 + 1, thickness/2 + 1]); } translate([(thickness/2), 0, 11+(thickness*1.5)]) { rotate([0, 0, 90]) { cube([prgmry+thickness*2 + 2, thickness/2 + 1, thickness/2 + 1]); } } translate([prgmrx+(thickness*2)+1, 0, 11+(thickness*1.5)]) { rotate([0, 0, 90]) { cube([prgmry+thickness*2 + 2, thickness/2 + 1, thickness/2 + 1]); } } // USB cutout translate([prgmrx+thickness - 23.5 - usbwidth, -1, (thickness-1) + (prgmrz/2)]) { cube([usbwidth, thickness*2, 12]); } } // mounting holes translate([prgmrx + thickness - 4.25, 3.75 + thickness, thickness-1]) { difference() { cylinder(r = 3/2 + thickness, h = (prgmrz/2)); cylinder(r = 3/2, h = (prgmrz/2)+1, $fn = 100); } } translate([thickness + 12.75, 3.75 + thickness, thickness-1]) { difference() { cylinder(r = 3/2 + thickness, h = (prgmrz/2)); cylinder(r = 3/2, h = (prgmrz/2)+1, $fn = 100); } } translate([thickness + 3.75, prgmry + thickness - 3.75, thickness-1]) { difference() { cylinder(r = 3/2 + thickness, h = (prgmrz/2)); cylinder(r = 3/2, h = (prgmrz/2)+1, $fn = 100); } } translate([prgmrx + thickness - 4.25, prgmry + thickness - 3.75, thickness-1]) { difference() { cylinder(r = 3/2 + thickness, h = (prgmrz/2)); cylinder(r = 3/2, h = (prgmrz/2)+1, $fn = 100); } }