thread.scad 1012 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. include <../config/thread.scad>
  2. module thread_object(screw = false, oversize = 0) {
  3. module base_object() {
  4. top_height = thread_top_height + oversize;
  5. translate([0, 0, -thread_height / 2]) {
  6. translate([0, 0, thread_height]) {
  7. cylinder(r = thread_screw / 2, h = oversize);
  8. }
  9. cylinder(r = thread_diameter / 2, h = thread_height);
  10. translate([0, 0, -oversize]) {
  11. cylinder(r = thread_top_diameter / 2, h = top_height);
  12. }
  13. }
  14. }
  15. module screw() {
  16. cylinder(r = thread_screw / 2, h = thread_height, center = true);
  17. }
  18. module final_object() {
  19. if (!screw) {
  20. base_object();
  21. } else {
  22. difference() {
  23. base_object();
  24. screw();
  25. }
  26. }
  27. }
  28. render() {
  29. final_object();
  30. }
  31. }
  32. module thread_screw_object(height = 5) {
  33. cylinder(r = thread_screw / 2, h = height, center = true);
  34. }