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
|
include <parameters.scad>
use <screw_hole.scad>
module connector_pole(units, depth, border_top=true, border_bottom=true, cable_funnel=true) {
height = tray_height * units;
overlap = bar_thickness + pole_overlap_shunt;
difference() {
// pole
translate([0, 0, (border_bottom ? 0 : -overlap)])
cube([bar_thickness, pole_depth, height
+ (border_bottom ? 0 : overlap)
+ (border_top ? 0 : overlap)]);
// screw holes
for (i = [0:units])
for (s = [-1, 1])
translate([bar_thickness/2, depth, i * tray_height + s * bar_thickness/2])
rotate([90, 0, 0])
screw_hole(nut_depth = nut_height);
// cable funnel
if (cable_funnel)
for (i = [0:units-1])
translate([0, 0, i * tray_height + bar_thickness])
cube([bar_thickness, pole_cable_funnel_width, tray_height - 2 * bar_thickness]);
// receptors for lower/upper poles
for (i = [[border_bottom, 0, 0],
[border_top, depth/2, height]])
if (!i[0])
translate([0, i[1], i[2]-overlap])
cube([bar_thickness, depth/2, 2*overlap]);
}
}
connector_pole(2, 20);
translate([50,0,0]) connector_pole(2, 20, border_bottom=false);
translate([100,0,0]) connector_pole(2, 20, border_top=false, border_bottom=false);
translate([150,0,0]) connector_pole(2, 20, border_top=false);
|