speakers/lia-amt.scad

151 lines
3.5 KiB
OpenSCAD

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);
}
}
R = 152.5; // WF182_HEIGHT/2 + 4 + AMT1I_HEIGHT/2;
// Side panel and tweeter alignment
difference() {
square([275-19-BD, 450+100], center=true);
// Tweeter cutout
translate([0, 450/2-25-130/2]) {
difference() {
offset(r=BD/2) square([AMT1I_WIDTH, AMT1I_HEIGHT], center=true);
offset(r=BD/2) square([AMT1I_WIDTH-20, AMT1I_HEIGHT-10], center=true);
}
// Vertical tweeter alignment squares
translate([100, 0]) rotate(45) square(A,center=true);
translate([-100, 0]) rotate(45) square(A,center=true);
}
// Edge alignment
translate([0, -450/2]) rotate(45) square(A,center=true);
translate([0, 450/2]) rotate(45) square(A,center=true);
// Center alignment
translate([100, 0]) rotate(45) square(A,center=true);
translate([-100, 0]) rotate(45) square(A,center=true);
// Woofer alignment squares
translate([0, -450/2+207.5]) {
translate([100, 0]) rotate(45) square(A,center=true);
translate([-100, 0]) rotate(45) square(A,center=true);
}
rotate(45) square(A,center=true);
}
// Flush mount to cutout adapter
translate([500,0]) {
difference() {
offset(r=BD/2) wf182();
circle(d=152+BD, $fn=100);
}
}
// WF182BD11 flush mount
translate([255,0])
difference() {
square([250, 250], center=true);
difference() {
offset(r=BD/2) wf182();
wf182();
}
circle(d=152+BD/2, $fn=100);
// Center alignment hole
rotate(45) square(3,center=true);
// Driver screw holes
for ( i = [0 : 60 : 360] ){
rotate(i) translate([169.5/2,0]) circle(d=4, $fn=50);
}
// Alignment holes on round edges
for ( i = [0,45,135,180,225] ){
rotate(i) translate([182/2,0]) rotate(45) square(3,center=true);
}
// Alignment holes
translate([0, -110]) rotate(45) square(A,center=true);
translate([0, 110]) rotate(45) square(A,center=true);
translate([110, 0]) rotate(45) square(A,center=true);
translate([-110, 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);
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([220, 500], center=true);
// Terminal cutout
translate([0, 450/2-(450-207.5)/ 2])
difference() {
offset(r=BD/2) square([93, 80], center=true);
offset(r=BD/2) square([76, 56], center=true);
}
// Bass reflex tube
translate([0, -450/2+80]) {
circle(d=97-0.4+BD, $fn=100);
}
// Alignment
translate([0, -450/2]) rotate(45) square(A,center=true);
translate([0, 450/2]) rotate(45) square(A,center=true);
translate([-80,0]) rotate(45) square(A,center=true);
translate([80,0]) rotate(45) square(A,center=true);
}
translate([-750, 0]) {
difference() {
offset(r=M/2, $fn=50) square([AMT1I_WIDTH-M, AMT1I_HEIGHT-M], center=true);
translate([-90/2, -120/2]) circle(d=4, $fn=50);
translate([90/2, -120/2]) circle(d=4, $fn=50);
translate([-90/2, 120/2]) circle(d=4, $fn=50);
translate([90/2, 120/2]) circle(d=4, $fn=50);
}
}