include <../config/cord.scad> include <../config/thread.scad> include <../config/hole.scad> include module cord_object() { height = thread_height + cord_base_thickness + cord_hole_diameter + cord_base_thickness * 2; diameter_default = thread_top_diameter + cord_base_thickness * 2; diameter_alt = hole_entrance; diameter = max(diameter_default, diameter_alt); module base_object() { cylinder(r = diameter / 2, h = height, center = true); } module thread() { center = height / 2 - thread_height / 2; translate([0, 0, center]) { rotate([180, 0, 0]) { thread_object(); } } } module cord_hole() { radius = cord_hole_diameter / 2; move = cord_base_thickness + cord_hole_diameter / 2 - height / 2; translate([0, 0, move]) { rotate([90, 0, 0]) { cylinder(r = radius, h = diameter, center = true); } } } color("#9230cf") { render() { difference() { base_object(); thread(); cord_hole(); } } } }