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.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. hole_dist = 70;
  2. hole_dia = 13;
  3. carrier_width = 20;
  4. carrier_radius = 100;
  5. carrier_length = hole_dist + 30;
  6. carrier_wall = 1.5;
  7. coil_width = 17.0;
  8. coil_turns = 3;
  9. coil_dia = 10;
  10. coil_w = coil_width * coil_turns;
  11. rx_post_w = 8;
  12. rx_post_h = 50 + 20;
  13. rx_post_wall = 1;
  14. rx_post_box_w = 26.5;
  15. rx_post_box_d = 12;
  16. rx_post_box_h = 26;
  17. carrier_circ = 2 * 3.14159 * carrier_radius + carrier_wall;
  18. carrier_angle = (carrier_length / carrier_circ) * 360;
  19. dist_angle = (hole_dist / carrier_circ) * 360;
  20. post_angle = ((carrier_length - coil_dia) / carrier_circ) * 360;
  21. bottom_angle = (coil_dia / carrier_circ) * 360;
  22. add_rx_box = true;
  23. add_coil_posts = false;
  24. add_rx_post = false;
  25. add_rx_post_box = false;
  26. carrier_width_add = add_rx_box ? 5 : coil_dia;
  27. $fn = 94;
  28. module prism(l, w, h) {
  29. polyhedron(
  30. points = [[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]],
  31. faces = [[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]]
  32. );
  33. }
  34. // https://3dprinting.stackexchange.com/questions/10638/creating-pie-slice-in-openscad
  35. module pie_slice(r = 3.0, a = 30) {
  36. intersection() {
  37. circle(r = r);
  38. square(r);
  39. rotate(a-90)
  40. square(r);
  41. }
  42. }
  43. module carrier_plate() {
  44. rotate([0, 0, 90 - carrier_angle / 2])
  45. linear_extrude(carrier_width + carrier_width_add)
  46. difference() {
  47. pie_slice(carrier_radius + carrier_wall, carrier_angle);
  48. pie_slice(carrier_radius, carrier_angle);
  49. }
  50. }
  51. module cable_coil() {
  52. hull() {
  53. rotate([-90, 0, 0])
  54. cylinder(d = coil_dia, h = coil_w);
  55. translate([0, -carrier_radius, -coil_dia / 2])
  56. rotate([0, 0, 90 - bottom_angle / 2])
  57. linear_extrude(coil_dia)
  58. difference() {
  59. pie_slice(carrier_radius + carrier_wall, bottom_angle);
  60. pie_slice(carrier_radius, bottom_angle);
  61. }
  62. }
  63. translate([0, -carrier_radius, -carrier_width])
  64. rotate([0, 0, 90 - bottom_angle / 2])
  65. linear_extrude(carrier_width)
  66. difference() {
  67. pie_slice(carrier_radius + carrier_wall, bottom_angle);
  68. pie_slice(carrier_radius, bottom_angle);
  69. }
  70. }
  71. module rx_post() {
  72. hull() {
  73. cube([rx_post_w, rx_post_w, 1]);
  74. translate([rx_post_w / 2, rx_post_w / 2, 0])
  75. cylinder(d = rx_post_w, h = rx_post_h);
  76. }
  77. if (add_rx_post_box)
  78. translate([-((rx_post_box_w + 2 * rx_post_wall) - rx_post_w) / 2, 0, rx_post_h])
  79. difference() {
  80. cube([rx_post_box_w + 2 * rx_post_wall, rx_post_box_d + 2 * rx_post_wall, rx_post_box_h]);
  81. translate([rx_post_wall, rx_post_wall, 1])
  82. cube([rx_post_box_w, rx_post_box_d, rx_post_box_h]);
  83. }
  84. }
  85. rx_box_h = 15;
  86. rx_box_w = 10;
  87. rx_box_d = carrier_width + carrier_width_add;
  88. rx_box_wall = 2.0;
  89. module rx_box() {
  90. translate([-rx_box_w / 2, 0, -carrier_wall])
  91. cube([rx_box_w, rx_box_wall, rx_box_h]);
  92. translate([-rx_box_w / 2, 0, rx_box_h])
  93. cube([rx_box_w, rx_box_d, rx_box_wall]);
  94. rotate([0, 180, 180])
  95. translate([-rx_box_w / 2, -rx_box_d / 4, -rx_box_h])
  96. prism(rx_box_w, rx_box_d / 4, rx_box_h / 4);
  97. rotate([0, 0, 180])
  98. translate([-rx_box_w / 2, -rx_box_d / 4, -0.25])
  99. prism(rx_box_w, rx_box_d / 4, rx_box_h / 4);
  100. }
  101. module carrier() {
  102. translate([0, -carrier_radius, 0])
  103. difference() {
  104. union() {
  105. carrier_plate();
  106. if (add_coil_posts)
  107. for (i = [1, -1])
  108. rotate([0, 0, i * post_angle / 2])
  109. translate([0, carrier_radius, carrier_width + coil_dia / 2])
  110. cable_coil();
  111. if (add_rx_post)
  112. translate([-rx_post_w / 2, carrier_radius, carrier_width + carrier_width_add])
  113. rotate([-90, 0, 0])
  114. rx_post();
  115. if (add_rx_box)
  116. translate([0, carrier_radius + carrier_wall, carrier_width + carrier_width_add])
  117. rotate([-90, 0, 0])
  118. rx_box();
  119. }
  120. for (i = [1, -1])
  121. rotate([0, 0, i * dist_angle / 2])
  122. translate([0, carrier_radius - 1, carrier_width / 2])
  123. rotate([-90, 0, 0])
  124. cylinder(d = hole_dia, h = carrier_wall + 2);
  125. }
  126. }
  127. //cable_coil();
  128. //rx_post();
  129. //rx_box();
  130. translate([0, 0, carrier_width + carrier_width_add])
  131. rotate([0, 180, 0])
  132. carrier();