/// ARRAY SIZE // size of the array num_hdd_x = 4; num_hdd_y = 5; /// 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.05; /// PRIMARY DIMENSIONS // width of vertical and horizontal bars vrail_width = 15; hrail_height = 15; // depth of front and back front_depth = 15; back_depth = 6; // length hdd is standing out to be grabbed hdd_standout = 15; // dimensions of the L-shaped rail between front and back rail_width = 21; rail_height = rail_width; rail_thickness = 2; // width and height of the horizontal support bar (U-shaped metal) support_bar_width = 10 + pla_epsilon; // width of the SATA power cable (including some extra space for // navigation) spc_width=3; /// HDD SIZE (from spec) // dimensions of HDDs; not model-specific hdd_width = 101.6 + pla_epsilon; hdd_height = 25.4 + pla_epsilon; hdd_length = 146; /// OPENSCAD HACKS $fn = 180; // 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; /// COMPUTED DIMENSIONS tray_width = hdd_width + vrail_width/2; tray_height = hdd_height + hrail_height; connector_width = vrail_width - 2*(1 + rail_thickness); /// COMMON FUNCTIONS // they do not belong here but are not enough to warrant a seperate // file. sorry module ccube(x) cube(x, center=true);