Integrated LED diffuser, fixes

This commit is contained in:
2026-01-25 12:28:34 +01:00
parent 2abfa54b92
commit c7028a759b
5 changed files with 27 additions and 20 deletions

View File

@@ -29,22 +29,18 @@ module character_retainer_cutout() {
screw_hole_diameter = 3; screw_hole_diameter = 3;
// Ring cutout // Ring cutout
cylinder(d = 60, h = 5); cylinder(d = 60, h = 5);
// Led diffuser cutout
translate([-28, -15, 0]) cylinder(d = 15, h = 5);
// Led housing cutout
translate([-28, -15, 3]) cylinder(d = 5.2, h = 15);
// Screw holes // Screw holes
translate([0, -25, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true); translate([0, -25, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true);
rotate([0, 0, 120]) translate([0, -25, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true); rotate([0, 0, 120]) translate([0, -25, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true);
rotate([0, 0, 240]) translate([0, -25, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true); rotate([0, 0, 240]) translate([0, -25, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true);
} }
module status_led_diffuser_cutout() {
$fn = 32;
// Diffuser
hull() {
translate([0, -13.2, 0]) cylinder(d = 10.2, h = 13);
translate([15.2, 13.2, 0]) cylinder(d = 10.2, h = 13);
translate([-15.2, 13.2, 0]) cylinder(d = 10.2, h = 13);
}
}
module sdcard_access_port_cutout() { module sdcard_access_port_cutout() {
$fn = 32; $fn = 32;
union() { union() {
@@ -60,8 +56,7 @@ module sdcard_access_port_cutout() {
} }
} }
usb_cutout(); //usb_cutout();
//speaker_grille(); //speaker_grille();
//character_retainer_cutout(); character_retainer_cutout();
//status_led_diffuser_cutout();
//sdcard_access_port_cutout(); //sdcard_access_port_cutout();

View File

@@ -14,7 +14,12 @@ module character_retainer_ring() {
screw_hole_diameter = 2; screw_hole_diameter = 2;
difference() { difference() {
// Body // Body
cylinder(d = 59.5, h = 6); union() {
// Main body
cylinder(d = 59.5, h = 6);
// Secondary circle (status LED diffuser)
translate([28, -15, 0]) cylinder(d = 14.5, h = 6);
}
cylinder(d = 40.5, h = 20, center = true); cylinder(d = 40.5, h = 20, center = true);
// Screw holes // Screw holes
translate([0, -25, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true); translate([0, -25, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true);
@@ -25,6 +30,9 @@ module character_retainer_ring() {
rotate([0, 0, 45]) retainer_spring(); rotate([0, 0, 45]) retainer_spring();
rotate([0, 0, 165]) retainer_spring(); rotate([0, 0, 165]) retainer_spring();
rotate([0, 0, 285]) retainer_spring(); rotate([0, 0, 285]) retainer_spring();
// Status LED housing
translate([28, -15, -0.1]) cylinder(d = 5.2, h = 3);
} }
// Retainer bumps // Retainer bumps
@@ -32,6 +40,7 @@ module character_retainer_ring() {
rotate([0, 0, 90]) translate ([20.25, 0, 4]) sphere(d = 2); rotate([0, 0, 90]) translate ([20.25, 0, 4]) sphere(d = 2);
rotate([0, 0, 210]) translate ([20.25, 0, 4]) sphere(d = 2); rotate([0, 0, 210]) translate ([20.25, 0, 4]) sphere(d = 2);
} }
module status_led_diffuser() { module status_led_diffuser() {
@@ -61,9 +70,9 @@ module sdcard_access_port() {
translate([15, 0, 0]) cylinder(d = 20, h = 2); translate([15, 0, 0]) cylinder(d = 20, h = 2);
translate([-15, 0, 0]) cylinder(d = 20, h = 2); translate([-15, 0, 0]) cylinder(d = 20, h = 2);
} }
// Text
translate([6, -3, -0.9]) linear_extrude(height = 1) rotate([0, 180, 0]) text("SD", size = 6);
} }
// Text
translate([6, -3, -0.1]) linear_extrude(height = 1) rotate([0, 180, 0]) text("SD", size = 6);
// Mounting holes // Mounting holes
translate([16, 0, -1]) cylinder(d = 3, h = 10); translate([16, 0, -1]) cylinder(d = 3, h = 10);
translate([-16, 0, -1]) cylinder(d = 3, h = 10); translate([-16, 0, -1]) cylinder(d = 3, h = 10);
@@ -71,6 +80,6 @@ module sdcard_access_port() {
} }
//retainer_spring(); //retainer_spring();
character_retainer_ring(); //character_retainer_ring();
//status_led_diffuser(); //status_led_diffuser();
//sdcard_access_port(); sdcard_access_port();

View File

@@ -21,7 +21,7 @@ module fabula_enclosure_bottom() {
} }
// Cutouts // Cutouts
translate([98.4, 29, 17]) rotate([0, -90, 0]) usb_cutout(); // TODO: Verificare altezza 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([90, 5, 10]) rotate([90, 0, 0]) rotate([0, 90, 0]) switch_cutout();
translate([-65, -40, 25]) speaker_grille(); translate([-65, -40, 25]) speaker_grille();
translate([75, 55, 16]) rotate([90, 0, 0]) cylinder(d = 3, h = 20, $fn = 4); translate([75, 55, 16]) rotate([90, 0, 0]) cylinder(d = 3, h = 20, $fn = 4);

View File

@@ -0,0 +1,3 @@
use <../external_parts.scad>
sdcard_access_port();

View File

@@ -34,5 +34,5 @@ module test_fit_components() {
} }
test_fit_components(); test_fit_components();
//color(color_bottom) translate([0, 0, explode_view ? -20 : 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_bottom(); color(color_bottom) translate([0, 0, explode_view ? -20 : 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_bottom();
color(color_top) translate([0, 0, explode_view ? 100 : 21]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_top(); color(color_top) translate([0, 0, explode_view ? 100 : 21]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_top();