B = 19.05; M = 6.35; A = 5; // Alignment pad size BD = B - M; WF152_HEIGHT = 136.5; WF152_DIAMETER = 152; AMT2I_WIDTH = 91; AMT2I_HEIGHT = 72; WOOFER_OFFSET = 300-183+1; PORT_OFFSET = 300-60; // Side panel and tweeter alignment difference() { square([162-BD, 600], center=true); // Tweeter cutout difference() { offset(r=BD/2) square([AMT2I_HEIGHT, AMT2I_WIDTH], center=true); offset(r=BD/2) square([65, 65], 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, -290]) rotate(45) square(A,center=true); translate([0, 290]) rotate(45) square(A,center=true); // Woofer alignment translate([0, -290]) rotate(45) square(A,center=true); translate([0, 290]) rotate(45) square(A,center=true); translate([0, WOOFER_OFFSET]) { difference() { offset(r=BD/2) square([AMT2I_HEIGHT, AMT2I_WIDTH], center=true); square([65, 65], center=true); } // woofer alignment translate([60, 0]) rotate(45) square(A,center=true); translate([-60, 0]) rotate(45) square(A,center=true); } // woofer #2 alignemnt translate([0, -WOOFER_OFFSET]) { difference() { offset(r=BD/2) circle(d=69); circle(d=69); } // woofer alignment translate([60, 0]) rotate(45) square(A,center=true); translate([-60, 0]) rotate(45) square(A,center=true); } // Center alignment translate([60, 0]) rotate(45) square(A,center=true); translate([-60, 0]) rotate(45) square(A,center=true); // Bass reflex port translate([0, PORT_OFFSET]) offset(r=BD/2) circle(d=69); translate([0, -PORT_OFFSET]) offset(r=BD/2) circle(d=69); } // WF152BD11 flush mount module wf152() { intersection() { circle(d=WF152_DIAMETER , $fn=100); square([WF152_DIAMETER ,WF152_HEIGHT], center=true); } } module j() { difference() { offset(r=BD/2) wf152(); offset(r=BD/2) circle(d=126, $fn=100); } // Center alignment hole rotate(45) square(3, center=true); // Alignment holes translate([0, -90]) rotate(45) square(A,center=true); translate([0, 90]) rotate(45) square(A,center=true); translate([90, 0]) rotate(45) square(A,center=true); translate([-90, 0]) rotate(45) square(A,center=true); } translate([255,0]) difference() { square([300-19-19-BD, 600-19-19-BD], center=true); translate([90, 0]) rotate(45) square(A,center=true); translate([-90, 0]) rotate(45) square(A,center=true); translate([0, -260]) rotate(45) square(A,center=true); translate([0, 260]) rotate(45) square(A,center=true); translate([0, WOOFER_OFFSET]) j(); translate([0, -WOOFER_OFFSET]) { // Alignment holes translate([0, -90]) rotate(45) square(A,center=true); translate([0, 90]) rotate(45) square(A,center=true); translate([90, 0]) rotate(45) square(A,center=true); translate([-90, 0]) rotate(45) square(A,center=true); difference() { offset(r=BD/2) wf152(); difference() { wf152(); // Driver screw holes for ( i = [45 : 90 : 360] ){ rotate(i) translate([140/2,0]) circle(d=4, $fn=50); } } } } } // Back terminal cutout & back-front cutout groove translate([-250,0]) difference() { square([162-BD, 600-19-19-BD], center=true); // Terminal cutout difference() { offset(r=BD/2) square([80, 93], center=true); offset(r=BD/2) square([56, 76], center=true); } // Alignment translate([0, -520/2]) rotate(45) square(A,center=true); translate([0, 520/2]) rotate(45) square(A,center=true); translate([-60,0]) rotate(45) square(A,center=true); translate([60,0]) rotate(45) square(A,center=true); translate([0, 130]) { difference() { offset(r=M/2, $fn=50) square([AMT2I_HEIGHT-M, AMT2I_WIDTH-M], center=true); translate([-AMT2I_HEIGHT/2+5, -AMT2I_WIDTH/2+5]) circle(d=4, $fn=50); translate([-AMT2I_HEIGHT/2+5, AMT2I_WIDTH/2-5]) circle(d=4, $fn=50); translate([AMT2I_HEIGHT/2-5, -AMT2I_WIDTH/2+5]) circle(d=4, $fn=50); translate([AMT2I_HEIGHT/2-5, AMT2I_WIDTH/2-5]) circle(d=4, $fn=50); } } }