diff options
Diffstat (limited to 'connector_pole.scad')
-rw-r--r-- | connector_pole.scad | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/connector_pole.scad b/connector_pole.scad new file mode 100644 index 0000000..7661365 --- /dev/null +++ b/connector_pole.scad @@ -0,0 +1,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); |