// common base module for front and back connector include use module connector_half( border_side = false, border_top = false, border_bottom = false ) { // vertical bar cube([bar_thickness/2, bar_thickness, tray_height]); if (!border_side) { // upper horizontal bar translate([0, 0, tray_height - bar_thickness]) cube([tray_width / 2, bar_thickness, bar_thickness]); // lower horizontal bar cube([bar_thickness/2 + rail_width + pla_epsilon, bar_thickness, bar_thickness]); // vertical thread bold receiver (extremal) translate([tray_width/2 - bar_thickness, bar_thickness, tray_height-bar_thickness]) cube([bar_thickness, bar_thickness, bar_thickness]); } // vertical thread bold receiver (central) translate([0, bar_thickness, tray_height-bar_thickness]) cube([bar_thickness/2, bar_thickness, bar_thickness]); // male downward positioning nippel if (!border_bottom && !border_side) translate([rail_width, bar_thickness / 2, 0]) nipple(); }