speakers/oranje.scad

155 lines
4.1 KiB
OpenSCAD
Raw Normal View History

2024-08-14 03:44:47 +00:00
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);
}
}
}