From 2747df02655a77540d5f84ad3cf795fcd9fd4d02 Mon Sep 17 00:00:00 2001 From: Daniele Verducci Date: Sat, 3 Jan 2026 09:07:42 +0100 Subject: [PATCH] Safer rounded enclosure --- enclosure/fabula_enclosure.scad | 48 ++++++++++++++++----------------- enclosure/main.scad | 4 +-- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/enclosure/fabula_enclosure.scad b/enclosure/fabula_enclosure.scad index 9c665d3..39a9e5d 100644 --- a/enclosure/fabula_enclosure.scad +++ b/enclosure/fabula_enclosure.scad @@ -1,8 +1,8 @@ // FABULA open source storyteller enclosure // Global dimensions, change here -width = 120; -height = 60; +width = 200; +height = 100; depth = 40; screw_diameter = 3; @@ -23,11 +23,11 @@ module screw_hole() { cylinder(h = depth - 2, d = screw_diameter, center = true); // Hole where the screw will pass with slack, without threading (in the lid) translate([0, 0, depth/2 - box_cut_height/2]) { - cylinder(h = box_cut_height + 2, d = screw_diameter*1.5, center = true); + cylinder(h = box_cut_height + 12, d = screw_diameter*1.5, center = true); } // Screw head bevel bevel_depth = 1; - translate([0, 0, depth/2 - bevel_depth/2 + 0.1]) { + translate([0, 0, depth/2 - bevel_depth/2 + 6]) { cylinder(h = bevel_depth, d2 = screw_diameter * 2.5, d1 = screw_diameter*1.5, center = true); } } @@ -60,39 +60,42 @@ module closed_box() { union() { // Hollow box difference() { - main_body(); - scale([0.95, 0.95, 0.95]) { + // Round all edges to avoid danger for the children + minkowski() { + $fn = 64; main_body(); + sphere(6); } + main_body(); } // Screws standoffs near curved edges - translate([width/2 - rounded_edge_diameter/2, -height/2 + standoff_diameter/2, 0]) { + translate([width/2 - rounded_edge_diameter/2, -height/2, 0]) { standoff(); } - translate([-width/2 + rounded_edge_diameter/2, height/2 - standoff_diameter/2, 0]) { + translate([-width/2 + rounded_edge_diameter/2, height/2, 0]) { standoff(); } // Screws standoff near sharp edges - translate([-width/2 + standoff_diameter/2, -height/2 + standoff_diameter/2, 0]) { + translate([-width/2 + standoff_diameter/2, -height/2, 0]) { standoff(); } - translate([width/2 - standoff_diameter/2, height/2 - standoff_diameter/2, 0]) { + translate([width/2 - standoff_diameter/2, height/2, 0]) { standoff(); } } // Screw holes near curved edges - translate([width/2 - rounded_edge_diameter/2, -height/2 + standoff_diameter/2, 0]) { + translate([width/2 - rounded_edge_diameter/2, -height/2, 0]) { screw_hole(); } - translate([-width/2 + rounded_edge_diameter/2, height/2 - standoff_diameter/2, 0]) { + translate([-width/2 + rounded_edge_diameter/2, height/2, 0]) { screw_hole(); } // Screws holes near sharp edges - translate([-width/2 + standoff_diameter/2, -height/2 + standoff_diameter/2, 0]) { + translate([-width/2 + standoff_diameter/2, -height/2, 0]) { screw_hole(); } - translate([width/2 - standoff_diameter/2, height/2 - standoff_diameter/2, 0]) { + translate([width/2 - standoff_diameter/2, height/2, 0]) { screw_hole(); } } @@ -121,24 +124,22 @@ module cap() { translate([0, 0, box_cut_height - 1]) { intersection() { difference() { - scale([0.95, 0.95, 0.95]) { - main_body(); - } - scale([0.92, 0.92, 0.92]) { + main_body(); + scale([0.96, 0.96, 0.96]) { main_body(); } // Clear screws standoffs near curved edges - translate([width/2 - rounded_edge_diameter/2, -height/2 + standoff_diameter/2, 0]) { + translate([width/2 - rounded_edge_diameter/2, -height/2, 0]) { standoff(); } - translate([-width/2 + rounded_edge_diameter/2, height/2 - standoff_diameter/2, 0]) { + translate([-width/2 + rounded_edge_diameter/2, height/2, 0]) { standoff(); } // Clear screws standoff near sharp edges - translate([-width/2 + standoff_diameter/2, -height/2 + standoff_diameter/2, 0]) { + translate([-width/2, -height/2, 0]) { standoff(); } - translate([width/2 - standoff_diameter/2, height/2 - standoff_diameter/2, 0]) { + translate([width/2, height/2, 0]) { standoff(); } } @@ -147,5 +148,4 @@ module cap() { } } -closed_box(); - +closed_box(); \ No newline at end of file diff --git a/enclosure/main.scad b/enclosure/main.scad index 4350aa6..6bd8a78 100644 --- a/enclosure/main.scad +++ b/enclosure/main.scad @@ -2,5 +2,5 @@ use $fn=32; -translate([0, -50, 0]) box(); -translate([0, 50, 0]) rotate([180, 0, 0]) cap(); \ No newline at end of file +translate([0, -60, 0]) box(); +translate([0, 60, 0]) rotate([180, 0, 0]) cap(); \ No newline at end of file