include <../../lib/chamfered-cube.scad> numPaddles = 4; // All units in millimeters // // screw distance (on center), horizontal and vertical screwDX = 45; screwDY = 82; // paddle size pX = 33.7; pY = 66.3; // inter-switch distance (horizontal) interX = 12; // plate side size (square) sideX = pX*numPaddles + interX*(numPaddles - 1) + 64; sideY = 120; pDepth = 6; backingDepth = 2; tDepth = pDepth + backingDepth; pOffsetX = 32; pOffsetY = (sideY - pY)/2; difference() { translate([0, 0, -2]) chamferedCube([sideX, sideY, tDepth - 3 + 2], chamfer=2); // bottom flush cut translate([-10, -10, -4]) cube([sideX + 20, sideY + 20, 4]); // paddle cutouts for (i = [0:numPaddles - 1]) { translate([pOffsetX + (pX + interX)*i, pOffsetY, -2]) cube([pX, pY, tDepth + 4]); } // interior-space carve-out translate([4, 4, -2]) chamferedCube([sideX - 8, sideY - 8, tDepth - 5 + 2]); }