diff --git a/lia-amt.scad b/lia-amt.scad index 176e82f..4340d04 100644 --- a/lia-amt.scad +++ b/lia-amt.scad @@ -22,76 +22,83 @@ module wf182() { } } -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]) { + translate([0, 450/2-25-130/2]) { + difference() { 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); - + } + + // 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); } -// Front face flush mount and back tube cutout +// 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, 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); + square([250, 250], center=true); + difference() { + offset(r=BD/2) wf182(); + wf182(); } - 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); + + 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); } @@ -99,42 +106,45 @@ difference() { 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); - + square([220, 500], center=true); + // Terminal cutout - translate([0, 450/2-(450-207.5)/ 2]) - offset(r=BD/2) square([93 - BD, 80 - BD], center=true); + 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, $fn=100); + circle(d=97-0.4+BD, $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); + // 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); + + } +}