vesa.scad 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. include <../config/vesa.scad>
  2. module vesa_hinge_mounting_shape() {
  3. radius = vesa_hinge_screw / 2;
  4. move_x = vesa_hinge_height / 2 - vesa_hinge_screw;
  5. move_y = vesa_hinge_height / 2 + vesa_hinge_thickness + vesa_hinge_screw;
  6. translate([move_x, 0]) {
  7. circle(r = radius);
  8. }
  9. translate([-move_x, 0]) {
  10. circle(r = radius);
  11. }
  12. translate([0, move_y]) {
  13. circle(r = radius);
  14. }
  15. translate([0, -move_y]) {
  16. circle(r = radius);
  17. }
  18. }
  19. module vesa_hinge_object() {
  20. module bottom_base_object() {
  21. move_x = vesa_hinge_height / 2 - vesa_hinge_screw;
  22. move_y = vesa_hinge_height / 2 + vesa_hinge_thickness + vesa_hinge_screw;
  23. linear_extrude(height = vesa_hinge_thickness) {
  24. difference() {
  25. hull() {
  26. translate([move_x, move_y]) {
  27. circle(r = vesa_hinge_screw);
  28. }
  29. translate([-move_x, move_y]) {
  30. circle(r = vesa_hinge_screw);
  31. }
  32. translate([-move_x, -move_y]) {
  33. circle(r = vesa_hinge_screw);
  34. }
  35. translate([move_x, -move_y]) {
  36. circle(r = vesa_hinge_screw);
  37. }
  38. }
  39. vesa_hinge_mounting_shape();
  40. }
  41. }
  42. }
  43. module hanging_object() {
  44. rotate([90, 0, 0]) {
  45. linear_extrude(height = vesa_hinge_thickness, center = true) {
  46. radius = vesa_hinge_depth / 2;
  47. difference() {
  48. hull() {
  49. translate([0, radius]) {
  50. circle(r = radius);
  51. }
  52. translate([0, radius / 2]) {
  53. square([radius * 2, radius], center = true);
  54. }
  55. }
  56. translate([0, radius]) {
  57. circle(r = vesa_hinge_screw / 2);
  58. }
  59. }
  60. }
  61. }
  62. }
  63. move_y = vesa_hinge_depth / 2 + vesa_hinge_thickness / 2;
  64. move_z = vesa_hinge_thickness;
  65. translate([0, move_y, move_z]) {
  66. hanging_object();
  67. }
  68. translate([0, -move_y, move_z]) {
  69. hanging_object();
  70. }
  71. bottom_base_object();
  72. }
  73. module vesa_object() {
  74. vesa_hinge_object();
  75. }