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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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 + 1, 20 - 1, wall])
  38. rotate([0, 0, -45])
  39. cable();
  40. }
  41. for (i = [0, screw_dist])
  42. translate([width - screw_off_x - i, screw_off_y, 0]) {
  43. translate([0, 0, -1])
  44. cylinder(d = screw_dia, h = wall + 2);
  45. translate([0, 0, screw_bottom])
  46. cylinder(d = screw_head, h = wall + 2);
  47. }
  48. }
  49. }
  50. rail = 20;
  51. rail_wall = 2.0;
  52. rail_h = cabletie_height + 2 * rail_wall;
  53. rail_screw = 3.2;
  54. rail_screw_head = 6.0;
  55. rail_screw_len = 3.5;
  56. module rail_tie(rot) {
  57. difference() {
  58. union() {
  59. cube([rail, rail, rail_h]);
  60. translate([(rail - (rail / 4)) / 2, 0, rail_h])
  61. cube([rail / 4, rail, 1]);
  62. }
  63. translate([rail / 2, rail / 2, -1]) {
  64. cylinder(d = rail_screw, h = rail_h + 3);
  65. cylinder(d = rail_screw_head, h = rail_screw_len + 1);
  66. }
  67. for (x = [1, 4])
  68. if (rot) {
  69. translate([-1, (rail - rail_screw) / x - cabletie_width / 2, rail_wall])
  70. cube([rail + 2, cabletie_width, cabletie_height]);
  71. } else {
  72. translate([(rail - rail_screw) / x - cabletie_width / 2, -1, rail_wall])
  73. cube([cabletie_width, rail + 2, cabletie_height]);
  74. }
  75. }
  76. }
  77. module rail_assembly() {
  78. %translate([0, -50, rail_h])
  79. cube([20, 100, 20]);
  80. translate([0, 10, 0])
  81. rail_tie(0);
  82. translate([0, -10 - rail, 0])
  83. rail_tie(1);
  84. }
  85. rail_assembly();
  86. //x_tie();
  87. //rail_tie(0);
  88. //rail_tie(1);