Add AMT Box and Lia AMT
This commit is contained in:
parent
48f8c386d4
commit
36d66d1f3b
79
amt-box.scad
Normal file
79
amt-box.scad
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
/**
|
||||||
|
* Laser cuttable template for building a shelf speaker with
|
||||||
|
* Dynavox AMT-1 and Wavecor WF145WA05
|
||||||
|
*/
|
||||||
|
|
||||||
|
B = 12.7; // Bushing outer diameter
|
||||||
|
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
|
||||||
|
O = I + 2 * T; // Outer dimensions
|
||||||
|
BD = B - M; // Bushing offset
|
||||||
|
|
||||||
|
W = 200 - 40; // Internal width
|
||||||
|
H = 350 - 40; // Internal height/depth
|
||||||
|
|
||||||
|
echo("Internal volume", I*I*I/1000000, "L");
|
||||||
|
|
||||||
|
module sam300d_flush_mount() {
|
||||||
|
offset(r=BD) square([255, 188], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Side panels
|
||||||
|
translate([I+J/2, 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);
|
||||||
|
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Back face + bottom/top cutout
|
||||||
|
translate([-I-J/2, 0])
|
||||||
|
difference() {
|
||||||
|
square([W - BD, H + 100], center=true);
|
||||||
|
offset(r=BD/2) square([93 - BD, 80 - BD], 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
|
||||||
|
difference() {
|
||||||
|
square([W, H], center=true);
|
||||||
|
|
||||||
|
// Tweeter
|
||||||
|
translate([0, H/2-80]) {
|
||||||
|
circle(d=65 + BD, $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);
|
||||||
|
for ( i = [45 : 90 : 360] ){
|
||||||
|
rotate(i) translate([138/2,0]) circle(d=4, $fn=30);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
140
lia-amt.scad
Normal file
140
lia-amt.scad
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
B = 19.05;
|
||||||
|
M = 6.35;
|
||||||
|
|
||||||
|
A = 5; // Alignment pad size
|
||||||
|
|
||||||
|
|
||||||
|
BD = B - M;
|
||||||
|
|
||||||
|
W = 250-20-20; // Internal width
|
||||||
|
H = 450-20-20; // Internal height
|
||||||
|
D = 275-20; // Internal depth
|
||||||
|
|
||||||
|
WF182_HEIGHT = 165.5;
|
||||||
|
|
||||||
|
AMT1I_WIDTH = 100;
|
||||||
|
AMT1I_HEIGHT = 130;
|
||||||
|
|
||||||
|
module wf182() {
|
||||||
|
intersection() {
|
||||||
|
circle(d=182, $fn=100);
|
||||||
|
square([182,WF182_HEIGHT], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module amt1i() {
|
||||||
|
offset(r=BD/2) square([AMT1I_WIDTH, AMT1I_HEIGHT], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
R = 152.5; // WF182_HEIGHT/2 + 4 + AMT1I_HEIGHT/2;
|
||||||
|
|
||||||
|
module alignment() {
|
||||||
|
for (i=[25+AMT1I_HEIGHT/2, 0, -R, R]) {
|
||||||
|
translate([110, i]) rotate(45) square(A,center=true);
|
||||||
|
translate([0, i]) rotate(45) square(A,center=true);
|
||||||
|
translate([-110, i]) rotate(45) square(A,center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Side panel and tweeter alignment
|
||||||
|
difference() {
|
||||||
|
square([275-19-BD, 450+100], center=true);
|
||||||
|
|
||||||
|
// Tweeter cutout
|
||||||
|
translate([0, 450/2-25-130/2]) {
|
||||||
|
offset(r=BD/2) square([AMT1I_WIDTH, AMT1I_HEIGHT], center=true);
|
||||||
|
translate([100, 0]) rotate(45) square(A,center=true);
|
||||||
|
translate([-100, 0]) rotate(45) square(A,center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tweeter flush mount
|
||||||
|
translate([0,-450/2+25+130/2]) {
|
||||||
|
offset(r=BD/2) square([AMT1I_WIDTH-20, AMT1I_HEIGHT-10], center=true);
|
||||||
|
|
||||||
|
translate([100, 0]) rotate(45) square(A,center=true);
|
||||||
|
translate([-100, 0]) rotate(45) square(A,center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, -450/2]) rotate(45) square(A,center=true);
|
||||||
|
translate([0, 450/2]) rotate(45) square(A,center=true);
|
||||||
|
translate([100, 0]) rotate(45) square(A,center=true);
|
||||||
|
translate([-100, 0]) rotate(45) square(A,center=true);
|
||||||
|
rotate(45) square(A,center=true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Front face flush mount and back tube cutout
|
||||||
|
translate([255,0])
|
||||||
|
difference() {
|
||||||
|
square([250, 450], center=true);
|
||||||
|
|
||||||
|
|
||||||
|
translate([0, -450/2+207.5]) {
|
||||||
|
difference() {
|
||||||
|
offset(r=BD/2) wf182();
|
||||||
|
wf182();
|
||||||
|
}
|
||||||
|
rotate(45) square(3,center=true);
|
||||||
|
translate([220/2, 0]) rotate(45) square(A,center=true);
|
||||||
|
translate([-220/2, 0]) rotate(45) square(A,center=true);
|
||||||
|
for ( i = [0 : 60 : 360] ){
|
||||||
|
rotate(i) translate([169.5/2,0]) circle(d=4, $fn=50);
|
||||||
|
}
|
||||||
|
for ( i = [0,45,135,180,225] ){
|
||||||
|
rotate(i) translate([182/2,0]) rotate(45) square(3,center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0,165.5/2]) rotate(45) square(3,center=true);
|
||||||
|
translate([0,-165.5/2]) rotate(45) square(3,center=true);
|
||||||
|
|
||||||
|
}
|
||||||
|
translate([0, -420/2]) rotate(45) square(A,center=true);
|
||||||
|
translate([0, 420/2]) rotate(45) square(A,center=true);
|
||||||
|
translate([220/2, 0]) rotate(45) square(A,center=true);
|
||||||
|
translate([-220/2, 0]) rotate(45) square(A,center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Front woofer cutout & groove
|
||||||
|
translate([-255,0])
|
||||||
|
difference() {
|
||||||
|
square([250-20-20-BD, 450-20-20-BD], center=true);
|
||||||
|
|
||||||
|
// Woofer cutout
|
||||||
|
translate([0, -450/2+207.5]) {
|
||||||
|
circle(d=152+BD);
|
||||||
|
for ( i = [0 : 90 : 360] ){
|
||||||
|
rotate(i) translate([90,0]) rotate(45) square(A,center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
translate([0, -180]) rotate(45) square(A,center=true);
|
||||||
|
translate([0, 180]) rotate(45) square(A,center=true);
|
||||||
|
translate([-90,0]) rotate(45) square(A,center=true);
|
||||||
|
translate([90,0]) rotate(45) square(A,center=true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Back reflex tube and terminal cutout & groove
|
||||||
|
translate([-500,0])
|
||||||
|
difference() {
|
||||||
|
square([250-20-20-BD, 450-20-20-BD], center=true);
|
||||||
|
|
||||||
|
// Terminal cutout
|
||||||
|
translate([0, 450/2-(450-207.5)/ 2])
|
||||||
|
offset(r=BD/2) square([93 - BD, 80 - BD], center=true);
|
||||||
|
|
||||||
|
// Bass reflex tube
|
||||||
|
translate([0, -450/2+80]) {
|
||||||
|
circle(d=97, $fn=100);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alignment
|
||||||
|
translate([0, -180]) rotate(45) square(A,center=true);
|
||||||
|
translate([0, 180]) rotate(45) square(A,center=true);
|
||||||
|
translate([-90,0]) rotate(45) square(A,center=true);
|
||||||
|
translate([90,0]) rotate(45) square(A,center=true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user