x_size = 75; y_size = 40; z_size = 13; pcb_x = 70; pcb_y = 35; wall_size = 1; hole_rad = 2; screen_x = 30; screen_y = 12; union() { difference() { // Main cube([x_size, y_size, z_size], center = true); // Hollow translate([0, 0, wall_size]) { cube([x_size - 2 * wall_size, y_size - 2 * wall_size, z_size], center = true); } // Display Cutout translate([pcb_x/2 - screen_x/2 + 1 - 5, pcb_y/2 - screen_y/2 - 1, 0]) { cube([screen_x, screen_y, z_size + 1], center = true); } // Button Cutout translate([-16 + 1, -12.5 - 1, 0]) { cube([8, 8, z_size + 1], center = true); } // Switch Cutout translate([0 + 1, -y_size/2 + wall_size/2, z_size/2 - 6/2]) { cube([5, wall_size * 2, 6], center = true); } } // Bottom Hole Mounts for (i = [-1:2:1]) { translate([i * (pcb_x/2 - 3) + 1, -(pcb_y/2 - 3) - 1, 0]) { difference() { cylinder(z_size, hole_rad + 1, hole_rad + 1, $fn = 360, center = true); translate([0, 0, wall_size]) { cylinder(z_size, hole_rad, hole_rad, $fn = 360, center = true); } } } } // Top Hole Mount translate([-((41 - pcb_x/2)) + 1, pcb_y/2 - 3 - 1, 0]) difference() { cylinder(z_size, hole_rad + 1, hole_rad + 1, $fn = 360, center = true); translate([0, 0, wall_size]) { cylinder(z_size, hole_rad, hole_rad, $fn = 360, center = true); } } }