My self-made 3D-printable designs, mainly in OpenSCAD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cable_tie.scad 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. wall = 4.0;
  2. screw_dia = 5.2;
  3. screw_head = 10.0;
  4. screw_bottom = 2.0;
  5. width = 40.0;
  6. height = 25.0;
  7. screw_off_x = 10.0;
  8. screw_off_y = 10.0;
  9. screw_dist = 24.15 - 9.35;
  10. tie_off_z = 2.0;
  11. cabletie_width = 3.2;
  12. cabletie_height = 2.0;
  13. tie_wall_side = 1.0;
  14. tie_wall_top = 1.0;
  15. tie_wall = 5.0;
  16. tie_width = cabletie_width + 2 * tie_wall_side;
  17. tie_height = cabletie_height + 2 * tie_wall_top;
  18. tie_add_bottom = 2.0;
  19. $fn = 42;
  20. module cable() {
  21. translate([-(tie_width + tie_add_bottom) / 2, -(tie_wall + tie_add_bottom) / 2, 0])
  22. translate([tie_add_bottom / 2, tie_add_bottom / 2, 0])
  23. difference() {
  24. hull() {
  25. cube([tie_width, tie_wall, tie_height + tie_off_z]);
  26. translate([-tie_add_bottom / 2, -tie_add_bottom / 2, 0])
  27. cube([tie_width + tie_add_bottom, tie_wall + tie_add_bottom, 0.1]);
  28. }
  29. translate([(tie_width - cabletie_width) / 2, -1, (tie_height - cabletie_height) / 2 + tie_off_z])
  30. cube([cabletie_width, tie_wall + 2, cabletie_height]);
  31. }
  32. }
  33. module x_tie() {
  34. difference() {
  35. union() {
  36. cube([width, height, wall]);
  37. translate([5.5, 20 - 0.5, wall])
  38. rotate([0, 0, -35])
  39. cable();
  40. translate([22.5, 20 - 3, wall])
  41. cable();
  42. }
  43. for (i = [0, screw_dist])
  44. translate([width - screw_off_x - i, screw_off_y, 0]) {
  45. translate([0, 0, -1])
  46. cylinder(d = screw_dia, h = wall + 2);
  47. translate([0, 0, screw_bottom])
  48. cylinder(d = screw_head, h = wall + 2);
  49. }
  50. }
  51. }
  52. rail = 20;
  53. rail_wall = 2.0;
  54. rail_h = cabletie_height + 2 * rail_wall;
  55. rail_screw = 3.2;
  56. rail_screw_head = 6.0;
  57. rail_screw_len = 3.5;
  58. module rail_tie(rot) {
  59. difference() {
  60. union() {
  61. cube([rail, rail, rail_h]);
  62. translate([(rail - (rail / 4)) / 2, 0, rail_h])
  63. cube([rail / 4, rail, 1]);
  64. }
  65. translate([rail / 2, rail / 2, -1]) {
  66. cylinder(d = rail_screw, h = rail_h + 3);
  67. cylinder(d = rail_screw_head, h = rail_screw_len + 1);
  68. }
  69. for (x = [1, 4])
  70. if (rot) {
  71. translate([-1, (rail - rail_screw) / x - cabletie_width / 2, rail_wall])
  72. cube([rail + 2, cabletie_width, cabletie_height]);
  73. } else {
  74. translate([(rail - rail_screw) / x - cabletie_width / 2, -1, rail_wall])
  75. cube([cabletie_width, rail + 2, cabletie_height]);
  76. }
  77. }
  78. }
  79. module rail_assembly() {
  80. %translate([0, -50, rail_h])
  81. cube([20, 100, 20]);
  82. translate([0, 10, 0])
  83. rail_tie(0);
  84. translate([0, -10 - rail, 0])
  85. rail_tie(1);
  86. }
  87. //rail_assembly();
  88. x_tie();
  89. //rail_tie(0);
  90. //rail_tie(1);