diff options
author | Jan Huwald <jh@sotun.de> | 2015-02-19 16:21:08 (GMT) |
---|---|---|
committer | Jan Huwald <jh@sotun.de> | 2015-02-19 16:21:08 (GMT) |
commit | 73618d4e789fa1df0f9357646a76f7451d025208 (patch) | |
tree | 20b5cb441751b5223bf022b4522323141c85554e /front.scad | |
parent | b6fcfb4e3b47cb197c273293340d52450245617d (diff) |
split into tray, front, side; adapt params; add side
Diffstat (limited to 'front.scad')
-rw-r--r-- | front.scad | 157 |
1 files changed, 3 insertions, 154 deletions
@@ -1,155 +1,4 @@ -include <parameters.scad> +use <tray.scad> -use <rail.scad> -use <hdd.scad> - -// bend radius on hdd inlet -R = 2; - -// size of the core box -W = hdd_width + vrail_width/2; -H = hdd_height + hrail_height; -D = 15; - -// strap dimensions -SW=5; -SH=1.5; - -// dimensions of the SATA power connector -spc_width=25; -spc_height=8.2; - -support_bar_width = 10; - -module back() { - translate([0, 0, 0]) - tray(D, bt=[1], power_hole=true, straps=true); - - for (i = [1:num_hdd_y-1]) - translate([0, 0, i*H]) - tray(D, bt=[-1,1], power_hole=true, straps=true); - - translate([0, 0, (num_hdd_y-1)*H]) - tray(D, bt=[-1], power_hole=true, straps=true); -} - -module front() { - intersection() { - union() { - translate([0, 0, 0*H]) - tray(D, inlet=[1]); - - for (i = [1:num_hdd_y-1]) - translate([0, 0, i*H]) - tray(D); - - translate([0, 0, num_hdd_y*H]) - tray(D, inlet=[-1], rail=false); - } - - translate([0, 0, num_hdd_y*H/2]) - ccube([2*W, D, num_hdd_y*H + hrail_height]); - } -} - -module ccube(x) cube(x, center=true); - -module tray(D, power_hole=true, straps=true, inlet=[-1,1], rail=true, support_bar=true) -//translate([0, D/2, H/2]) -union() { - difference() { - union() { - // horizontal rail - ccube([hdd_width, D, hrail_height]); - - // vertical rails - for (i = [-1,1]) - translate([i*(W/2 - vrail_width/8), 0, 0]) - ccube([vrail_width/4, D, H]); - } - - // round corners for easy hdd insertion - for (i = inlet) - translate([0, 0, i*(hdd_height + hrail_height)/2]) - hdd_inlet(); - - // notches to attach cable strap - if (straps) { - // horizontal strap holes - for (i = [-0.65, -0.12, 0.25, 0.65]) - for (k = [-1, 1]) - translate([i*hdd_width/2, 0, k*(hrail_height/2 - SH/2)]) - strap_hole(); - - // vertical strap holes - for (i = [-1, 1]) - translate([i * (hdd_width/2 + SH/2 - epsilon), 0, -hrail_height]) - rotate([0, 90, 0]) - strap_hole(); - } - - // hole for support bar - if (support_bar) - translate([0, D/4, 0]) - ccube([W, D, support_bar_width]); - - // hole for SATA power connector and cable - if (power_hole) - translate([-hdd_width/2 + 30, 0]) - ccube([spc_width, D, spc_height]); - - // space for rail - if (rail) - for (i = [0:1]) - mirror([i, 0, 0]) - translate([-hdd_width/2 - rail_thickness, -D, hrail_height/2 - rail_thickness]) - rail(); - - // female side connectors - for (i = [-1,1]) - connector_pos(i, -1); - } - - // male side connectors - for (i = [-1,1]) - connector_pos(i, 1); -} - -module connector_pos(lr, gender) -translate([lr*(W/2 + vrail_width/4), -D/2, H*lr*gender*0.3]) -connector(); - -module connector() { - intersection() { - translate([0, 2.5, 0]) ccube([vrail_width-4, 5, 10]); - rotate([45, 0, 0]) ccube([vrail_width-4, 5, 5]); - } -} - -module strap_hole() { - ccube([SW, D, SH]); -} - -module hdd_inlet() - render() - for (i = [0,1]) mirror([i, 0, 0]) - for (j = [0,1]) mirror([0, j, 0]) - for (k = [0,1]) mirror([0, 0, k]) - difference() { - union() { - translate([0, D/2-R, 0]) - cube([hdd_width/2 + R, D, hdd_height/2 + R]); - - cube([hdd_width/2, D/2-R, hdd_height/2]); - }; - - translate([hdd_width/2 + R, D/2-R, 0]) - rotate([0, 0, 0]) - cylinder(r=R, h=H, center=true); - - translate([0, D/2-R, hdd_height/2 + R]) - rotate([0, 90, 0]) - cylinder(r=R, h=W, center=true); - } - -front();
\ No newline at end of file +rotate([90, 0, 0]) +front(); |