cable_holder.scad 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. include <../config/cable_holder.scad>
  2. include <../config/thread.scad>
  3. include <../config/wall.scad>
  4. include <thread.scad>
  5. module cable_holder_object() {
  6. module single_cable_shape() {
  7. difference() {
  8. outside = cable_holder_thickness * 2
  9. + cable_holder_cable_diameter;
  10. position = outside / 2
  11. - cable_holder_thickness / 2;
  12. circle(r = outside / 2);
  13. circle(r = cable_holder_cable_diameter / 2);
  14. translate([0, position]) {
  15. square(cable_holder_hole, center = true);
  16. }
  17. }
  18. }
  19. module single_cable_object() {
  20. height = cable_holder_base_thickness;
  21. module base() {
  22. linear_extrude(height = height, center = true) {
  23. single_cable_shape();
  24. }
  25. }
  26. module blocker() {
  27. radius = cable_holder_blocker_diameter / 2;
  28. top = cable_holder_base_thickness;
  29. height = cable_holder_cable_diameter
  30. + cable_holder_thickness * 2;
  31. move = cable_holder_cable_diameter / 2
  32. - radius;
  33. move_top = top / 2 - radius;
  34. translate([0, move, move_top]) {
  35. rotate([0, 270, 0]) {
  36. cylinder(r = radius, h = height, center = true);
  37. translate([radius, 0, 0]) {
  38. rotate([0, 0, 45]) {
  39. size = [
  40. radius * 2,
  41. radius * 2,
  42. height
  43. ];
  44. cube(size, center = true);
  45. }
  46. }
  47. }
  48. }
  49. }
  50. render() {
  51. difference() {
  52. base();
  53. blocker();
  54. }
  55. }
  56. }
  57. single_cable_object();
  58. }