custom-nas/mechanical/scad/facade_quadrant.scad

90 lines
2.5 KiB
OpenSCAD

// 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();