90 lines
2.5 KiB
OpenSCAD
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();
|