My self-made 3D-printable designs, mainly in OpenSCAD
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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();