summaryrefslogtreecommitdiffstats
path: root/case
diff options
context:
space:
mode:
authorXANTRONIX Development2023-11-13 15:14:25 -0500
committerXANTRONIX Development2023-11-13 15:14:25 -0500
commit9d734d80d52e06c784c8cafee935d1f99707d2bd (patch)
treec6b33ff5af1807a1f48f46ca858af54150108916 /case
parent20c3784c6725658af7d95bca6f3b467851854efa (diff)
downloadxantronix-z32-9d734d80d52e06c784c8cafee935d1f99707d2bd.tar.gz
xantronix-z32-9d734d80d52e06c784c8cafee935d1f99707d2bd.tar.bz2
xantronix-z32-9d734d80d52e06c784c8cafee935d1f99707d2bd.zip
Refactoring for reasons
Diffstat (limited to 'case')
-rw-r--r--case/case.scad68
1 files 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);