use use use // FABULA open source storyteller enclosure // TODO: open hardware logo, Fabula logo, cutouts for components and buttons, tag slot with led mount box_cut_height = 10; module fabula_enclosure_bottom() { difference() { union() { cap(); // Supports translate([-30, 0, 19.1]) supports_speaker(); translate([28, 0, 14.1]) rotate([0, 180, 90]) supports_battery(); translate([70.4, 29, 18]) rotate([0, 0, 180]) supports_charging_module(); } // Cutouts 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 } // Speaker grille reinforcements translate([-68, -40, 22.5]) { for (i = [1 : 14]) { translate([i*5, 0, 0]) cube([2, 80, 2]); } } } module fabula_enclosure_top() { box(); // Supports // Cutouts } translate([0, -60, 0]) rotate([180, 0, 0]) fabula_enclosure_bottom(); translate([0, 60, 0]) fabula_enclosure_top();