Speaker grille
This commit is contained in:
@@ -14,5 +14,12 @@ module switch_cutout() {
|
||||
cube([14.2, 12.2, 30], true);
|
||||
}
|
||||
|
||||
module speaker_grille() {
|
||||
linear_extrude(height = 10, center = true) {
|
||||
import("speaker_grille.svg");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//usb_cutout();
|
||||
speaker_grille();
|
||||
@@ -21,9 +21,17 @@ module fabula_enclosure_bottom() {
|
||||
|
||||
// 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([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() {
|
||||
|
||||
55
enclosure/speaker_grille.svg
Normal file
55
enclosure/speaker_grille.svg
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="72.253342mm"
|
||||
height="78.911537mm"
|
||||
viewBox="0 0 72.253342 78.911537"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||
sodipodi:docname="speaker_grille.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.51402217"
|
||||
inkscape:cx="174.117"
|
||||
inkscape:cy="207.18951"
|
||||
inkscape:window-width="1536"
|
||||
inkscape:window-height="786"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-58.824089,-93.586312)">
|
||||
<path
|
||||
sodipodi:type="spiral"
|
||||
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-dasharray:none"
|
||||
id="path1"
|
||||
sodipodi:cx="91.622185"
|
||||
sodipodi:cy="129.7123"
|
||||
sodipodi:expansion="1"
|
||||
sodipodi:revolution="3"
|
||||
sodipodi:radius="40.036701"
|
||||
sodipodi:argument="-17.136862"
|
||||
sodipodi:t0="0"
|
||||
d="m 91.622185,129.7123 c -0.283888,1.9872 -2.818768,0.59774 -3.302859,-0.47184 -1.311858,-2.8985 1.571195,-5.6849 4.246538,-6.13388 4.78556,-0.80312 8.662206,3.52417 8.964896,8.02123 0.44421,6.59963 -5.491962,11.69547 -11.795933,11.79592 -8.402202,0.13389 -14.750623,-7.46349 -14.626937,-15.57063 0.155646,-10.20201 9.436426,-17.81672 19.345332,-17.45796 12.001008,0.43451 20.889068,11.41008 20.288978,23.12003 -0.70719,13.79978 -13.38417,23.96534 -26.894731,23.12 -15.598483,-0.97599 -27.044226,-15.35854 -25.951015,-30.66943 1.242175,-17.3972 17.333125,-30.124943 34.444126,-28.782034 19.19596,1.50654 33.20699,19.307864 31.61305,38.218824 -1.76957,20.99475 -21.28272,36.29004 -41.993519,34.44407" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -22,4 +22,4 @@ module test_fit_components() {
|
||||
|
||||
test_fit_components();
|
||||
translate([0, 0, 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) fabula_enclosure_bottom();
|
||||
//translate([0, 0, 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) #fabula_enclosure_top();
|
||||
translate([0, 0, 20]) rotate([0, 0, -90]) rotate([180, 0, 0]) #fabula_enclosure_top();
|
||||
Reference in New Issue
Block a user