From 0aff56b70c4e4b9f2eedcb90e2bc9831ef91d0ce Mon Sep 17 00:00:00 2001 From: Edward Kisiel Date: Fri, 9 May 2025 21:57:13 -0400 Subject: [PATCH] individual bay open front or adjoining combinations based on disabled bay wall and empty adjoining bay --- mod/case_rack.scad | 81 +++++++++++++++++++++++++++---------------- sbc_case_builder.json | 2 +- sbc_case_builder.scad | 20 +++++++---- 3 files changed, 66 insertions(+), 37 deletions(-) diff --git a/mod/case_rack.scad b/mod/case_rack.scad index b9ca38d..d1ce996 100644 --- a/mod/case_rack.scad +++ b/mod/case_rack.scad @@ -204,7 +204,7 @@ if(case_design == "rack" && side == "bottom") { // pcb and multi-pcb standoff holes for(r = [0:len(rack_bay_sbc)-1]) { - if(rack_bay_sbc[r] != "empty") { + if(rack_bay_sbc[r] != "empty" && rack_bay_face[r] != "removable") { s = search([rack_bay_sbc[r]],sbc_data); pcb_id = sbc_data[s[0]][4]; pcb_width = sbc_data[s[0]][10][0]; @@ -308,7 +308,7 @@ if(case_design == "rack" && side == "bottom") { } } } - } + } } // extended standoff holes if(ext_bottom_standoffs == true) { @@ -381,11 +381,6 @@ if(case_design == "rack" && side == "bottom") { } } } - // front vent - if(rack_bay_face[r] == "vent") { - translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1)-75+14,-gap-adj,case_z-16]) - vent(2,10,wallthick+4,2,1,9,"vertical"); - } } // case floor panel clamp holes translate([150-gap-wallthick,(depth/2)-gap-wallthick,floorthick-adj-.5]) @@ -408,7 +403,7 @@ if(case_design == "rack" && side == "bottom") { } // pcb and multi-pcb standoffs for(r = [0:len(rack_bay_sbc)-1]) { - if(rack_bay_sbc[r] != "empty") { + if(rack_bay_sbc[r] != "empty" && rack_bay_face[r] != "removable") { s = search([rack_bay_sbc[r]],sbc_data); pcb_id = sbc_data[s[0]][4]; pcb_width = sbc_data[s[0]][10][0]; @@ -515,7 +510,7 @@ if(case_design == "rack" && side == "bottom") { } } // multi-pcb standoffs - if(multipcb_bottom_standoffs == true && rack_bay_sbc[r] != "empty") { + if(multipcb_bottom_standoffs == true) { for (i=[1:11:len(sbc_data[s[0]])-2]) { class = sbc_data[s[0]][i+1]; type = sbc_data[s[0]][i+2]; @@ -713,21 +708,49 @@ if(case_design == "rack" && side == "bottom") { } } } - // rear fan openings + // rear fan, rear conduit and front bay openings for(r = [0:len(rack_bay_sbc)-1]) { + // rear fan openings fan_offset = -75+(75-rear_fan_size)/2; if(rack_bay_rear_fan[r] == true) { - translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1)+fan_offset+8,depth-gap-wallthick-adj,(case_z-rear_fan_size)/2]) - rotate([90,0,0]) fan_mask(rear_fan_size, wallthick, "fan_open"); + translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1)+fan_offset+8,depth-gap-wallthick-adj, + (case_z-rear_fan_size)/2]) rotate([90,0,0]) fan_mask(rear_fan_size, wallthick, "fan_open"); } - } - // rear grommet openings - for(r = [0:len(rack_bay_sbc)-1]) { + // rear grommet openings grommet_offset = -75+11; if(rack_bay_rear_conduit[r] == true) { translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1)+grommet_offset+4,depth-wallthick-gap,13]) grommet("front", "sleeve", 10, 4, wallthick, true, [true,10,0,"default"]); } + // front vent + if(rack_bay_face[r] == "vent") { + translate([-gap-wallthick-1+rack_asm_gap/2+75*(r+1)-75+14,-gap-adj,case_z-16]) + vent(2,10,wallthick+4,2,1,9,"vertical"); + + } + // open front + if(rack_bay_face[r] == "open") { + baysize = (450-(2*wallthick))/6; + open_offset = r == 0 && rack_bay_wall[r] == true ? wallthick+gap+1 : + r == 0 && rack_bay_wall[r] == false && rack_bay_sbc[r+1] == "empty" ? wallthick+gap+1 : + r >= 1 && r < 5 && rack_bay_wall[r] == true ? 3 : + r >= 1 && r < 5 && rack_bay_wall[r] == false && rack_bay_sbc[r+1] == "empty" ? wallthick-1 : + r == 5 ? 3 : + r == 2 && rack_width == 10 ? 3 : 3; + open_size = r == 0 && rack_bay_wall[r] == true ? 75-wallthick-gap-3 : + r == 0 && rack_bay_wall[r] == false && rack_bay_sbc[r+1] == "empty" ? 75-wallthick-gap-3+baysize : + r >= 1 && r < 5 && rack_bay_wall[r] == true ? 75-wallthick-gap-2 : + r >= 1 && r < 5 && rack_bay_wall[r] == false && rack_bay_sbc[r+1] == "empty" && + r != 2 && rack_width == 10 ? 75-wallthick-gap-3+baysize : + r == 5 ? 75-wallthick-gap-3 : + r == 2 && rack_width == 10 ? 66 : 73; + + translate([open_offset-wallthick-gap+rack_asm_gap/2+75*(r+1)-75,-wallthick-gap-adj,floorthick+case_z+6]) + rotate([270,0,0]) slab([open_size,case_z,2*wallthick+15],6); + +#translate([-gap-wallthick+(75*(r+1))-75,-10-r,0]) rotate([0,90,0]) cylinder(d=1, h=75); + } +#translate([-gap-wallthick,0,case_z]) rotate([0,90,0]) cylinder(d=1, h=450); } // subtractive accessories if(accessory_name != "none") { @@ -790,9 +813,9 @@ if(case_design == "rack" && side == "bottom") { access_panel([access_panel_size[0],access_panel_size[1],floorthick], access_panel_orientation, [true,10,2,"default"]); } } - for(i = [0:len(rack_bay_sbc)-1]) { - if(rack_bay_sbc[i] != "empty") { - s = search([rack_bay_sbc[i]],sbc_data); + for(r = [0:len(rack_bay_sbc)-1]) { + if(rack_bay_sbc[r] != "empty") { + s = search([rack_bay_sbc[r]],sbc_data); pcb_id = sbc_data[s[0]][4]; pcb_width = sbc_data[s[0]][10][0]; pcb_depth = sbc_data[s[0]][10][1]; @@ -802,20 +825,20 @@ if(case_design == "rack" && side == "bottom") { pcb_color = sbc_data[s[0]][11][1]; pcb_radius = sbc_data[s[0]][11][0]; - pcb_loc_x = rack_bay_rotation[i] == 90 ? rack_bay_xyz_loc[i][0] + pcb_width : rack_bay_rotation[i] == 180 ? - rack_bay_xyz_loc[i][0] + pcb_width : rack_bay_xyz_loc[i][0]; - pcb_loc_y = rack_bay_rotation[i] == 270 ? rack_bay_xyz_loc[i][1]+pcb_width : rack_bay_rotation[i] == 180 ? - rack_bay_xyz_loc[i][1]+pcb_depth : rack_bay_xyz_loc[i][1]; - pcb_loc_z = rack_bay_xyz_loc[i][2]; + pcb_loc_x = rack_bay_rotation[r] == 90 ? rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_rotation[r] == 180 ? + rack_bay_xyz_loc[r][0] + pcb_width : rack_bay_xyz_loc[r][0]; + pcb_loc_y = rack_bay_rotation[r] == 270 ? rack_bay_xyz_loc[r][1]+pcb_width : rack_bay_rotation[r] == 180 ? + rack_bay_xyz_loc[r][1]+pcb_depth : rack_bay_xyz_loc[r][1]; + pcb_loc_z = rack_bay_xyz_loc[r][2]; // sbc openings - if(sbc_highlight == true && rack_bay_sbc[i] != "empty") { - #translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) rotate([0,0,rack_bay_rotation[i]]) - sbc(rack_bay_sbc[i], cooling, fan_size, gpio_opening, uart_opening, true); + if(sbc_highlight == true && rack_bay_sbc[r] != "empty") { + #translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) rotate([0,0,rack_bay_rotation[r]]) + sbc(rack_bay_sbc[r], cooling, fan_size, gpio_opening, uart_opening, true); } - if(sbc_highlight != true && rack_bay_sbc[i] != "empty") { - translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) rotate([0,0,rack_bay_rotation[i]]) - sbc(rack_bay_sbc[i], cooling, fan_size, gpio_opening, uart_opening, true); + if(sbc_highlight != true && rack_bay_sbc[r] != "empty") { + translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z-adj]) rotate([0,0,rack_bay_rotation[r]]) + sbc(rack_bay_sbc[r], cooling, fan_size, gpio_opening, uart_opening, true); } /* // indents if(indents == true) { diff --git a/sbc_case_builder.json b/sbc_case_builder.json index 06787f0..8105cc6 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -11342,7 +11342,7 @@ "rack_bay6_rear_conduit": "true", "rack_bay6_rear_fan": "true", "rack_bay6_rotation": "270", - "rack_bay6_xyz_loc": "[383, 0, 0]", + "rack_bay6_xyz_loc": "[385, 0, 0]", "rack_size": "1u", "rack_width": "19", "raise_top": "0", diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 4b5ef3f..12ec255 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -82,7 +82,7 @@ rack_size = "1u"; //["1u","1u+","1u++","2u"] Rack_Bay1 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay1_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay1_rotation = 0; // [0:90:270] -rack_bay1_face = "vent"; //["solid","blank","io_shield","vent"] +rack_bay1_face = "vent"; //["open","solid","removable","vent"] rack_bay1_wall = false; // [true,false] rack_bay1_rear_fan = false; //[true,false] rack_bay1_rear_conduit = false; //[true,false] @@ -90,7 +90,7 @@ rack_bay1_rear_conduit = false; //[true,false] Rack_Bay2 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay2_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay2_rotation = 0; // [0:90:270] -rack_bay2_face = "vent"; //["solid","blank","io_shield","vent"] +rack_bay2_face = "vent"; //["open","solid","removable","vent"] rack_bay2_wall = false; // [true,false] rack_bay2_rear_fan = false; //[true,false] rack_bay2_rear_conduit = false; //[true,false] @@ -98,7 +98,7 @@ rack_bay2_rear_conduit = false; //[true,false] Rack_Bay3 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay3_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay3_rotation = 0; // [0:90:270] -rack_bay3_face = "vent"; //["solid","blank","io_shield","vent"] +rack_bay3_face = "vent"; //["open","solid","removable","vent"] rack_bay3_wall = false; // [true,false] rack_bay3_rear_fan = false; //[true,false] rack_bay3_rear_conduit = false; //[true,false] @@ -106,7 +106,7 @@ rack_bay3_rear_conduit = false; //[true,false] Rack_Bay4 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay4_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay4_rotation = 0; // [0:90:270] -rack_bay4_face = "vent"; //["solid","blank","io_shield","vent"] +rack_bay4_face = "vent"; //["open","solid","removable","vent"] rack_bay4_wall = false; // [true,false] rack_bay4_rear_fan = false; //[true,false] rack_bay4_rear_conduit = false; //[true,false] @@ -114,7 +114,7 @@ rack_bay4_rear_conduit = false; //[true,false] Rack_Bay5 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay5_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay5_rotation = 0; // [0:90:270] -rack_bay5_face = "vent"; //["solid","blank","io_shield","vent"] +rack_bay5_face = "vent"; //["open","solid","removable","vent"] rack_bay5_wall = false; // [true,false] rack_bay5_rear_fan = false; //[true,false] rack_bay5_rear_conduit = false; //[true,false] @@ -122,7 +122,7 @@ rack_bay5_rear_conduit = false; //[true,false] Rack_Bay6 = "empty"; // ["empty", "c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "m2", "h2", "h2+", "h3", "h3+", "h4", "h4+", "h4_ultra", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "a64", "a64lts", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "soedge_a-baseboard", "soedge_rk1808", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "rock5b+", "nio12l", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "opi5max", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "bpif3", "milk-v_duos", "licheerv+dock", "rak19007", "cnano-avr128da48", "nodemcu-32s", "cs-solarmeter", "feather-m0_express", "feather-m0_wifi", "feather-m4_express"] rack_bay6_xyz_loc = [0,0,0]; // [0:.5:450] rack_bay6_rotation = 0; // [0:90:270] -rack_bay6_face = "vent"; //["solid","blank","io_shield","vent"] +rack_bay6_face = "vent"; //["open","solid","removable","vent"] rack_bay6_rear_fan = false; //[true,false] rack_bay6_rear_conduit = false; //[true,false] @@ -534,7 +534,13 @@ multipcb_bottom_standoff = [multipcb_bottom_standoff_size, multipcb_bottom_standoff_insert_height]; rack_bay_sbc = [Rack_Bay1,Rack_Bay2,Rack_Bay3,Rack_Bay4,Rack_Bay5,Rack_Bay6]; -rack_bay_xyz_loc = [rack_bay1_xyz_loc, rack_bay2_xyz_loc, rack_bay3_xyz_loc, rack_bay4_xyz_loc, rack_bay5_xyz_loc, rack_bay6_xyz_loc]; +rack_bay_xyz_loc = [[rack_bay1_xyz_loc[0],rack_bay1_xyz_loc[1],0], + [rack_bay2_xyz_loc[0],rack_bay2_xyz_loc[1],0], + [rack_bay3_xyz_loc[0],rack_bay3_xyz_loc[1],0], + [rack_bay4_xyz_loc[0],rack_bay4_xyz_loc[1],0], + [rack_bay5_xyz_loc[0],rack_bay5_xyz_loc[1],0], + [rack_bay6_xyz_loc[0],rack_bay6_xyz_loc[1],0]]; + rack_bay_rotation = [rack_bay1_rotation, rack_bay2_rotation, rack_bay3_rotation, rack_bay4_rotation, rack_bay5_rotation, rack_bay6_rotation]; rack_bay_face = [rack_bay1_face, rack_bay2_face, rack_bay3_face, rack_bay4_face, rack_bay5_face, rack_bay6_face]; rack_bay_wall = [rack_bay1_wall, rack_bay2_wall, rack_bay3_wall, rack_bay4_wall, rack_bay5_wall, false];