$fn=64; // --- Parameters --- cable_diameter = 6.5; // Diameter of the cable to hold wall_thickness = 4.0; // Thickness of the clip walls clip_length = 20.0; // Length/height of the clip extrusion opening_width = 4.0; // Width of the insertion slit (slightly smaller than cable to snap in) corner_radius = 3.0; // Radius for the rounded outer corner corner_relief = 1.5; // Inner corner cutout to ensure flush fit against imperfect walls // --- Calculated Variables --- size = cable_diameter + wall_thickness * 2; center_offset = size / 2; module corner_cable_clip() { linear_extrude(height = clip_length) { difference() { // Main body: L-shape with a rounded outer corner hull() { square([1, size]); square([size, 1]); translate([size - corner_radius, size - corner_radius]) circle(r = corner_radius); } // Inner corner relief for flush mounting circle(r = corner_relief); // Cable cutout translate([center_offset, center_offset]) circle(d = cable_diameter); // Slit for cable insertion translate([center_offset, center_offset]) rotate(45) translate([0, -opening_width / 2]) square([size, opening_width]); // V-chamfer to guide the cable into the slit translate([size - corner_radius, size - corner_radius]) rotate(45) polygon([ [0, opening_width / 2], [0, -opening_width / 2], [corner_radius * 2, -opening_width * 1.5], [corner_radius * 2, opening_width * 1.5] ]); } } } // Generate the 3D printable model corner_cable_clip();