Modeled and test-fitted keycaps
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
// Global dimensions, change here
|
// Global dimensions, change here
|
||||||
width = 180;
|
width = 180;
|
||||||
height = 90;
|
height = 90;
|
||||||
depth = 40;
|
depth = 45;
|
||||||
screw_diameter = 3;
|
screw_diameter = 3;
|
||||||
|
|
||||||
// Internal global variables
|
// Internal global variables
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ module fabula_enclosure_bottom() {
|
|||||||
|
|
||||||
// Cutouts
|
// Cutouts
|
||||||
translate([98.4, 29, 17]) rotate([0, -90, 0]) usb_cutout();
|
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
|
// Supports
|
||||||
|
|
||||||
// Cutouts
|
// Cutouts
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
translate([0, -60, 0]) rotate([180, 0, 0]) fabula_enclosure_bottom();
|
translate([0, -60, 0]) rotate([180, 0, 0]) fabula_enclosure_bottom();
|
||||||
|
|||||||
37
enclosure/keys.scad
Normal file
37
enclosure/keys.scad
Normal 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();
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
use <internal_components.scad>
|
use <internal_components.scad>
|
||||||
use <fabula_enclosure.scad>
|
use <fabula_enclosure.scad>
|
||||||
|
use <keys.scad>
|
||||||
|
|
||||||
|
|
||||||
module test_fit_components() {
|
module test_fit_components() {
|
||||||
@@ -13,6 +14,10 @@ module test_fit_components() {
|
|||||||
// Components that require cutout on external shell
|
// Components that require cutout on external shell
|
||||||
translate([-29, -71.5, 1]) rotate([0, 0, 90]) li_ion_4056_charger_module();
|
translate([-29, -71.5, 1]) rotate([0, 0, 90]) li_ion_4056_charger_module();
|
||||||
translate([-5, -92, 10]) rotate([90, 0, 0]) switch();
|
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();
|
test_fit_components();
|
||||||
|
|||||||
Reference in New Issue
Block a user