diff --git a/amt-box.scad b/amt-box.scad index 2e75c0d..8da65e1 100644 --- a/amt-box.scad +++ b/amt-box.scad @@ -3,15 +3,17 @@ * Dynavox AMT-1 and Wavecor WF145WA05 */ -B = 12.7; // Bushing outer diameter +B1 = 19.05; // Bushing outer diameter +B2 = 12.7; M = 6.35; // Mill diameter J = 100; // Mill pad T = 21; // Material thickness I = 320; // Internal dimension A = 5; // Alignment pad size -P = 17; // Alignment pad placement +P = 16; // Alignment pad placement O = I + 2 * T; // Outer dimensions -BD = B - M; // Bushing offset +BD = B1 - M; // Bushing offset +BD2 = B2 - M; W = 200 - 40; // Internal width H = 350 - 40; // Internal height/depth @@ -23,57 +25,64 @@ module sam300d_flush_mount() { } // Side panels -translate([I+J/2, 0]) { +translate([250, 0]) { difference() { square([H - BD, H + 100], center=true); - translate([-H/2 + 100 , -H/2 + 60]) circle(d=100, $fn=100); // !!! - offset(r=BD/2) square([80+M,M], center=true); + + // Bass reflex tube + translate([-H/2 + 100 , -350/2 + 80]) circle(d=69-0.4+BD, $fn=100); + translate([H/2 - 100 , -350/2 + 80]) circle(d=69-0.4+BD, $fn=100); + + // Bracing tenon + translate([0, 350/2-200+6]) offset(r=BD/2) square([80+M,M], center=true); // Alignment squares - translate([O/2,0]) rotate(45) square(A, center=true); - translate([-O/2,0]) rotate(45) square(A, center=true); - translate([0,I/2-P]) rotate(45) square(A, center=true); - translate([0,-I/2+P]) rotate(45) square(A, center=true); - translate([I/2,I/2-P]) rotate(45) square(A, center=true); - translate([I/2,-I/2+P]) rotate(45) square(A, center=true); - translate([-I/2,I/2-P]) rotate(45) square(A, center=true); - translate([-I/2,-I/2+P]) rotate(45) square(A, center=true); + translate([H/2-P,0]) rotate(45) square(A, center=true); + translate([-H/2+P,0]) rotate(45) square(A, center=true); + translate([0,H/2-P]) rotate(45) square(A, center=true); + translate([0,-H/2+P]) rotate(45) square(A, center=true); } } // Back face + bottom/top cutout -translate([-I-J/2, 0]) +translate([-170, 0]) difference() { square([W - BD, H + 100], center=true); - offset(r=BD/2) square([93 - BD, 80 - BD], center=true); + difference() { + offset(r=BD/2) square([93, 80], center=true); + offset(r=BD/2) square([76, 56], center=true); + } translate([0,H/2]) rotate(45) square(A, center=true); translate([0,-H/2]) 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); - } -// Mounting holes +// Front mounting holes difference() { - square([W, H], center=true); + square([W-BD2, H-BD2], 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); // Tweeter - translate([0, H/2-80]) { - circle(d=65 + BD, $fn=100); + translate([0, 350/2-80]) { + circle(d=65 + BD2, $fn=100); translate([-56/2,-56/2]) circle(d=4, $fn=30); translate([56/2,-56/2]) circle(d=4, $fn=30); translate([-56/2,56/2]) circle(d=4, $fn=30); translate([56/2,56/2]) circle(d=4, $fn=30); - } // Woofer - translate([0, H/2-200]) { - circle(d=118 + BD, $fn=100); + translate([0, 350/2-200]) { + circle(d=118 + BD2, $fn=100); for ( i = [45 : 90 : 360] ){ rotate(i) translate([138/2,0]) circle(d=4, $fn=30); } - } } \ No newline at end of file