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.

coffe_grinder_adapter.scad 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. compensate_dia = 0.5;
  2. compensate_width = 0.5;
  3. teeth = 12;
  4. tooth_dia = 2.75 + compensate_dia;
  5. tooth_off = (17.3 + compensate_width - tooth_dia) / 2;
  6. gear_h = 15.0;
  7. adapter_wall = 5;
  8. adapter_dia = tooth_off * 2 + tooth_dia + adapter_wall;
  9. adapter_h = gear_h + adapter_wall;
  10. use_male_socket = false;
  11. // male socket
  12. socket_h = gear_h;
  13. socket_dia = 7.0;
  14. socket_fn = 6;
  15. socket_flare = 3.0;
  16. // female socket
  17. sock_h = 10.0;
  18. sock_w = 6.4 + 0.4;
  19. sock_imp_d = 0.6 + 0.1;
  20. sock_imp_o = 4.0;
  21. sock_imp_w = 3.0;
  22. sock_imp_d2 = 0.4;
  23. $fn = 42;
  24. module gear(h) {
  25. cylinder(d = tooth_off * 2, h = h);
  26. for (r = [0 : 360 / teeth : 360])
  27. rotate([0, 0, r])
  28. translate([tooth_off, 0, 0])
  29. cylinder(d = tooth_dia, h = h);
  30. }
  31. module female_socket() {
  32. difference() {
  33. cylinder(d = adapter_dia, h = sock_h + 0.1);
  34. translate([-sock_w / 2, -sock_w / 2, 0.1])
  35. cube([sock_w, sock_w, sock_h + 1]);
  36. translate([sock_w / 2, 0, sock_imp_o + 0.1])
  37. sphere(d = 2 * sock_imp_d);
  38. translate([sock_w / 2, 0, sock_imp_o + 0.1])
  39. cylinder(d = 2 * sock_imp_d2, h = sock_h);
  40. }
  41. }
  42. module adapter() {
  43. difference() {
  44. union() {
  45. cylinder(d = adapter_dia, h = adapter_h);
  46. if (use_male_socket)
  47. translate([0, 0, adapter_h]) {
  48. cylinder(d = socket_dia, h = socket_h, $fn = socket_fn);
  49. hull() {
  50. cylinder(d = socket_dia, h = socket_flare, $fn = socket_fn);
  51. translate([0, 0, -socket_flare])
  52. cylinder(d = adapter_dia, h = socket_flare);
  53. }
  54. }
  55. }
  56. translate([0, 0, -1])
  57. gear(gear_h + 1);
  58. if (use_male_socket)
  59. translate([0, 0, gear_h - 0.1])
  60. cylinder(d1 = tooth_off * 2 + tooth_dia, d2 = 5, h = socket_flare * 2 + 0.1);
  61. }
  62. if (!use_male_socket)
  63. translate([0, 0, adapter_h])
  64. female_socket();
  65. }
  66. //gear(gear_h);
  67. adapter();