summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Huwald <jh@sotun.de>2014-02-04 11:24:39 (GMT)
committerJan Huwald <jh@sotun.de>2014-02-04 11:24:39 (GMT)
commit406a11c1adf8f54b2a41c4968253d2a5a29a0002 (patch)
treea11c3f72777fe9ccaac834f448db202cb4a74b44
unfinished version of the front connector
-rw-r--r--connector_front.scad83
1 files changed, 83 insertions, 0 deletions
diff --git a/connector_front.scad b/connector_front.scad
new file mode 100644
index 0000000..e15089d
--- /dev/null
+++ b/connector_front.scad
@@ -0,0 +1,83 @@
+// PARAMETERS
+
+// space above hdd available for air flow
+cooling_height = 10;
+
+// thickness of the support bar
+bar_thickness = 10;
+
+// diameter of thread rod used for support
+rod_diameter = 4;
+
+// dimensions of HDDs; not model-specific; current values are fake
+hdd_width = 80;
+hdd_height = 30;
+hdd_length = 100;
+
+// dimensions of the L-shaped rail between front and back
+rail_width = 15;
+rail_height = rail_width;
+rail_thickness = 1;
+
+// dimension of a single hdd tray (hdd + space around)
+tray_height = hdd_height + cooling_height + rail_thickness;
+tray_width = hdd_width + bar_thickness;
+
+pla_epsilon = 0.1;
+
+
+// CONSTRUCTION
+
+module nipple(e = 0) {
+ rotate([0, 180, 0])
+ cylinder(h = bar_thickness / 4 + e, r1 = bar_thickness / 4 + e, r2 = 0, $fs=0.1);
+}
+
+module half() difference() {
+ union() {
+ // upper horizontal bar
+ translate([0, 0, tray_height - bar_thickness])
+ cube([tray_width / 2, bar_thickness, bar_thickness]);
+
+ // vertical bar
+ cube([bar_thickness/2, bar_thickness, tray_height]);
+
+ // lower horizontal bar
+ cube([bar_thickness/2 + rail_width + pla_epsilon, bar_thickness, bar_thickness]);
+
+ // vertical thread bold receiver
+ translate([0, bar_thickness, tray_height-bar_thickness]) cube([bar_thickness/2, bar_thickness, bar_thickness]);
+ translate([tray_width/2 - bar_thickness, bar_thickness, tray_height-bar_thickness]) cube([bar_thickness, bar_thickness, bar_thickness]);
+
+ // male downward positioning nippel
+ translate([rail_width, bar_thickness / 2, 0]) nipple();
+ }
+
+ // receiver for rail
+ translate([bar_thickness/2 - rail_thickness, 0, bar_thickness - rail_thickness]) {
+ cube([rail_thickness, bar_thickness, rail_height]);
+ cube([rail_width, bar_thickness, rail_thickness]);
+ }
+
+ // holes for thread rods (horizontal, vertical)
+ translate([0, bar_thickness / 2, 0])
+ cylinder(h = tray_height, r = (rod_diameter + pla_epsilon) / 2, $fs=0.1);
+ translate([0, bar_thickness * 1.5, tray_height - bar_thickness / 2]) rotate([0, 90, 0])
+ cylinder(h = tray_width / 2, r = (rod_diameter + pla_epsilon) / 2, $fs=0.1);
+
+ // female downward positioning nippel
+ translate([rail_width, bar_thickness / 2, tray_height]) nipple(pla_epsilon);
+}
+
+difference() {
+ union() {
+ half();
+ mirror() half();
+ }
+
+ // female leftward positioning nippel
+ # translate([-tray_width/2, bar_thickness / 2, tray_height - bar_thickness / 2]) rotate([0, 270, 0]) nipple(pla_epsilon);
+}
+
+// male rightward positioning nippel
+translate([tray_width / 2, bar_thickness / 2, tray_height - bar_thickness / 2]) rotate([0, 270, 0]) nipple();
contact: Jan Huwald // Impressum