Modeled and test-fitted keycaps

This commit is contained in:
2026-01-04 18:35:53 +01:00
parent 4d27c092db
commit ccad5ff1c0
4 changed files with 45 additions and 1 deletions

View File

@@ -4,7 +4,7 @@
// Global dimensions, change here
width = 180;
height = 90;
depth = 40;
depth = 45;
screw_diameter = 3;
// Internal global variables

View File

@@ -21,6 +21,7 @@ module fabula_enclosure_bottom() {
// Cutouts
translate([98.4, 29, 17]) rotate([0, -90, 0]) usb_cutout();
// TODO: Speaker cutout, lace hanger, switch cutout
}
}
@@ -30,6 +31,7 @@ module fabula_enclosure_top() {
// Supports
// Cutouts
}
translate([0, -60, 0]) rotate([180, 0, 0]) fabula_enclosure_bottom();

37
enclosure/keys.scad Normal file
View File

@@ -0,0 +1,37 @@
// Contains the keycaps
distance_from_key_to_enclosure = 6;
enclosure_hole_depth = 6;
button_height_above_enclosure_surface = 3;
module keycap() {
stopper_flange_height = 2;
// Keycap
cylinder(h = enclosure_hole_depth + stopper_flange_height + button_height_above_enclosure_surface, d = 18, $fn = 128);
// Stopper flange
cylinder(h = stopper_flange_height, d = 24);
// Stem
stem_height = distance_from_key_to_enclosure - stopper_flange_height;
translate([0, 0, -stem_height / 2]){
difference() {
cube([5, 3.89, stem_height], true);
cube([1, 3.9, stem_height + 0.1], true);
cube([3.9, 1, stem_height + 0.1], true);
}
}
}
module next_keycap() {
keycap();
}
module prev_keycap() {
keycap();
}
module vol_up_keycap() {
keycap();
}
module vol_down_keycap() {
keycap();
}
keycap();

View File

@@ -2,6 +2,7 @@
use <internal_components.scad>
use <fabula_enclosure.scad>
use <keys.scad>
module test_fit_components() {
@@ -13,6 +14,10 @@ module test_fit_components() {
// Components that require cutout on external shell
translate([-29, -71.5, 1]) rotate([0, 0, 90]) li_ion_4056_charger_module();
translate([-5, -92, 10]) rotate([90, 0, 0]) switch();
translate([-13.4, -20.1, 43]) vol_up_keycap();
translate([12.6, -35.6, 43]) next_keycap();
translate([-23.4, -44.6, 43]) prev_keycap();
translate([2.05, -61.05, 43]) vol_down_keycap();
}
test_fit_components();