$fn=64; // Parametric dimensions base_length = 15.0; base_width = 10.0; base_thickness = 1.5; cable_diameter = 3.5; // Optimized for 2-4mm cables wall_thickness = 2.0; opening_gap = 1.5; // Snug fit to snap in thin cables // Center coordinate for the clip profile center_y = base_thickness + cable_diameter / 2; // Extrude the 2D profile to create the 3D clip translate([0, -base_width / 2, 0]) linear_extrude(height=base_width) { difference() { // Main solid body union() { // Flat rectangular mounting base translate([-base_length / 2, 0]) square([base_length, base_thickness]); // Curved top grip housing blended into the base hull() { translate([0, center_y]) circle(d=cable_diameter + 2 * wall_thickness); translate([-(cable_diameter / 2 + wall_thickness), 0]) square([cable_diameter + 2 * wall_thickness, base_thickness]); } } // Inner cable cutout translate([0, center_y]) circle(d=cable_diameter); // Vertical opening gap for cable insertion translate([-opening_gap / 2, center_y]) square([opening_gap, cable_diameter + wall_thickness + 1]); // V-shaped entry flare to easily guide the cable in translate([0, center_y + cable_diameter / 2 - 0.2]) polygon([ [-opening_gap / 2, 0], [opening_gap / 2, 0], [opening_gap / 2 + 2.5, wall_thickness + 1], [-opening_gap / 2 - 2.5, wall_thickness + 1] ]); } }