side.scad 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. include <ATX.scad>
  2. include <functions.scad>
  3. include <pattern.scad>
  4. include <angle.scad>
  5. include <../config/global.scad>
  6. include <../config/side.scad>
  7. function side_size() = [
  8. side_motherboard_size.y + side_padding * 2,
  9. side_height + side_padding * 2
  10. ];
  11. module side_shape() {
  12. width = side_size().x;
  13. height = side_size().y;
  14. make_pattern = side_pattern;
  15. padding = side_padding;
  16. rounding = side_rounding;
  17. module corner(vector = [0, 0]) {
  18. translate(vector) {
  19. circle(r = rounding);
  20. }
  21. }
  22. module base_shape() {
  23. hull() {
  24. for (count = square_vector(width, height, rounding)) {
  25. corner(count);
  26. }
  27. }
  28. }
  29. module angle_hole() {
  30. top_move_y
  31. = height / 2
  32. - angle_depth / 2
  33. + plywood_thickness;
  34. right_move_x
  35. = -width / 2
  36. + angle_depth / 2
  37. - plywood_thickness;
  38. translate([0, top_move_y]) {
  39. angle_cutoff(top = false);
  40. }
  41. translate([right_move_x, 0]) {
  42. rotate(90) {
  43. angle_cutoff(top = true);
  44. }
  45. }
  46. }
  47. module final() {
  48. difference() {
  49. base_shape();
  50. angle_hole();
  51. if (make_pattern) {
  52. pattern(width, height);
  53. }
  54. }
  55. }
  56. render() {
  57. final();
  58. }
  59. }
  60. module side_object() {
  61. height = plywood_thickness;
  62. color("#CCFFCC") {
  63. render() {
  64. linear_extrude(height = height, center = true) {
  65. side_shape();
  66. }
  67. }
  68. }
  69. }