submission.scad 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. include <render_options.scad>
  2. include <../assets/top.scad>
  3. include <../assets/angle.scad>
  4. include <../assets/side.scad>
  5. include <../assets/front.scad>
  6. top_position_z = 0;
  7. module top_mount() {
  8. top_object();
  9. module side() {
  10. move_y = 0;
  11. move_z = plywood_thickness / 2;
  12. move_x
  13. = top_size().x / 2
  14. + plywood_thickness;
  15. translate([move_x, move_y, -move_z]) {
  16. rotate([0, 0, 90]) {
  17. angle_object();
  18. }
  19. }
  20. }
  21. module front() {
  22. move_x = 0;
  23. move_z = plywood_thickness / 2;
  24. move_y
  25. = top_size().y / 2
  26. + plywood_thickness;
  27. translate([move_x, -move_y, -move_z]) {
  28. angle_object();
  29. }
  30. }
  31. mirror([0, 0, 0]) {
  32. side();
  33. }
  34. mirror([1, 0, 0]) {
  35. side();
  36. }
  37. front();
  38. }
  39. module side_mount() {
  40. height = side_size().y;
  41. width = top_size().x;
  42. length = side_size().x;
  43. module sides() {
  44. move_z
  45. = -height / 2
  46. - plywood_thickness / 2;
  47. move_x
  48. = width / 2
  49. + plywood_thickness / 2;
  50. module single() {
  51. translate([move_x, 0, move_z]) {
  52. rotate([90, 0, 270]) {
  53. side_object();
  54. }
  55. }
  56. }
  57. single();
  58. mirror([1, 0, 0]) {
  59. single();
  60. }
  61. }
  62. module mounts() {
  63. move_z
  64. = -height / 2
  65. - plywood_thickness / 2;
  66. move_y
  67. = length / 2
  68. + plywood_thickness;
  69. move_x
  70. = width / 2
  71. + plywood_thickness / 2;
  72. module single() {
  73. translate([move_x, move_y, move_z]) {
  74. rotate([0, 90, 180]) {
  75. angle_object();
  76. }
  77. }
  78. }
  79. single();
  80. mirror([1, 0, 0]) {
  81. single();
  82. }
  83. }
  84. sides();
  85. mounts();
  86. }
  87. translate([0, 0, top_position_z]) {
  88. rotate([180, 0, 0]) {
  89. top_mount();
  90. }
  91. }
  92. front_position_y
  93. = top_size().y / 2
  94. + plywood_thickness / 2;
  95. front_position_z
  96. = -front_size().y / 2
  97. - plywood_thickness / 2;
  98. translate([0, front_position_y, front_position_z]) {
  99. rotate([90, 0, 180]) {
  100. front_object();
  101. }
  102. }
  103. side_mount();