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.

Thumb Screw.scad 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * Created by:
  3. * Thomas Buck <xythobuz@xythobuz.de> in April 2016
  4. *
  5. * Licensed under the Creative Commons - Attribution license.
  6. */
  7. // M2: 4; M3: 5.5; M4: 7; M5: 8
  8. nut_size = 7; // [1:50]
  9. nut_height = 2.5; // [0:50]
  10. base_size = 30; // [1:50]
  11. base_height = 3; // [1:50]
  12. wall_size = 2.5; // [1:50]
  13. cut_out_factor = 0.35; // [0.0:1.0]
  14. cut_out_count = 5; // [0:10]
  15. nut_size_buffer = 0.1; // [0.0:1.0]
  16. // -----------------------------------------------------------
  17. $fn = 25;
  18. hexagon_size = (nut_size + nut_size_buffer);
  19. // -----------------------------------------------------------
  20. module hexagon(w = 1, h = 1) {
  21. hw = w / sqrt(3);
  22. for (i = [0 : 120 : 360]) {
  23. rotate([0, 0, i])
  24. translate([-hw / 2, -w / 2, 0])
  25. cube([hw, w, h]);
  26. }
  27. }
  28. // -----------------------------------------------------------
  29. difference() {
  30. union() {
  31. // shaft
  32. translate([0, 0, base_height])
  33. cylinder(d = hexagon_size + (wall_size * 2), h = nut_height);
  34. // base
  35. cylinder(d = base_size, h = base_height);
  36. }
  37. // cut out for nut
  38. hexagon(w = hexagon_size, h = base_height + nut_height);
  39. // cut outs for fingers
  40. for (i = [0 : cut_out_count]) {
  41. rotate([0, 0, (360 / cut_out_count) * i])
  42. translate([(base_size / 2), 0, 0])
  43. cylinder(d = base_size * cut_out_factor, h = base_height);
  44. }
  45. }