wall_screw_narrowing.scad 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. include <../config/wall.scad>
  2. include <../config/wall_screw_narrowing.scad>
  3. module wall_screw_narrowing_top_object() {
  4. diameter = wall_mounting_screws + wall_screw_narrowing_margin * 2;
  5. screw = wall_screw_narrowing_hole;
  6. thickness = wall_screw_narrowing_thickness;
  7. module base_shape() {
  8. difference() {
  9. circle(r = diameter / 2);
  10. circle(r = screw / 2);
  11. }
  12. }
  13. difference() {
  14. linear_extrude(height = thickness) {
  15. base_shape();
  16. }
  17. translate([0, 0, screw]) {
  18. sphere(r = screw);
  19. }
  20. }
  21. }
  22. module wall_screw_narrowing_bottom_object() {
  23. diameter = wall_mounting_screws;
  24. screw = wall_screw_narrowing_hole;
  25. thickness = wall_thickness;
  26. module base_shape() {
  27. difference() {
  28. circle(r = diameter / 2);
  29. circle(r = screw / 2);
  30. }
  31. }
  32. linear_extrude(height = thickness) {
  33. base_shape();
  34. }
  35. }
  36. module wall_screw_narrowing_object() {
  37. move_z_base = (wall_thickness + wall_screw_narrowing_thickness) / 2;
  38. move_z = move_z_base - wall_screw_narrowing_thickness;
  39. translate([0, 0, move_z]) {
  40. wall_screw_narrowing_top_object();
  41. translate([0, 0, -wall_thickness]) {
  42. wall_screw_narrowing_bottom_object();
  43. }
  44. }
  45. }