/// ARRAY SIZE // size of the array num_hdd_x = 4; num_hdd_y = 5; /// PRIMARY DIMENSIONS // space above hdd available for air flow cooling_height = 10; // thickness of the support bar bar_thickness = 10; // length hdd is standing out to be grabbed hdd_standout = 25; /// METAL PARTS: SCREWS AND RAILS // outer diameter of thread rod and nut used for support rod_diameter = 4; nut_diameter = 6; nut_height = 3; // dimensions of the L-shaped rail between front and back rail_width = 15; rail_height = rail_width; rail_thickness = 1; /// HDD SIZE (from spec) // dimensions of HDDs; not model-specific hdd_width = 101.6; hdd_height = 25.4; hdd_length = 146; /// PRINTER SPECIFICATION // assumed space deviation of the resulting form; used to leave space // in holes so that screws and rods do not stuck pla_epsilon = 0.1; /// COMPUTED VARIABLES // dimension of a single hdd tray (hdd + space around) tray_height = hdd_height + max(cooling_height, 2 * bar_thickness + 10 * pla_epsilon); tray_width = hdd_width + bar_thickness; /// PCB DIMENSIONS // free space around backplanes backplane_margin = 1; // dimensions of the backplane PCB backplane_width = tray_width / 2 + 2 * bar_thickness; backplane_height = tray_height - 2 * backplane_margin; backplane_thickness = 1.6; // offsets of the backplane relative to the hdd backplane_hoffset = -backplane_margin - bar_thickness/2; backplane_voffset = backplane_margin; // display only: dimensions and offsets of the SATA connector relative // to the backplane backplane_con_width = 45; backplane_con_height = 5; backplane_con_depth = 10; backplane_con_hoffset = 5 - backplane_hoffset; backplane_con_voffset = 15; /// OPENSCAD HACKS // a length larger than any constructed feature; use to simulate // infinitely long structures (for difference operations) large = 1000; // A small quantity that does not change the print results. Use to // displace surfaces of CSG operations to prevent them from overlapping. epsilon = 0.0001;