summaryrefslogtreecommitdiff
path: root/front.scad
diff options
context:
space:
mode:
authorJan Huwald <jh@sotun.de>2015-02-19 16:21:08 (GMT)
committerJan Huwald <jh@sotun.de>2015-02-19 16:21:08 (GMT)
commit73618d4e789fa1df0f9357646a76f7451d025208 (patch)
tree20b5cb441751b5223bf022b4522323141c85554e /front.scad
parentb6fcfb4e3b47cb197c273293340d52450245617d (diff)
split into tray, front, side; adapt params; add side
Diffstat (limited to 'front.scad')
-rw-r--r--front.scad157
1 files changed, 3 insertions, 154 deletions
diff --git a/front.scad b/front.scad
index dd98d0a..fc512d4 100644
--- a/front.scad
+++ b/front.scad
@@ -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();
contact: Jan Huwald // Impressum