From 66d5713a1083a47aea7d0daeed763f81a3e25c57 Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Mon, 5 Jan 2026 00:38:01 +0100 Subject: [PATCH] Keycaps cutouts --- enclosure/cutouts.scad | 7 ++++++- enclosure/fabula_enclosure.scad | 19 +++++++++++++------ enclosure/internal_components.scad | 2 ++ enclosure/keys.scad | 2 +- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/enclosure/cutouts.scad b/enclosure/cutouts.scad index 7a04883..5d0663d 100644 --- a/enclosure/cutouts.scad +++ b/enclosure/cutouts.scad @@ -20,6 +20,11 @@ module speaker_grille() { } } +module keycap() { + cylinder(h = 10, d = 20, $fn = 128); +} + + //usb_cutout(); -speaker_grille(); \ No newline at end of file +//speaker_grille(); \ No newline at end of file diff --git a/enclosure/fabula_enclosure.scad b/enclosure/fabula_enclosure.scad index 65d2eea..1df7858 100644 --- a/enclosure/fabula_enclosure.scad +++ b/enclosure/fabula_enclosure.scad @@ -23,7 +23,7 @@ module fabula_enclosure_bottom() { translate([98.4, 29, 17]) rotate([0, -90, 0]) usb_cutout(); translate([90, 5, 10]) rotate([90, 0, 0]) rotate([0, 90, 0]) switch_cutout(); translate([-65, -40, 25]) speaker_grille(); - // TODO: Speaker cutout, lace hanger, switch cutout + // TODO: lace hanger } // Speaker grille reinforcements @@ -35,12 +35,19 @@ module fabula_enclosure_bottom() { } module fabula_enclosure_top() { - box(); - - // Supports - - // Cutouts + difference() { + union() { + box(); + + // Supports + } + // Cutouts + translate([20, 13.5, -30]) keycap(); + translate([35.5, -12.5, -30]) keycap(); + translate([44.5, 23.5, -30]) keycap(); + translate([61, -2, -30]) keycap(); + } } translate([0, -60, 0]) rotate([180, 0, 0]) fabula_enclosure_bottom(); diff --git a/enclosure/internal_components.scad b/enclosure/internal_components.scad index 32a96c4..bff07ea 100644 --- a/enclosure/internal_components.scad +++ b/enclosure/internal_components.scad @@ -1,6 +1,7 @@ // This file contains the components used in Fabula. // This is for test-fitting and shouldn't be printed. +/* // 50mm speaker module speaker_50() { translate([0, 0, -2]) { @@ -20,6 +21,7 @@ module speaker_50() { } } } +*/ // 80mm flat speaker module speaker_80() { diff --git a/enclosure/keys.scad b/enclosure/keys.scad index 4820bd9..98dc1b8 100644 --- a/enclosure/keys.scad +++ b/enclosure/keys.scad @@ -2,7 +2,7 @@ distance_from_key_to_enclosure = 6; enclosure_hole_depth = 6; -button_height_above_enclosure_surface = 3; +button_height_above_enclosure_surface = 4; module keycap() { stopper_flange_height = 2;