diff --git a/b100.scad b/b100.scad new file mode 100644 index 0000000..a764040 --- /dev/null +++ b/b100.scad @@ -0,0 +1,58 @@ +/** + * Laser cuttable template for building a shelf speaker with + * Visaton B100 + */ + +B = 19.05; // Bushing outer diameter +M = 6.35; // Mill diameter +J = 100; // Mill pad +A = 5; // Alignment pad size +P = 17; // Alignment pad placement +BD = B - M; // Bushing offset + +W = 160 - 40; // Internal width +H = 320 - 40; // Internal height +D = 200; // Internal depth + +// Side panels & mounting holes +translate([D, 0]) { + difference() { + square([D - BD, H + J], center=true); + + // Driver flush mount, mounting hole alignment + translate([0, 320/2 - 80]) { + difference() { + circle(d=122 + BD, $fn=100); + circle(d=122, $fn=100); + } + for ( i = [0 : 45 : 360] ){ + rotate(i) { + translate([111/2,0]) circle(d=4, $fn=30); + translate([122/2,0]) rotate(45) square(2, center=true); + } + } + + // Alignment squares + translate([D/2-P,0]) rotate(45) square(A, center=true); + translate([-D/2+P,0]) rotate(45) square(A, center=true); + } + translate([0, -320/2 + 60]) circle(d=34 + BD, $fn=100); + + // Alignment squares + translate([D/2-P,0]) rotate(45) square(A, center=true); + translate([-D/2+P,0]) rotate(45) square(A, center=true); + translate([0,H/2+50-P]) rotate(45) square(A, center=true); + translate([0,-H/2-50+P]) rotate(45) square(A, center=true); + } +} + +// Front/back groove +difference() { + square([W - BD, H - BD], center=true); + + // Alignment squares + translate([0,H/2-P]) rotate(45) square(A, center=true); + translate([0,-H/2+P]) rotate(45) square(A, center=true); + translate([-W/2+P,0]) rotate(45) square(A, center=true); + translate([W/2-P,0]) rotate(45) square(A, center=true); +} \ No newline at end of file