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
|
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 PCB screws
for (p = [[0, bar_thickness/2],
[0, tray_height - bar_thickness/2],
[tray_width/2 - bar_thickness, 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();
|