$fn = 50; width_clamp = 30; length_clamp = 49; height_clamp = 28; thickness = 2; radius = 4; diameter_cable = 12; diameter_cable_tie = 5; offset_cable = 13; thickness_cable_tie = 2; right = 0; left = 1; color("DarkSlateGray") difference() { difference() { // Body hull() for (x = [-1:2:1]) for (y = [-1:2:1]) { translate([x * (width_clamp/2-radius + thickness), y * (length_clamp/2-radius + thickness), (height_clamp+thickness)/2]) cylinder(h = height_clamp + thickness, r = radius, center = true); } // Cutout for the actual clamp translate([0, 0, height_clamp/2-0.001]) cube([width_clamp, length_clamp, height_clamp], center=true); } translate([0, length_clamp/2 - 2 - diameter_cable/2, 0]) union () { // Cutout cable tie for (y = [-1:2:1]) { translate([left*(-width_clamp/2 + diameter_cable_tie/2) - right*(-width_clamp/2 + diameter_cable_tie/2), y*(diameter_cable/2 + 1), 0]) cube([diameter_cable_tie, thickness_cable_tie, height_clamp*3], center = true); } // Cutout cable translate([right*width_clamp/2 - left*width_clamp/2, 0, -offset_cable]) hull() { translate([0, 0, height_clamp - diameter_cable/2]) rotate([0, 90, 0]) cylinder(r = diameter_cable/2, h = width_clamp/2, center = true); cube([width_clamp/2, diameter_cable, height_clamp], center=true); } } }