diff --git a/mod/case_bottom.scad b/mod/case_bottom.scad index 492752a..f4c08f3 100644 --- a/mod/case_bottom.scad +++ b/mod/case_bottom.scad @@ -408,19 +408,39 @@ echo(pcb_depth+case_offset_y-10); if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" && bottom_rear_left_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = sbc_model == "n2" ? 7 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_x; + ahpy = sbc_model == "n2" ? 15 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_front" && bottom_front_left_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = sbc_model == "n2" ? 8 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_x; + ahpy = sbc_model == "n2" ? 75 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_rear" && bottom_rear_right_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = sbc_model == "n2" ? 82 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 80.75 : pcbhole_x; + ahpy = sbc_model == "n2" ? 6 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_front" && bottom_front_right_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = sbc_model == "n2" ? 82 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 80.75 : pcbhole_x; + ahpy = sbc_model == "n2" ? 75 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } } @@ -445,6 +465,7 @@ echo(pcb_depth+case_offset_y-10); pcbhole_size = sbc_data[s[0]][i+9][0]; pcbhole_state = sbc_data[s[0]][i+10][0]; pcbhole_pos = sbc_data[s[0]][i+10][4]; + if(id == pcbid && id != 0 && pcbclass == "pcbhole") { if (pcbclass == "pcbhole" && pcbhole_pos == "left_rear" && multipcb_bottom_rear_left_enable == true && @@ -599,13 +620,15 @@ echo(pcb_depth+case_offset_y-10); pcbhole_z = sbc_data[s[0]][i+6]; pcbhole_size = sbc_data[s[0]][i+9][0]; pcbhole_pos = sbc_data[s[0]][i+10][4]; + pcbadj_z = sbc_model == "n2" || sbc_model == "m1" ? -6 : + sbc_model == "n2+" ? -4.5 : 0; if(class == "pcbhole" && id == pcb_id) { if (pcbhole_pos == "left_rear" && bottom_rear_left_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_rear_left_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_rear_left_adjust, + bottom_height-pcb_z+pcb_loc_z+bottom_rear_left_adjust+pcbadj_z, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -616,13 +639,18 @@ echo(pcb_depth+case_offset_y-10); bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); + ahpx = sbc_model == "n2" ? 7 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_x; + ahpy = sbc_model == "n2" ? 15 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,0]) + standoff(pcb_standoff,[false,10,2,"default"]); } if (pcbhole_pos == "left_front" && bottom_front_left_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_front_left_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_front_left_adjust, + bottom_height-pcb_z+pcb_loc_z+bottom_front_left_adjust+pcbadj_z, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -633,13 +661,18 @@ echo(pcb_depth+case_offset_y-10); bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); + ahpx = sbc_model == "n2" ? 8 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_x; + ahpy = sbc_model == "n2" ? 75 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,0]) + standoff(pcb_standoff,[false,10,2,"default"]); } if (pcbhole_pos == "right_rear" && bottom_rear_right_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_rear_right_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_rear_right_adjust, + bottom_height-pcb_z+pcb_loc_z+bottom_rear_right_adjust+pcbadj_z, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -650,13 +683,18 @@ echo(pcb_depth+case_offset_y-10); bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); + ahpx = sbc_model == "n2" ? 82 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 80.75 : pcbhole_x; + ahpy = sbc_model == "n2" ? 6 : sbc_model == "n2+" ? 9.25 : + sbc_model == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,0]) + standoff(pcb_standoff,[false,10,2,"default"]); } if (pcbhole_pos == "right_front" && bottom_front_right_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_front_right_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_front_right_adjust, + bottom_height-pcb_z+pcb_loc_z+bottom_front_right_adjust+pcbadj_z, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -667,7 +705,12 @@ echo(pcb_depth+case_offset_y-10); bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); + ahpx = sbc_model == "n2" ? 82 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 80.75 : pcbhole_x; + ahpy = sbc_model == "n2" ? 75 : sbc_model == "n2+" ? 80.75 : + sbc_model == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,0]) + standoff(pcb_standoff,[false,10,2,"default"]); } } } diff --git a/mod/case_rack.scad b/mod/case_rack.scad index 5331ac5..5abf853 100644 --- a/mod/case_rack.scad +++ b/mod/case_rack.scad @@ -295,8 +295,8 @@ if(case_design == "rack" && side == "bottom") { pcb_z_orig = sbc_data[s[0]][10][2]; pcb_tmaxz = sbc_data[s[0]][11][5]; pcb_bmaxz = sbc_data[s[0]][11][6]; - pcb_color = sbc_data[s[0]][11][1]; - pcb_radius = sbc_data[s[0]][11][0]; +// pcb_color = sbc_data[s[0]][11][1]; +// pcb_radius = sbc_data[s[0]][11][0]; 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]; @@ -978,9 +978,9 @@ module bay_tray(depth, bay) { // front vent if(rack_bay_face[bay] == "removable") { vadj = reminsert/9 > 10 ? 36 : 0; - translate([-gap-wallthick-1+(rack_asm_gap/2)+14,-gap-adj+2,bay_height-13]) + translate([-gap-wallthick-1+(rack_asm_gap/2)+14,gap+wallthick-adj,bay_height-13]) vent(2,5,wallthick+4,2,1,(reminsert+vadj)/9,"vertical"); - translate([-gap-wallthick-1+(rack_asm_gap/2)+14,-gap-adj+2,3]) + translate([-gap-wallthick-1+(rack_asm_gap/2)+14,gap+wallthick-adj,3]) vent(2,5,wallthick+4,2,1,(reminsert+vadj)/9,"vertical"); } // pcb and multi-pcb standoff holes @@ -992,14 +992,15 @@ module bay_tray(depth, bay) { pcb_z_orig = sbc_data[s[0]][10][2]; pcb_tmaxz = sbc_data[s[0]][11][5]; pcb_bmaxz = sbc_data[s[0]][11][6]; - pcb_color = sbc_data[s[0]][11][1]; - pcb_radius = sbc_data[s[0]][11][0]; +// pcb_color = sbc_data[s[0]][11][1]; +// pcb_radius = sbc_data[s[0]][11][0]; pcb_loc_x = rack_bay_rotation[bay] == 90 ? rack_bay_xyz_loc[bay][0] + pcb_width : rack_bay_rotation[bay] == 180 ? rack_bay_xyz_loc[bay][0] + pcb_width : rack_bay_xyz_loc[bay][0]; pcb_loc_y = rack_bay_rotation[bay] == 270 ? rack_bay_xyz_loc[bay][1]+pcb_width : rack_bay_rotation[bay] == 180 ? rack_bay_xyz_loc[bay][1]+pcb_depth : rack_bay_xyz_loc[bay][1]; - pcb_loc_z = rack_bay_xyz_loc[bay][2]; +// pcb_loc_z = rack_bay_sbc[bay] == "n2" || rack_bay_sbc[bay] == "m1" ? rack_bay_xyz_loc[bay][2]+6 : +// rack_bay_sbc[bay] == "n2+" ? rack_bay_xyz_loc[bay][2]+4.5 : rack_bay_xyz_loc[bay][2]; translate([pcb_loc_x,pcb_loc_y+wallthick+gap,0]) rotate([0,0,rack_bay_rotation[bay]]) union() { // pcb standoff holes @@ -1016,23 +1017,39 @@ module bay_tray(depth, bay) { if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" && bottom_rear_left_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) - cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = rack_bay_sbc[bay] == "n2" ? 7 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 15 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_front" && bottom_front_left_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) - cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = rack_bay_sbc[bay] == "n2" ? 8 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 75 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_rear" && bottom_rear_right_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) - cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = rack_bay_sbc[bay] == "n2" ? 82 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 80.75 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 6 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_front" && bottom_front_right_enable == true && bottom_standoff[6] != "blind") { - translate([pcbhole_x,pcbhole_y,-adj]) - cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); + ahpx = rack_bay_sbc[bay] == "n2" ? 82 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 80.75 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 75 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,-adj]) + cylinder(d=bottom_standoff[4]-.2, h=floorthick+(2*adj)); } } @@ -1046,6 +1063,7 @@ module bay_tray(depth, bay) { pcbloc_x = sbc_data[s[0]][i+4]; pcbloc_y = sbc_data[s[0]][i+5]; pcbloc_z = sbc_data[s[0]][i+6]; + if(class == "pcb") { for (i=[1:11:len(sbc_data[s[0]])-2]) { pcbclass = sbc_data[s[0]][i+1]; @@ -1090,12 +1108,12 @@ module bay_tray(depth, bay) { } // sbc openings if(sbc_highlight == true && rack_bay_sbc[bay] != "empty") { - #translate([pcb_loc_x ,pcb_loc_y+floorthick+gap,bottom_height-pcb_z+pcb_loc_z-adj]) + #translate([pcb_loc_x ,pcb_loc_y+floorthick+gap,pcb_bmaxz+case_offset_bz+pcb_loc_z-adj]) rotate([0,0,rack_bay_rotation[bay]]) sbc(rack_bay_sbc[bay], cooling, fan_size, gpio_opening, uart_opening, true); } if(sbc_highlight != true && rack_bay_sbc[bay] != "empty") { - translate([pcb_loc_x ,pcb_loc_y+floorthick+gap,bottom_height-pcb_z+pcb_loc_z-adj]) + translate([pcb_loc_x ,pcb_loc_y+floorthick+gap,pcb_bmaxz+case_offset_bz+pcb_loc_z-adj]) rotate([0,0,rack_bay_rotation[bay]]) sbc(rack_bay_sbc[bay], cooling, fan_size, gpio_opening, uart_opening, true); } @@ -1118,7 +1136,8 @@ module bay_tray(depth, bay) { rack_bay_rotation[bay] == 180 ? rack_bay_xyz_loc[bay][0] + pcb_width : rack_bay_xyz_loc[bay][0]; pcb_loc_y = rack_bay_rotation[bay] == 270 ? rack_bay_xyz_loc[bay][1]+pcb_width : rack_bay_rotation[bay] == 180 ? rack_bay_xyz_loc[bay][1]+pcb_depth : rack_bay_xyz_loc[bay][1]; - pcb_loc_z = rack_bay_xyz_loc[bay][2]; + pcb_loc_z = rack_bay_sbc[bay] == "n2" || rack_bay_sbc[bay] == "m1" ? rack_bay_xyz_loc[bay][2]-6 : + rack_bay_sbc[bay] == "n2+" ? rack_bay_xyz_loc[bay][2]-4.5 : rack_bay_xyz_loc[bay][2]; translate([pcb_loc_x,pcb_loc_y+wallthick+gap,0]) rotate([0,0,rack_bay_rotation[bay]]) union() { // primary pcb standoffs @@ -1138,7 +1157,7 @@ module bay_tray(depth, bay) { bottom_support = bottom_sidewall_support == true ? bottom_rear_left_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_rear_left_adjust, + pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z+bottom_rear_left_adjust, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -1149,14 +1168,18 @@ module bay_tray(depth, bay) { bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) + ahpx = rack_bay_sbc[bay] == "n2" ? 7 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 15 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay]== "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,0]) standoff(pcb_standoff,[false,10,2,"default"]); } if (pcbhole_pos == "left_front" && bottom_front_left_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_front_left_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_front_left_adjust, + pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z+bottom_front_left_adjust, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -1167,14 +1190,18 @@ module bay_tray(depth, bay) { bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) + ahpx = rack_bay_sbc[bay] == "n2" ? 8 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 75 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,0]) standoff(pcb_standoff,[false,10,2,"default"]); } if (pcbhole_pos == "right_rear" && bottom_rear_right_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_rear_right_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_rear_right_adjust, + pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z+bottom_rear_right_adjust, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -1185,14 +1212,18 @@ module bay_tray(depth, bay) { bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) + ahpx = rack_bay_sbc[bay] == "n2" ? 82 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 80.75 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 6 : rack_bay_sbc[bay] == "n2+" ? 9.25 : + rack_bay_sbc[bay] == "m1" ? 9.25 : pcbhole_y; + translate([ahpx,ahpy,0]) standoff(pcb_standoff,[false,10,2,"default"]); } if (pcbhole_pos == "right_front" && bottom_front_right_enable == true) { bottom_support = bottom_sidewall_support == true ? bottom_front_right_support : "none"; pcb_standoff = [bottom_standoff[0], bottom_standoff[1], - bottom_height-pcb_z+pcb_loc_z+bottom_front_right_adjust, + pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z+bottom_front_right_adjust, bottom_standoff[3], bottom_standoff[4], bottom_standoff[5], @@ -1203,7 +1234,11 @@ module bay_tray(depth, bay) { bottom_standoff[10], bottom_standoff[11], bottom_standoff[12]]; - translate([pcbhole_x,pcbhole_y,0]) + ahpx = rack_bay_sbc[bay] == "n2" ? 82 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 80.75 : pcbhole_x; + ahpy = rack_bay_sbc[bay] == "n2" ? 75 : rack_bay_sbc[bay] == "n2+" ? 80.75 : + rack_bay_sbc[bay] == "m1" ? 112.75 : pcbhole_y; + translate([ahpx,ahpy,0]) standoff(pcb_standoff,[false,10,2,"default"]); } } diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index c19b2f9..4c0d58d 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -1200,7 +1200,7 @@ if (view == "model") { 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]; - translate([pcb_loc_x ,pcb_loc_y,pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z-adj]) + translate([pcb_loc_x ,pcb_loc_y,pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z]) rotate([0,0,rack_bay_rotation[i]]) sbc(rack_bay_sbc[i], cooling, fan_size, gpio_opening, uart_opening, false); } @@ -1223,7 +1223,7 @@ if (view == "model") { pcb_loc_z = rack_bay_xyz_loc[i][2]; translate([pcb_loc_x+bayadj+75*(i+1) ,pcb_loc_y+wallthick+gap, - bottom_height-pcb_z+pcb_loc_z-adj+floorthick]) rotate([0,0,rack_bay_rotation[i]]) + pcb_bmaxz+floorthick+case_offset_bz+pcb_loc_z]) rotate([0,0,rack_bay_rotation[i]]) sbc(rack_bay_sbc[i], cooling, fan_size, gpio_opening, uart_opening, false); } }