diff --git a/kormoran.scad b/kormoran.scad index c7695ab..66aca11 100644 --- a/kormoran.scad +++ b/kormoran.scad @@ -5,24 +5,82 @@ A = 5; // Alignment pad size P = 17; // Alignment pad placement BD = B - M; // Bushing offset -W = 150+15+15; -H = 280+15+15; +W = 150; // Internal width +H = 280; // Internal height +D = 240; // Internal depth -translate([200, 0]) -difference() { - square([W, H], center=true); - translate([-182/2+117, +312/2-82]) - difference() { - circle(d=90+BD); - circle(d=65+BD); +// 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); + } + } } } -difference() { - square([W, H], center=true); - translate([0, -312/2+110]) + +// 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); + } + } + } +} + + +// Front/back groove +translate([-200, 0]) { difference() { - circle(d=146+BD, $fn=100); - circle(d=119+BD, $fn=100); + 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); + } +} + +module alignment() { + translate([95,0]) rotate(45) square(A, center=true); + translate([-95,0]) rotate(45) square(A, center=true); +} + +difference() { + 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() { + circle(d=90+BD); + circle(d=65+BD); + } + } + } + + // Woofer + translate([0,-15]) { + alignment(); + translate([0, -312/2+110]) + difference() { + circle(d=146+BD, $fn=100); + circle(d=119+BD, $fn=100); + } } } \ No newline at end of file