Start on support structures

This commit is contained in:
XANTRONIX 2023-11-15 15:11:51 -05:00
parent 651a39d9dc
commit 8fb65233a7

View file

@ -14,8 +14,8 @@ include <keyboard.scad>
* Ridge thickness: 1.25mm * Ridge thickness: 1.25mm
* First horizontal ridge: Starts at keyboard X offset * First horizontal ridge: Starts at keyboard X offset
* Ridge height: 11.5mm * Ridge height: 11.5mm
* Ridge upper aspect: 8mm * Ridge upper aspect: 12mm
* Ridge lower aspect: 5mm * Ridge lower aspect: 3.75mm
* First vertical ridge Y offset: 8mm * First vertical ridge Y offset: 8mm
*/ */
@ -79,6 +79,47 @@ module top_case(key_switch_sizes, pcb_screw_holes) {
} }
} }
module support(dimensions, width) {
length = dimensions[0];
height = dimensions[1];
module right_triangle(base) {
length = sqrt((base ^ 2) / 2.0);
intersection() {
rotate([0, 0, -45])
square([length*2, length*2], true);
square([length*2, length*2]);
}
}
module shape() {
/* Height ratio of lower aspect to upper aspect */
aspect_ratio = 3.75 / 12.0;
aspect_upper_height = height;
aspect_lower_height = aspect_ratio * height;
/* The length of each individual support aspect */
aspect_length = 1/3 * length;
hypotenuse = sqrt(2*(aspect_length^2));
lower_x_offset = aspect_length - (hypotenuse - aspect_length);
right_triangle(aspect_length);
translate([lower_x_offset, 0, 0])
square([1.5 * hypotenuse, aspect_lower_height]);
translate([3 * aspect_length, 0, 0])
mirror([1, 0, 0])
right_triangle(aspect_length);
}
linear_extrude(width) shape();
}
module body() { module body() {
translate([0, 0, wall_height - wall_width]) translate([0, 0, wall_height - wall_width])
fascia(); fascia();