Files
Fabula/enclosure/internal_components.scad

66 lines
2.0 KiB
OpenSCAD

// This file contains the components used in Fabula.
// This is for test-fitting and shouldn't be printed.
// 50mm speaker
module speaker() {
translate([0, 0, -2]) {
union() {
difference() {
// Mounting Plaque
cube([55, 55, 4], true);
// Screw holes
translate([-20, -20, 0]) cylinder(h = 100, d = 4, center = true);
translate([20, -20, 0]) cylinder(h = 100, d = 4, center = true);
translate([-20, 20, 0]) cylinder(h = 100, d = 4, center = true);
translate([20, 20, 0]) cylinder(h = 100, d = 4, center = true);
// Speaker cone (cosmetic)
translate([0, 0, 2]) cylinder(h = 1, d = 49, center = true);
}
translate([0, 0, - 16 - 2]) cylinder(h = 32, d = 44, center = true);
}
}
}
// 4056-based li-ion charging module
module li_ion_4056_charger_module() {
cube([28, 17, 2], true);
translate([-14 + 3.25, 0, 2]) cube([6.5, 8.9, 3], true);
}
// 14x12mm rocker switch with 21x15mm flange
module switch() {
// Body
cube([14, 12, 11], true);
// Flange
translate([0, 0, 11/2]) cube([21, 15, 2], true);
// Rocker
translate([0, 0, 6]) rotate([0, 15, 0]) cube([12, 10, 5], true);
}
// Mainboard. The highest component is the capacitor with a total height of 18mm, but we round to 20 for good measure.
module pcb() {
translate([0, 0, -10]) {
linear_extrude(height = 20) {
hull() {
/*
Center svg
Bounding box:
Min: 19.20, 49.71
Max: 97.09, 198.06
Size: 77.89, 148.35
*/
translate([-77.89 / 2 - 19.20, -148.35 / 2 - 49.71, 0]) import("pcb.svg");
}
}
}
}
module battery_18650() {
cylinder(d = 18, h = 65, center = true);
}
//speaker();
//li_ion_4056_charger_module();
//switch();
//pcb();
battery_18650();