This commit is contained in:
XANTRONIX 2023-11-11 15:59:01 -05:00
parent 2581a453fe
commit d8426e7f90

View file

@ -7,9 +7,10 @@ module keyboard_base_plate(pcb_width, pcb_height) {
pcb_clearance_edge = 1.0; pcb_clearance_edge = 1.0;
pcb_clearance_bottom = 2.0; pcb_clearance_bottom = 2.0;
corner_radius = 0.5; thickness = 1.0;
corner_radius = thickness / 2.0;
module corner(translation, rotation) { module round_corner(translation, rotation) {
translate(translation) translate(translation)
rotate(rotation) rotate(rotation)
rotate_extrude(angle=90) { rotate_extrude(angle=90) {
@ -20,7 +21,7 @@ module keyboard_base_plate(pcb_width, pcb_height) {
} }
} }
module edge(length, translation, rotation) { module round_edge(length, translation, rotation) {
translate(translation) translate(translation)
rotate(rotation) rotate(rotation)
linear_extrude(length) linear_extrude(length)
@ -31,52 +32,47 @@ module keyboard_base_plate(pcb_width, pcb_height) {
} }
/* Lower left corner */ /* Lower left corner */
corner([0 - pcb_clearance_edge, round_corner([0 - pcb_clearance_edge,
0 - pcb_clearance_edge, 0], [-90, 90, 90]); 0 - pcb_clearance_edge, 0], [-90, 90, 90]);
/* Upper left orner */ /* Upper left orner */
corner([0 - pcb_clearance_edge, round_corner([0 - pcb_clearance_edge,
pcb_clearance_edge + pcb_height, 0], [0, 90, 90]); pcb_clearance_edge + pcb_height, 0], [0, 90, 90]);
/* Upper right corner */ /* Upper right corner */
corner([pcb_clearance_edge + pcb_width, round_corner([pcb_clearance_edge + pcb_width,
pcb_clearance_edge + pcb_height, 0], [90, 90, 90]); pcb_clearance_edge + pcb_height, 0], [90, 90, 90]);
/* Lower right corner */ /* Lower right corner */
corner([ pcb_clearance_edge + pcb_width, round_corner([ pcb_clearance_edge + pcb_width,
0 - pcb_clearance_edge, 0], [180, 90, 90]); 0 - pcb_clearance_edge, 0], [180, 90, 90]);
/* Top edge */ /* Top edge */
edge(2 * pcb_clearance_edge + pcb_width, round_edge( 2 * pcb_clearance_edge + pcb_width,
[0 - pcb_clearance_edge, [0 - pcb_clearance_edge,
pcb_clearance_edge + pcb_height, 0], pcb_clearance_edge + pcb_height, 0], [0, 90, 0]);
[0, 90, 0]);
/* Right edge */ /* Right edge */
edge(2 * pcb_clearance_edge + pcb_height, round_edge( 2 * pcb_clearance_edge + pcb_height,
[ pcb_clearance_edge + pcb_width, [ pcb_clearance_edge + pcb_width,
0 - pcb_clearance_edge, 0], 0 - pcb_clearance_edge, 0], [270, 0, 0]);
[270, 0, 0]);
/* Bottom edge */ /* Bottom edge */
edge(2 * pcb_clearance_edge + pcb_width, round_edge(2 * pcb_clearance_edge + pcb_width,
[0 - pcb_clearance_edge, [0 - pcb_clearance_edge,
0 - pcb_clearance_edge, 0 - pcb_clearance_edge, 0], [90, 180, 90]);
0],
[90, 180, 90]);
/* Left edge */ /* Left edge */
edge(2 * pcb_clearance_edge + pcb_width, round_edge( 2 * pcb_clearance_edge + pcb_height,
[0 - pcb_clearance_edge, [0 - pcb_clearance_edge,
0 - pcb_clearance_edge, 0], 0 - pcb_clearance_edge, 0], [270, 90, 0]);
[270, 90, 0]);
linear_extrude(corner_radius*2) linear_extrude(thickness)
translate([0 - pcb_clearance_edge, translate([0 - pcb_clearance_edge,
0 - pcb_clearance_edge, 0]) 0 - pcb_clearance_edge, 0])
square([2 * pcb_clearance_edge + pcb_width, square([2 * pcb_clearance_edge + pcb_width,
2 * pcb_clearance_edge + pcb_height], 2 * pcb_clearance_edge + pcb_height],
false); false);
} }
keyboard_base_plate(pcb_width, pcb_height); keyboard_base_plate(pcb_width, pcb_height);