From 9d734d80d52e06c784c8cafee935d1f99707d2bd Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Mon, 13 Nov 2023 15:14:25 -0500 Subject: Refactoring for reasons --- case/case.scad | 68 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/case/case.scad b/case/case.scad index a93d796..688d601 100644 --- a/case/case.scad +++ b/case/case.scad @@ -1,14 +1,39 @@ $fn = 72; -pcb_width = 257.175; -pcb_length = 95.250; -pcb_thickness = 1.6; +pcb_width = 257.175; +pcb_length = 95.250; +pcb_height = 1.600; + +pcb_screw_holes = [ + [ 4.7625, 85.7250], + [ 66.6750, 85.7250], + [161.9250, 85.7250], + [238.1250, 85.7250], + [ 61.9125, 47.6250], + [138.1125, 47.6250], + [214.3125, 47.6250], + [ 19.0500, 9.5250], + [123.8250, 9.5250], + [238.1250, 9.5250] +]; + +switch_leg_length = 3.30; +switch_height = 11.10; + +module keyboard_base_plate(pcb_dimensions, switch_z_range, screw_holes) { + pcb_width = pcb_dimensions[0]; + pcb_length = pcb_dimensions[1]; + pcb_height = pcb_dimensions[2]; + + switch_z_min = switch_z_range[0]; + switch_z_max = switch_z_range[1]; -module keyboard_base_plate(pcb_width, pcb_length) { pcb_clearance_edge = 1.0; - pcb_clearance_bottom = 2.0; + pcb_clearance_bottom = -switch_z_min - pcb_height + 0.5; + pcb_screw_diameter = 1.5; pcb_screw_hole_diameter = 1.5; + pcb_screw_height = 3.0; thickness = 1.75; corner_radius = 0.2; @@ -17,25 +42,12 @@ module keyboard_base_plate(pcb_width, pcb_length) { wall_width = pcb_width + 2 * (pcb_clearance_edge + thickness) - 2 * corner_radius; wall_length = pcb_length + 2 * (pcb_clearance_edge + thickness) - 2 * corner_radius; - wall_height = 14.0; + wall_height = pcb_screw_height + pcb_height + switch_z_max; bottom_width = 2 * (pcb_clearance_edge) + pcb_width; bottom_length = 2 * (pcb_clearance_edge) + pcb_length; bottom_height = thickness; - screw_holes = [ - [ 4.7625, 85.7250], - [ 66.6750, 85.7250], - [161.9250, 85.7250], - [238.1250, 85.7250], - [ 61.9125, 47.6250], - [138.1125, 47.6250], - [214.3125, 47.6250], - [ 19.0500, 9.5250], - [123.8250, 9.5250], - [238.1250, 9.5250] - ]; - module round_corner(translation, rotation) { color(case_color) translate(translation) @@ -77,12 +89,15 @@ module keyboard_base_plate(pcb_width, pcb_length) { } } - module screw_post(translation, h, d1, d2) { + module screw_post(translation, h, d) { + diameter_outer = 3 * d; + diameter_inner = d; + color(case_color) translate(translation) difference() { - cylinder(h=h, r1=(d1/2.0) * 1.5); - cylinder(h=h, r= d2/2.0); + cylinder(h=h, r1 = (diameter_outer / 2.0) * 1.5); + cylinder(h=h, r = diameter_inner / 2.0); } } @@ -227,13 +242,14 @@ module keyboard_base_plate(pcb_width, pcb_length) { /* Screw holes */ for (screw_hole = screw_holes) { screw_post([screw_hole[0], screw_hole[1], 0], - pcb_clearance_bottom * 2, - pcb_screw_hole_diameter * 3, - pcb_screw_hole_diameter); + pcb_screw_height, + pcb_screw_diameter); } /* Ridges (for rigidity!) */ ridges(thickness * 2, pcb_clearance_bottom / 2); } -keyboard_base_plate(pcb_width, pcb_length); +keyboard_base_plate([pcb_width, pcb_length, pcb_height], + [-switch_leg_length, switch_height], + pcb_screw_holes); -- cgit v1.2.3