size_x = 85; size_y = 85; size_z = 15; thick = 1.5; pcb = 1.6; rad_hole = 1.5; seg = 360; rad_display = 1; usb_x = 9; usb_z = 3; usb_pos = 5.75; ribbon_x = 16; ribbon_y = 11; ribbon_pos = -13.25; display_x = 27; display_y = 15; display_pos_x = -13.25; display_pos_y = 10.75 + 1.5; led_size = 5; led_pos_x = 14.75; led_pos_y = 37.25; btn_y = 15; btn_z = 3.5; btn_pos = 12.5; battery_x = 22; battery_y = 80; battery_pos = 29; 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([usb_pos, size_y/2 - thick/2, size_z/2]) { cube([usb_x, thick * 2, usb_z*2], center = true); } // Cut Ribbon Cable Connector translate([ribbon_pos, size_y/2 - ribbon_y/2, 0]) { cube([ribbon_x, ribbon_y, size_z + 1], center = true); } // Cut Display translate([display_pos_x, display_pos_y, 0]) { cube([display_x, display_y, size_z + 1], center = true); } // Cut LED translate([led_pos_x, led_pos_y, 0]) { cube([led_size, led_size, size_z + 1], center = true); } // Cut Button translate([-(size_x/2 - thick/2), btn_pos, size_z/2]) { cube([thick * 2, btn_y, btn_z * 2], center = true); } // Cut Battery translate([battery_pos, 0, 0]) { cube([battery_x, battery_y, size_z + 1], center = true); } // Screw Holes for (y = [-1:1:1]) { x = y == 0 ? 1 : -1; translate([-13.5 + x * 22.25, y * 35.75, 0]) { cylinder(size_z + 1, rad_hole, rad_hole, $fn = seg, center = true); } } } // Add Screw Holders for (y = [-1:1:1]) { x = y == 0 ? 1 : -1; translate([-13.5 + x * 22.25, y * 35.75, 0]) { difference() { cylinder(size_z, rad_hole + 1, rad_hole + 1, $fn = seg, center = true); cylinder(size_z + 1, rad_hole, rad_hole, $fn = seg, center = true); } } } // Add Ribbon Extra translate([ribbon_pos, size_y/2 - ribbon_y/2, -size_z/2 + 5/2 + thick]) difference() { translate([0, -thick, 0]) { cube([ribbon_x + thick * 2, ribbon_y, 5], center = true); } cube([ribbon_x, ribbon_y, 5 + 1], center = true); } }