include <../config/cable_holder.scad> include <../config/thread.scad> include <../config/wall.scad> include module cable_holder_object() { module single_cable_shape() { difference() { outside = cable_holder_thickness * 2 + cable_holder_cable_diameter; position = outside / 2 - cable_holder_thickness / 2; circle(r = outside / 2); circle(r = cable_holder_cable_diameter / 2); translate([0, position]) { square(cable_holder_hole, center = true); } } } module single_cable_object() { height = cable_holder_base_thickness; module base() { linear_extrude(height = height, center = true) { single_cable_shape(); } } module blocker() { radius = cable_holder_blocker_diameter / 2; top = cable_holder_base_thickness; height = cable_holder_cable_diameter + cable_holder_thickness * 2; move = cable_holder_cable_diameter / 2 - radius; move_top = top / 2 - radius; translate([0, move, move_top]) { rotate([0, 270, 0]) { cylinder(r = radius, h = height, center = true); translate([radius, 0, 0]) { rotate([0, 0, 45]) { size = [ radius * 2, radius * 2, height ]; cube(size, center = true); } } } } } render() { difference() { base(); blocker(); } } } single_cable_object(); }