Update character_retainer_ring.scad, cutouts.scad, fabula_enclosure.scad, and 3 more files
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
// Indents at height 4
|
||||
|
||||
module retainer_spring() {
|
||||
rotate_extrude(convexity = 10, angle = 120, $fn = 128)
|
||||
rotate_extrude(convexity = 10, angle = 90, $fn = 128)
|
||||
translate([22, 0, 0])
|
||||
square([2, 10]);
|
||||
}
|
||||
@@ -16,22 +16,61 @@ module character_retainer_ring() {
|
||||
// Body
|
||||
cylinder(d = 59.5, h = 6);
|
||||
cylinder(d = 40.5, h = 20, center = true);
|
||||
// 5mm LED hole
|
||||
//translate([0, 25, 0]) sphere(d = 5);
|
||||
// Screw holes
|
||||
translate([25, 0, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true);
|
||||
translate([-25, 0, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true);
|
||||
translate([0, -25, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true);
|
||||
rotate([0, 0, 120]) translate([0, -25, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true);
|
||||
rotate([0, 0, 240]) translate([0, -25, 0]) cylinder(d = screw_hole_diameter, h = 6, center = true);
|
||||
|
||||
// Retainer springs
|
||||
rotate([0, 0, 30]) retainer_spring();
|
||||
rotate([0, 0, 210]) retainer_spring();
|
||||
rotate([0, 0, 45]) retainer_spring();
|
||||
rotate([0, 0, 165]) retainer_spring();
|
||||
rotate([0, 0, 285]) retainer_spring();
|
||||
}
|
||||
|
||||
// Retainer bumps
|
||||
rotate([0, 0, -30]) translate ([20.25, 0, 4]) sphere(d = 2);
|
||||
rotate([0, 0, 90]) translate ([20.25, 0, 4]) sphere(d = 2);
|
||||
rotate([0, 0, 270]) translate ([20.25, 0, 4]) sphere(d = 2);
|
||||
rotate([0, 0, 210]) translate ([20.25, 0, 4]) sphere(d = 2);
|
||||
|
||||
}
|
||||
|
||||
module status_led_diffuser() {
|
||||
$fn = 32;
|
||||
// Diffuser
|
||||
hull() {
|
||||
translate([0, -13, 0]) cylinder(d = 10, h = 13);
|
||||
translate([15, 13, 0]) cylinder(d = 10, h = 13);
|
||||
translate([-15, 13, 0]) cylinder(d = 10, h = 13);
|
||||
}
|
||||
difference() {
|
||||
// Flange
|
||||
cube([50, 40, 2], true);
|
||||
// Mounting holes
|
||||
translate([-18, -5, 0]) cylinder(d = 3, h = 3, center = true);
|
||||
translate([18, -5, 0]) cylinder(d = 3, h = 3, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
module sdcard_access_port() {
|
||||
$fn = 32;
|
||||
difference() {
|
||||
union() {
|
||||
translate([-12, -7.5, 0]) cube([24, 15, 8]);
|
||||
// Flange
|
||||
hull() {
|
||||
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);
|
||||
}
|
||||
// Mounting holes
|
||||
translate([16, 0, -1]) cylinder(d = 3, h = 10);
|
||||
translate([-16, 0, -1]) cylinder(d = 3, h = 10);
|
||||
}
|
||||
}
|
||||
|
||||
//retainer_spring();
|
||||
character_retainer_ring();
|
||||
//character_retainer_ring();
|
||||
//status_led_diffuser();
|
||||
sdcard_access_port();
|
||||
|
||||
@@ -26,15 +26,42 @@ module keycap() {
|
||||
|
||||
module character_retainer_cutout() {
|
||||
$fn = 128;
|
||||
screw_hole_diameter = 3;
|
||||
// Ring cutout
|
||||
cylinder(d = 60, h = 5);
|
||||
// 5mm LED hole
|
||||
translate([0, 25, 10]) cylinder(d = 5, h = 15, center = true);
|
||||
// Screw holes
|
||||
translate([25, 0, 10]) cylinder(d = screw_hole_diameter, h = 15, center = true);
|
||||
translate([-25, 0, 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, 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() {
|
||||
$fn = 32;
|
||||
union() {
|
||||
translate([-13, -8.5, 0]) cube([26, 17, 8]);
|
||||
// Flange
|
||||
hull() {
|
||||
translate([15, 0, 0]) cylinder(d = 21, h = 2);
|
||||
translate([-15, 0, 0]) cylinder(d = 21, h = 2);
|
||||
}
|
||||
// Screw holes
|
||||
translate([16, 0, -1]) cylinder(d = 2, h = 10);
|
||||
translate([-16, 0, -1]) cylinder(d = 2, h = 10);
|
||||
}
|
||||
}
|
||||
|
||||
//usb_cutout();
|
||||
//speaker_grille();
|
||||
character_retainer_cutout();
|
||||
//character_retainer_cutout();
|
||||
//status_led_diffuser_cutout();
|
||||
sdcard_access_port_cutout();
|
||||
@@ -24,7 +24,10 @@ 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: lace hanger
|
||||
translate([75, 55, 16]) rotate([90, 0, 0]) cylinder(d = 3, h = 20, $fn = 4);
|
||||
|
||||
// Logos
|
||||
translate([60, -10, 28.1]) linear_extrude(height = 1, center = true) rotate([0, 0, 90]) scale([0.10, 0.10, 0.10]) import("oshw-logo-filled-black.svg");
|
||||
}
|
||||
|
||||
// Speaker grille reinforcements
|
||||
@@ -45,6 +48,9 @@ module fabula_enclosure_top() {
|
||||
translate([-66.1, -27.8, -16.2]) pcb_support(pcb_screw_size);
|
||||
translate([64.1, 24.2, -16.2]) pcb_support(pcb_screw_size);
|
||||
translate([64.1, -26.8, -16.2]) pcb_support(pcb_screw_size);
|
||||
|
||||
// Url
|
||||
translate([-80, -42, -22.5]) linear_extrude(height = 1.5, center = true) text("git.ichibi.eu/penguin86/Fabula", size = 6);
|
||||
}
|
||||
|
||||
// Cutouts
|
||||
@@ -54,6 +60,7 @@ module fabula_enclosure_top() {
|
||||
translate([44.5, 23.5, -30]) keycap();
|
||||
translate([61, -2, -30]) keycap();
|
||||
translate([-50, 0, -30.5]) rotate([0, 0, 90]) character_retainer_cutout();
|
||||
translate([-10, -51, -10]) rotate([-90, 0, 0]) sdcard_access_port_cutout();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
2
enclosure/oshw-logo-filled-black.svg
Normal file
2
enclosure/oshw-logo-filled-black.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 7.1 KiB |
@@ -27,3 +27,5 @@ module pcb_support(screw_diameter) {
|
||||
cylinder(d = screw_diameter, h = 18, center = true);
|
||||
}
|
||||
}
|
||||
|
||||
supports_charging_module();
|
||||
|
||||
@@ -24,12 +24,10 @@ module test_fit_components() {
|
||||
|
||||
// Components mounted on the external shell
|
||||
translate([0, 50, 45]) character_retainer_ring();
|
||||
//translate([24, 0, 38]) rotate([0, 0, -90]) status_led_diffuser();
|
||||
translate([51, 10, 30]) rotate([90, 0, 0]) rotate([0, 270, 0]) sdcard_access_port();
|
||||
}
|
||||
|
||||
//test_fit_components();
|
||||
//translate([0, 0, explode_view ? -20 : 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_bottom();
|
||||
test_fit_components();
|
||||
translate([0, 0, explode_view ? -20 : 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_bottom();
|
||||
translate([0, 0, explode_view ? 100 : 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_top();
|
||||
|
||||
//DEBUG
|
||||
//translate([0, 50, 45]) character_retainer_ring();
|
||||
//DEBUG
|
||||
Reference in New Issue
Block a user