summaryrefslogtreecommitdiff
path: root/backplane.scad
blob: d1f3f9f695144bc6710a091708df330b7a89ec50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
include <parameters.scad>

use <screw_hole.scad>

module hdd_connector(w,h,d) {
      difference() {
        cube([w, d, h]);
	translate([1, 2, 1])
	  cube([w - 2, d, h - 2]);
      }
}


// board
module backplane_pcb() {
  color("sienna")
  difference() {
    cube([backplane_width, backplane_thickness, backplane_height]);

    // screw holes for ...
    for (p = [// ... PCB screws
              [0,                              bar_thickness/2],
              [0,                              tray_height - bar_thickness/2],
              [tray_width/2 - bar_thickness,   tray_height - bar_thickness/2],
              [tray_width/2 + bar_thickness,   tray_height - bar_thickness/2],

              // .. assembly hooks
              [rail_width/2 + bar_thickness/2, bar_thickness/2],
              [tray_width/4,                   tray_height - bar_thickness/2]
             ])
      translate([p[0] - backplane_hoffset, 0, p[1] - backplane_voffset])
      rotate([-90, 0, 0])
      screw_hole();
  }
}

module backplane_populated() {
  backplane_pcb();

  // front connector (power + data)
  color("darkgrey")
    translate([backplane_con_hoffset, 0, backplane_con_voffset])
      mirror([0, 1, 0]) {
          hdd_connector(backplane_con_width/ 3 * 2 + 1, backplane_con_height, backplane_con_depth);
        translate([backplane_con_width / 3 * 2, 0, 0])
          hdd_connector(backplane_con_width / 3 * 1, backplane_con_height, backplane_con_depth);
      }

  // back connector (data)
  translate([backplane_con_hoffset + backplane_con_width / 3 * 2,
             backplane_thickness, backplane_con_voffset])
    mirror([0, 1, 0]) rotate([90, 0, 0])
      hdd_connector(backplane_con_width / 3 * 1, backplane_con_height, backplane_con_depth);
}

backplane_populated();
contact: Jan Huwald // Impressum