Advertisement
Guest User

Untitled

a guest
Jun 5th, 2023
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.45 KB | None | 0 0
  1.  
  2. SHELF_T = 12;
  3.  
  4. SHELF_W = 1190;
  5. SHELF_W_1 = 630;
  6. SHELF_D = 400;
  7. SHELF_D_1 = 720;
  8.  
  9. SHELF_CORNER_RADIUS = 50;
  10.  
  11. CUTOUT_W = 170;
  12. CUTOUT_D = 170;
  13.  
  14. LEVEL_1 = 500;
  15. LEVEL_2 = 1000;
  16. LEVEL_3 = 1440;
  17. LEVEL_4 = 1900;
  18. // LEVEL_5 = LEVEL_4 + 500;
  19.  
  20. LEG_STOCK_W = 74;
  21. LEG_STOCK_D = 19;
  22.  
  23. CUT_W = 4+10;
  24.  
  25. FLAT = false;
  26.  
  27. module beam(x, y, LEN){
  28. color ("SaddleBrown") translate([x, y, -LEG_STOCK_W]) cube([LEG_STOCK_D, LEN, LEG_STOCK_W]);
  29. }
  30.  
  31. module joist(x, y, WIDTH){
  32. color ("SaddleBrown") translate([x, y, -LEG_STOCK_W]) cube([WIDTH, LEG_STOCK_D, LEG_STOCK_W]);
  33. }
  34.  
  35. module shelf_corner(){
  36. difference(){
  37. cube([100, 100, SHELF_T+2]);
  38.  
  39. translate([0, 0, -1]) cylinder(SHELF_T+4, SHELF_CORNER_RADIUS, SHELF_CORNER_RADIUS, false);
  40. }
  41. }
  42.  
  43. module shelf_1(H){
  44. translate([0, 0, H]){
  45. union(){
  46. color("Tan"){
  47. cube([SHELF_D, SHELF_W, SHELF_T]);
  48. }
  49.  
  50. beam(0, 0, SHELF_W);
  51. beam(SHELF_D-LEG_STOCK_D, LEG_STOCK_D, SHELF_W-LEG_STOCK_D);
  52.  
  53. joist(LEG_STOCK_D, 0, SHELF_D_1-LEG_STOCK_D);
  54. joist(LEG_STOCK_D, SHELF_W_1/2-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  55. joist(LEG_STOCK_D, SHELF_W_1-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  56. joist(LEG_STOCK_D, SHELF_W_1+(SHELF_W-SHELF_W_1)/2-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  57. joist(LEG_STOCK_D, SHELF_W-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  58. }
  59. }
  60. }
  61.  
  62. module shelf(H){
  63. translate([0, 0, H]){
  64. union(){
  65. color("Tan"){
  66. difference(){
  67. cube([SHELF_D_1, SHELF_W, SHELF_T]);
  68.  
  69. translate([SHELF_D, SHELF_W_1, -1]){
  70. difference(){
  71. cube([SHELF_D, SHELF_W, SHELF_T+2]);
  72. }
  73. }
  74. }
  75. }
  76.  
  77. beam(0, 0, SHELF_W);
  78. beam(SHELF_D-LEG_STOCK_D, LEG_STOCK_D, SHELF_W-LEG_STOCK_D);
  79. beam(SHELF_D_1-LEG_STOCK_D, 0, SHELF_W_1);
  80.  
  81. joist(LEG_STOCK_D, 0, SHELF_D_1-LEG_STOCK_D*2);
  82.  
  83. joist(LEG_STOCK_D, SHELF_W_1/2-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  84. joist(SHELF_D, SHELF_W_1/2-LEG_STOCK_D, SHELF_D_1-SHELF_D-LEG_STOCK_D);
  85.  
  86. joist(LEG_STOCK_D, SHELF_W_1-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  87. joist(SHELF_D, SHELF_W_1-LEG_STOCK_D, SHELF_D_1-SHELF_D-LEG_STOCK_D);
  88.  
  89. joist(LEG_STOCK_D, SHELF_W_1+(SHELF_W-SHELF_W_1)/2-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  90. joist(LEG_STOCK_D, SHELF_W-LEG_STOCK_D, SHELF_D-LEG_STOCK_D*2);
  91. }
  92. }
  93. }
  94.  
  95. module leg_stock(h, z){
  96. color ("SaddleBrown") translate([0, 0, z]) cube([LEG_STOCK_D, LEG_STOCK_W, h]);
  97. }
  98.  
  99. module leg(x, y, MIRROR, MOD){
  100. translate([x, y, 0]) {
  101. mirror([MIRROR, 0, 0]){
  102. union(){
  103. leg_stock(LEVEL_4+SHELF_T, 0);
  104.  
  105. translate([LEG_STOCK_D, 0, 0]){
  106. union(){
  107. if (MOD == 1){
  108. leg_stock(LEVEL_2-LEG_STOCK_W, 0);
  109. } else {
  110. leg_stock(LEVEL_1-LEG_STOCK_W, 0);
  111. leg_stock(LEVEL_2-LEVEL_1-SHELF_T-LEG_STOCK_W, LEVEL_1+SHELF_T);
  112. }
  113.  
  114. leg_stock(LEVEL_3-LEVEL_2-SHELF_T-LEG_STOCK_W, LEVEL_2+SHELF_T);
  115. leg_stock(LEVEL_4-LEVEL_3-SHELF_T-LEG_STOCK_W, LEVEL_3+SHELF_T);
  116. }
  117. }
  118. }
  119. }
  120. }
  121. }
  122.  
  123. if (FLAT == false){
  124. rotate([0, 0, $t*360]){
  125. shelf_1(LEVEL_1);
  126. shelf(LEVEL_2);
  127. shelf(LEVEL_3);
  128. shelf(LEVEL_4);
  129.  
  130. leg(-LEG_STOCK_D, 0, 0, 0); // CUTOUT_D+10
  131. leg(-LEG_STOCK_D, SHELF_W-LEG_STOCK_W, 0, 0);
  132. leg(SHELF_D+LEG_STOCK_D, SHELF_W-LEG_STOCK_W, 1, 0);
  133. leg(SHELF_D_1+LEG_STOCK_D, 0, 1, 1); // SHELF_W_1-LEG_STOCK_W*2-10
  134. }
  135. } else{
  136. color("Grey", 0.3) translate([0, 0, -5]) cube([2500, 1250, 1]);
  137.  
  138. translate([SHELF_D, 0, 0]) mirror([1, 0, 0]) shelf();
  139. translate([SHELF_D+CUT_W, 0, 0]) shelf();
  140. translate([SHELF_D*3+CUT_W*2, 0, 0]) mirror([1, 0, 0]) shelf();
  141. translate([SHELF_D*3+CUT_W*3, 0, 0]) shelf();
  142. translate([SHELF_D*5+CUT_W*4, 0, 0]) mirror([1, 0, 0]) shelf();
  143. }
  144.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement