size_x = 85; size_y = 85; size_z = 10; thick = 1.5; pcb = 1.6; rad_hole = 2; seg = 360; rad_display = 1; // 10 - dist between display and pcb, 1 - display thick pillar = size_z - thick + 10 + 1; usb_x = 9; usb_z = 0.6; union() { difference() { // Main Block cube([size_x, size_y, size_z], center = true); // Hollow translate([0, 0, thick]) { cube([size_x - 2 * thick, size_y - 2 * thick, size_z], center = true); } // Cut USB translate([-5.75, size_y/2 - thick/2, size_z/2]) { cube([usb_x, thick * 2, usb_z*2], center = true); } } // Add Screw Holders for (y = [-1:1:1]) { x = y == 0 ? -1 : 1; translate([13.5 + x * 22.25, y * 35.75, -pcb + thick]) { difference() { cylinder(size_z - thick - pcb, rad_hole + 1, rad_hole + 1, $fn = seg, center = true); cylinder(size_z, rad_hole, rad_hole, $fn = seg, center = true); } } } // Add Display Pillars for (x = [-1:2:1]) { for (y = [-1:2:1]) { translate([13.25 + x * 10.35, 10.75 + y * 11.6, pillar/2 - size_z/2 + thick]) { cylinder(pillar, rad_display, rad_display, $fn = seg, center = true); } } } }