2021-07-31 04:33:37 +00:00
|
|
|
B = 19.05; // Bushing outer diameter
|
|
|
|
M = 6.35; // Mill diameter
|
|
|
|
J = 100; // Mill pad
|
|
|
|
A = 5; // Alignment pad size
|
|
|
|
P = 17; // Alignment pad placement
|
|
|
|
BD = B - M; // Bushing offset
|
|
|
|
|
2021-08-02 18:23:17 +00:00
|
|
|
W = 150; // Internal width
|
|
|
|
H = 280; // Internal height
|
|
|
|
D = 240; // Internal depth
|
2021-07-31 04:33:37 +00:00
|
|
|
|
2021-08-03 06:11:01 +00:00
|
|
|
S = 5;
|
|
|
|
F = "IBM Plex Sans Condensed:style=Regular";
|
|
|
|
|
2021-08-06 06:48:27 +00:00
|
|
|
// Label
|
|
|
|
translate([400, 0]) {
|
2021-08-03 06:11:01 +00:00
|
|
|
text("Kormoran", S, F, halign="center");
|
|
|
|
translate([0, -S*1.5]) text("8Ω", S, F, halign="center");
|
|
|
|
translate([0, -S*3]) text("55W", S, F, halign="center");
|
|
|
|
}
|
|
|
|
|
2021-08-02 18:23:17 +00:00
|
|
|
// Tweeter mounting hole alignment
|
|
|
|
translate([-400, 0]) {
|
|
|
|
difference() {
|
|
|
|
circle(d=90, $fn=100);
|
|
|
|
for ( i = [0 : 90 : 360] ){
|
|
|
|
rotate(i) {
|
|
|
|
translate([82/2,0]) circle(d=4, $fn=30);
|
|
|
|
translate([90/2,0]) rotate(45) square(1,center=true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Woofer mounting hole alignment
|
|
|
|
translate([-600, 0]) {
|
|
|
|
difference() {
|
|
|
|
circle(d=146, $fn=100);
|
|
|
|
for ( i = [0 : 45 : 360] ){
|
|
|
|
rotate(i) {
|
|
|
|
translate([138/2,0]) circle(d=4, $fn=30);
|
|
|
|
translate([146/2,0]) rotate(45) square(1,center=true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-08-06 06:48:27 +00:00
|
|
|
translate([200, 0]) {
|
|
|
|
difference() {
|
|
|
|
square([W-BD, D+100], center=true);
|
|
|
|
|
|
|
|
// Alignment squares
|
|
|
|
translate([50,0]) rotate(45) square(A, center=true);
|
|
|
|
translate([-50,0]) rotate(45) square(A, center=true);
|
|
|
|
translate([0,150]) rotate(45) square(A, center=true);
|
|
|
|
translate([0,-150]) rotate(45) square(A, center=true);
|
|
|
|
|
|
|
|
// Terminal
|
|
|
|
translate([0, +312/2-82]) {
|
|
|
|
difference() {
|
|
|
|
offset(r=BD/2) square([93, 80], center=true);
|
|
|
|
offset(r=BD/2) square([76, 56], center=true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Bass reflex tube
|
|
|
|
translate([0, -312/2+60]) {
|
|
|
|
circle(d=69-0.5+BD, $fn=100);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-08-02 18:23:17 +00:00
|
|
|
|
|
|
|
// Front/back groove
|
|
|
|
translate([-200, 0]) {
|
2021-07-31 04:33:37 +00:00
|
|
|
difference() {
|
2021-08-02 18:23:17 +00:00
|
|
|
square([W-BD, H-BD], center=true);
|
|
|
|
translate([60,0]) rotate(45) square(A, center=true);
|
|
|
|
translate([-60,0]) rotate(45) square(A, center=true);
|
|
|
|
translate([0,120]) rotate(45) square(A, center=true);
|
|
|
|
translate([0,-120]) rotate(45) square(A, center=true);
|
2021-07-31 04:33:37 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-08-02 18:23:17 +00:00
|
|
|
module alignment() {
|
|
|
|
translate([95,0]) rotate(45) square(A, center=true);
|
|
|
|
translate([-95,0]) rotate(45) square(A, center=true);
|
|
|
|
}
|
|
|
|
|
2021-07-31 04:33:37 +00:00
|
|
|
difference() {
|
2021-08-02 18:23:17 +00:00
|
|
|
square([D-BD, H+100], center=true);
|
|
|
|
|
|
|
|
// Horiz align
|
|
|
|
translate([0,170]) rotate(45) square(A, center=true);
|
|
|
|
translate([0,-170]) rotate(45) square(A, center=true);
|
|
|
|
|
|
|
|
// Tweeter
|
|
|
|
translate([0,15]) {
|
|
|
|
alignment();
|
|
|
|
translate([-182/2+117, +312/2-82]) {
|
|
|
|
translate([0,-60]) rotate(45) square(A, center=true);
|
|
|
|
translate([0,60]) rotate(45) square(A, center=true);
|
|
|
|
|
|
|
|
difference() {
|
2021-08-02 18:28:44 +00:00
|
|
|
circle(d=90+BD, $fn=100);
|
|
|
|
circle(d=65+BD, $fn=100);
|
2021-08-02 18:23:17 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Woofer
|
|
|
|
translate([0,-15]) {
|
|
|
|
alignment();
|
|
|
|
translate([0, -312/2+110])
|
|
|
|
difference() {
|
|
|
|
circle(d=146+BD, $fn=100);
|
|
|
|
circle(d=119+BD, $fn=100);
|
|
|
|
}
|
2021-07-31 04:33:37 +00:00
|
|
|
}
|
|
|
|
}
|