// Parametric Modular Interlocking Facade Quadrant (Top-Left / Q1) // For 6U Open-Source Storage Array // Standard Units: Millimeters (mm) $fn = 48; quad_w = 218.0; quad_h = 130.0; quad_depth = 18.0; wall_t = 3.5; // Dovetail parameters dt_root = 12.0; dt_tip = 18.0; dt_len = 10.0; dt_h = quad_h; module male_dovetail() { linear_extrude(height=quad_depth) { polygon(points=[ [0, -dt_root/2], [dt_len, -dt_tip/2], [dt_len, dt_tip/2], [0, dt_root/2] ]); } } module female_dovetail_slot() { // 0.2mm tolerance clearance tol = 0.2; linear_extrude(height=quad_depth + 2) { polygon(points=[ [-1, -dt_root/2 - tol], [dt_len + tol, -dt_tip/2 - tol], [dt_len + tol, dt_tip/2 + tol], [-1, dt_root/2 + tol] ]); } } module facade_q1() { difference() { union() { // Main Plate Block cube([quad_w, quad_h, quad_depth]); // Right Edge Male Dovetails (at Y=30 and Y=90) translate([quad_w, 35.0, 0]) male_dovetail(); translate([quad_w, 95.0, 0]) male_dovetail(); } // 4x Drive Bay Windows (Bays 0, 1, 2, 3) // Each Bay: 26.0mm width x 115.0mm height, pitch: 49.5mm for (b = [0:3]) { translate([15.0 + b*49.5, 10.0, -1]) { cube([28.0, 110.0, quad_depth + 2]); // Guide Rail Channels (1.5mm slot) translate([-1.5, 0, quad_depth/2 - 1.5]) cube([31.0, 110.0, 3.0]); } } // Bottom Edge Female Dovetail Slots (for interlocking with Q3 below) translate([50.0, 0, -1]) rotate([0, 0, 90]) female_dovetail_slot(); translate([150.0, 0, -1]) rotate([0, 0, 90]) female_dovetail_slot(); // M4 Heat-Set Brass Insert Pockets for 2020 Frame Mounting (Top Edge) // Ø5.6mm, depth 6.0mm translate([20.0, quad_h - 10.0, quad_depth - 6.0]) cylinder(d=5.6, h=7.0); translate([110.0, quad_h - 10.0, quad_depth - 6.0]) cylinder(d=5.6, h=7.0); translate([195.0, quad_h - 10.0, quad_depth - 6.0]) cylinder(d=5.6, h=7.0); // Left Edge Rack Ear Flange Mounting Recess translate([-1, 0, -1]) cube([10.0, quad_h + 2, 3.0]); } } facade_q1();