cord.scad 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. include <../config/cord.scad>
  2. include <../config/thread.scad>
  3. include <../config/hole.scad>
  4. include <thread.scad>
  5. module cord_object() {
  6. height = thread_height
  7. + cord_base_thickness
  8. + cord_hole_diameter
  9. + cord_base_thickness * 2;
  10. diameter_default = thread_top_diameter
  11. + cord_base_thickness * 2;
  12. diameter_alt = hole_entrance;
  13. diameter = max(diameter_default, diameter_alt);
  14. module base_object() {
  15. cylinder(r = diameter / 2, h = height, center = true);
  16. }
  17. module thread() {
  18. center = height / 2
  19. - thread_height / 2;
  20. translate([0, 0, center]) {
  21. rotate([180, 0, 0]) {
  22. thread_object();
  23. }
  24. }
  25. }
  26. module cord_hole() {
  27. radius = cord_hole_diameter / 2;
  28. move = cord_base_thickness
  29. + cord_hole_diameter / 2
  30. - height / 2;
  31. translate([0, 0, move]) {
  32. rotate([90, 0, 0]) {
  33. cylinder(r = radius, h = diameter, center = true);
  34. }
  35. }
  36. }
  37. color("#9230cf") {
  38. render() {
  39. difference() {
  40. base_object();
  41. thread();
  42. cord_hole();
  43. }
  44. }
  45. }
  46. }