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.

dabrig.scad 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. ba_l = 17;
  2. ba_d = 8.5;
  3. gap = 1.5;
  4. m_di = 52 + gap;
  5. m_wall = 6;
  6. m_do = m_di + m_wall;
  7. m_h = 42;
  8. ma_d = ba_d + gap;
  9. ma_ha = gap;
  10. t_dl = 5.5;
  11. t_ds = 3.6;
  12. t_h = 42;
  13. th_dl = t_dl + 1;
  14. th_ds = t_ds + 0.5;
  15. th_do = th_dl + 5;
  16. th_h = 20;
  17. th_ox = 5;
  18. v_d = 33;
  19. v_h = 19;
  20. tr_di = v_d + 1;
  21. tr_wall = m_wall;
  22. tr_do = tr_di + tr_wall;
  23. tr_h = v_h / 2;
  24. tr_ox = 5;
  25. th_r = 45;
  26. tr1_r = -45;
  27. tr2_r = -100;
  28. tr_r = [tr1_r, tr2_r];
  29. $fn = $preview ? 50 : 200;
  30. module pipe() {
  31. // pipe body
  32. translate([0, 0, -m_h])
  33. cylinder(d = m_di - 2, h = m_h * 3);
  34. // arm
  35. translate([0, (m_di - 2) / 2, ba_d / 2])
  36. rotate([-90, 0, 0])
  37. cylinder(d = ba_d, h = ba_l);
  38. // tool
  39. rotate([0, 0, th_r])
  40. translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 - t_h / 4])
  41. cylinder(d1 = t_ds, d2 = t_dl, h = t_h);
  42. // vat
  43. for (r = tr_r)
  44. rotate([0, 0, r])
  45. translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2])
  46. cylinder(d = v_d, h = v_h);
  47. }
  48. module ring() {
  49. difference() {
  50. hull() {
  51. // main body
  52. cylinder(d = m_do, h = m_h);
  53. // tool holder
  54. rotate([0, 0, th_r])
  55. translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2])
  56. cylinder(d = th_do, h = th_h);
  57. // tray
  58. for (r = tr_r)
  59. rotate([0, 0, r])
  60. translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2 - tr_wall])
  61. cylinder(d = tr_do, h = tr_wall + tr_h);
  62. }
  63. // vat body
  64. for (r = tr_r)
  65. rotate([0, 0, r])
  66. translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2])
  67. cylinder(d = tr_di, h = v_h + 20);
  68. // vat easing
  69. for (r = tr_r)
  70. rotate([0, 0, r])
  71. translate([(m_do + tr_do) / 2 + tr_ox, 0, (m_h - tr_h) / 2 + tr_h - 2])
  72. cylinder(d1 = tr_di, d2 = tr_di + 30, h = 30);
  73. // pipe body
  74. translate([0, 0, -20])
  75. cylinder(d = m_di, h = m_h + 40);
  76. // tool holder - bottom
  77. rotate([0, 0, th_r])
  78. translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 - 20])
  79. cylinder(d = th_ds, h = 20);
  80. // tool holder - top
  81. rotate([0, 0, th_r])
  82. translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 + th_h])
  83. cylinder(d = th_dl, h = 20);
  84. // tool holder - middle
  85. rotate([0, 0, th_r])
  86. translate([(m_do + th_do) / 2 + th_ox, 0, (m_h - th_h) / 2 - ($preview ? 0.1 : 0)])
  87. cylinder(d1 = th_ds, d2 = th_dl, h = th_h + ($preview ? 0.2 : 0));
  88. // arm cutout
  89. for (z = [-ma_d / 2 : ma_ha])
  90. translate([0, (m_di - m_wall) / 2, ma_d / 2 + z])
  91. rotate([-90, 0, 0])
  92. cylinder(d = ma_d, h = m_wall * 2);
  93. }
  94. }
  95. %pipe();
  96. ring();