include use use use use module front_connector_half( border_side = false, border_top = false, border_bottom = false ) difference() { union() { connector_half(border_side, border_top, border_bottom); // vertical thread bold receiver (extremal) if (!border_side) translate([tray_width/2 - bar_thickness, bar_thickness, tray_height-bar_thickness]) cube([bar_thickness, bar_thickness, bar_thickness]); } // Hole for horizontal thread rods. A dimple for a scew is added at the bottom. translate([0, bar_thickness / 2, 0]) screw_hole(nut_depth = border_bottom ? (nut_height + pla_epsilon) : 0); // vertical screw hole translate([tray_width/2 - bar_thickness, bar_thickness * 1.5, tray_height - bar_thickness / 2]) rotate([0, 90, 0]) screw_hole(nut_depth = nut_height); } module front_connector( border_left = false, border_right = false, border_top = false, border_bottom = false ) { connector(border_left, border_right, border_top, border_bottom) { mirror() front_connector_half(border_left, border_top, border_bottom); front_connector_half(border_right, border_top, border_bottom); } } front_connector();