rework of extended case standoff placement based on standoff support size, cs-solar_energy_meter and avr_env_sensors case adjustments

This commit is contained in:
Edward Kisiel
2024-06-02 17:29:58 -04:00
parent 82fd693b04
commit 11b869daeb
5 changed files with 232 additions and 155 deletions

View File

@@ -91,7 +91,8 @@ module case_bottom(case_design) {
pcbhole_pos = sbc_data[s[0]][i+10][4];
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") {
if((pcbhole_y <= 10 && pcbhole_x <= 10) || (ext_bottom_standoffs == true && ext_bottom_rear_left_enable == true)) {
if((pcbhole_y <= 10 && pcbhole_x <= 10) ||
(ext_bottom_standoffs == true && ext_bottom_rear_left_enable == true)) {
translate([-adj-gap,wallthick+gap+10,floorthick+3.4]) rotate([90,0,90])
cylinder(d=10, h=4, $fn=6);
}
@@ -101,7 +102,8 @@ module case_bottom(case_design) {
}
}
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front") {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x <= 10) || (ext_bottom_standoffs == true && ext_bottom_front_left_enable == true)) {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x <= 10) ||
(ext_bottom_standoffs == true && ext_bottom_front_left_enable == true)) {
translate([-adj-gap,wallthick-gap+pcb_depth+case_offset_y-14,floorthick+3.4])
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
}
@@ -111,7 +113,8 @@ module case_bottom(case_design) {
}
}
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear") {
if((pcbhole_y <= 10 && pcbhole_x >= pcb_width-10) || (ext_bottom_standoffs == true && ext_bottom_rear_right_enable == true)) {
if((pcbhole_y <= 10 && pcbhole_x >= pcb_width-10) || (ext_bottom_standoffs == true &&
ext_bottom_rear_right_enable == true)) {
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+10,floorthick+3.4])
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
}
@@ -121,7 +124,8 @@ module case_bottom(case_design) {
}
}
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front") {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x >= width-10) || (ext_bottom_standoffs == true && ext_bottom_front_right_enable == true)) {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x >= width-10) ||
(ext_bottom_standoffs == true && ext_bottom_front_right_enable == true)) {
translate([width-wallthick-gap-wallthick-4+adj,wallthick-gap+pcb_depth+case_offset_y-14,floorthick+3.4])
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
}
@@ -424,17 +428,25 @@ echo(pcb_depth+case_offset_y-10);
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 && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "left_rear" &&
multipcb_bottom_rear_left_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
}
if (pcbclass == "pcbhole" && pcbhole_pos == "left_front" && multipcb_bottom_front_left_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "left_front" &&
multipcb_bottom_front_left_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
}
if (pcbclass == "pcbhole" && pcbhole_pos == "right_rear" && multipcb_bottom_rear_right_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "right_rear" &&
multipcb_bottom_rear_right_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
}
if (pcbclass == "pcbhole" && pcbhole_pos == "right_front" && multipcb_bottom_front_right_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "right_front" &&
multipcb_bottom_front_right_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=multipcb_bottom_standoff[4]-.2, h=bottom_height);
}
}
}
@@ -444,32 +456,42 @@ echo(pcb_depth+case_offset_y-10);
// extended standoff holes
if(ext_bottom_standoffs == true) {
// right-rear standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10)) &&
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size
|| pcb_loc_y >= ext_bottom_standoff_support_size)) &&
ext_bottom_rear_right_enable == true && ext_bottom_standoff[6] != "blind") {
translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
ext_bottom_standoff_support_size/4,-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
// right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_bottom_front_right_enable == true && ext_bottom_standoff[6] != "blind") {
translate([width-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),-1])
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_bottom_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size &&
depth-pcb_loc_y-pcb_depth <= ext_bottom_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= ext_bottom_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_bottom_standoff_support_size)) &&
ext_bottom_front_right_enable == true && ext_bottom_standoff[6] != "blind") {
translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
// left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_bottom_standoff_support_size/4,
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
if((pcb_loc_x >= ext_bottom_standoff_support_size || pcb_loc_y >= ext_bottom_standoff_support_size) &&
ext_bottom_rear_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([ext_bottom_standoff_support_size/4,
ext_bottom_standoff_support_size/4,-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
// left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) &&
ext_bottom_front_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_bottom_standoff_support_size/4,
depth-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),-1])
if(((pcb_loc_x >= ext_bottom_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) >= ext_bottom_standoff_support_size) ||
(pcb_loc_x <= ext_bottom_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) >= ext_bottom_standoff_support_size) ||
(pcb_loc_x >= ext_bottom_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) <= ext_bottom_standoff_support_size)) &&
ext_bottom_front_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([ext_bottom_standoff_support_size/4,
depth-(ext_bottom_standoff_support_size/4)-(2*(wallthick+gap)),-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
}
@@ -617,7 +639,8 @@ echo(pcb_depth+case_offset_y-10);
pcbhole_pos = sbc_data[s[0]][i+10][4];
if(pcbclass == "pcbhole" && pcbid == id && id != 0) {
if (pcbhole_pos == "left_rear" && multipcb_bottom_rear_left_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
if (pcbhole_pos == "left_rear" && multipcb_bottom_rear_left_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_rear_left_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1],
@@ -634,7 +657,8 @@ echo(pcb_depth+case_offset_y-10);
multipcb_bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "left_front" && multipcb_bottom_front_left_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
if (pcbhole_pos == "left_front" && multipcb_bottom_front_left_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_front_left_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1],
@@ -651,7 +675,8 @@ echo(pcb_depth+case_offset_y-10);
multipcb_bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_rear" && multipcb_bottom_rear_right_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
if (pcbhole_pos == "right_rear" && multipcb_bottom_rear_right_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_rear_right_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1],
@@ -668,7 +693,8 @@ echo(pcb_depth+case_offset_y-10);
multipcb_bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_front" && multipcb_bottom_front_right_enable == true && (pcbhole_state == "bottom" || pcbhole_state == "both")) {
if (pcbhole_pos == "right_front" && multipcb_bottom_front_right_enable == true &&
(pcbhole_state == "bottom" || pcbhole_state == "both")) {
bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_front_right_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1],
@@ -693,7 +719,8 @@ echo(pcb_depth+case_offset_y-10);
// extended standoffs
if(ext_bottom_standoffs == true) {
// extended right-rear standoff
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_right_enable == true) {
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size ||
pcb_loc_y >= ext_bottom_standoff_support_size) && ext_bottom_rear_right_enable == true) {
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_rear_right_adjust,
@@ -707,14 +734,18 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10],
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(extended_standoff,[false,10,2,"default"]);
translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
ext_bottom_standoff_support_size/4,0])
standoff(extended_standoff,[false,10,2,"default"]);
}
// extended right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_bottom_front_right_enable == true) {
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_bottom_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size &&
depth-pcb_loc_y-pcb_depth <= ext_bottom_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= ext_bottom_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_bottom_standoff_support_size)) &&
ext_bottom_front_right_enable == true) {
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_front_right_adjust,
@@ -728,11 +759,13 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10],
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0]) standoff(extended_standoff,[false,10,2,"default"]);
translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),0])
standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_left_enable == true) {
if((pcb_loc_x >= ext_bottom_standoff_support_size || pcb_loc_y >= ext_bottom_standoff_support_size)
&& ext_bottom_rear_left_enable == true) {
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_rear_left_adjust,
@@ -746,14 +779,17 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10],
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(extended_standoff,[false,10,2,"default"]);
translate([ext_bottom_standoff_support_size/4, ext_bottom_standoff_support_size/4,0])
standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-front standoff
if(((pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) >= 10) ||
(pcb_loc_x <= 10 && depth-(pcb_loc_y+pcb_depth) >= 10) ||
(pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) <= 10)) &&
ext_bottom_front_left_enable == true) {
if(((pcb_loc_x >= ext_bottom_standoff_support_size &&
depth-(pcb_loc_y+pcb_depth) >= ext_bottom_standoff_support_size) ||
(pcb_loc_x <= ext_bottom_standoff_support_size &&
depth-(pcb_loc_y+pcb_depth) >= ext_bottom_standoff_support_size) ||
(pcb_loc_x >= ext_bottom_standoff_support_size &&
depth-(pcb_loc_y+pcb_depth) <= ext_bottom_standoff_support_size)) &&
ext_bottom_front_left_enable == true) {
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_front_left_adjust,
@@ -767,8 +803,8 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10],
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0])
translate([ext_bottom_standoff_support_size/4,
depth-(ext_bottom_standoff_support_size/4)-(2*(wallthick+gap)),0])
standoff(extended_standoff,[false,10,2,"default"]);
}
}
@@ -825,7 +861,8 @@ echo(pcb_depth+case_offset_y-10);
access_panel([access_panel_size[0],access_panel_size[1],floorthick], access_panel_orientation, [true,10,2,"default"]);
}
if(access_panel_rotation == 180) {
translate([access_panel_location[0]+access_panel_size[0],access_panel_location[1]+access_panel_size[1],0]) rotate([0,0,access_panel_rotation])
translate([access_panel_location[0]+access_panel_size[0],access_panel_location[1]+access_panel_size[1],0])
rotate([0,0,access_panel_rotation])
access_panel([access_panel_size[0],access_panel_size[1],floorthick], access_panel_orientation, [true,10,2,"default"]);
}
if(access_panel_rotation == 270) {

View File

@@ -104,7 +104,8 @@ module case_top(case_design) {
pcbhole_pos = sbc_data[s[0]][i+10][4];
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") {
if((pcbhole_y <= 10 && pcbhole_x <= 10) || (ext_top_standoffs == true && ext_top_rear_left_enable == true)) {
if((pcbhole_y <= 10 && pcbhole_x <= 10) || (ext_top_standoffs == true &&
ext_top_rear_left_enable == true)) {
translate([-wallthick-gap-adj-6,wallthick+gap+10,floorthick+3.4]) rotate([0,90,0])
cylinder(d=3, h=10+sidethick+(2*adj));
}
@@ -114,7 +115,8 @@ module case_top(case_design) {
}
}
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front") {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x <= 10) || (ext_top_standoffs == true && ext_top_front_left_enable == true)) {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x <= 10) ||
(ext_top_standoffs == true && ext_top_front_left_enable == true)) {
translate([-wallthick-gap-adj-6,wallthick-gap+pcb_depth+case_offset_y-14,
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
}
@@ -124,7 +126,8 @@ module case_top(case_design) {
}
}
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear") {
if((pcbhole_y <= 10 && pcbhole_x >= pcb_width-10) || (ext_top_standoffs == true && ext_top_rear_right_enable == true)) {
if((pcbhole_y <= 10 && pcbhole_x >= pcb_width-10) || (ext_top_standoffs == true &&
ext_top_rear_right_enable == true)) {
translate([width-2*(wallthick+gap)-sidethick-adj,wallthick+gap+10,floorthick+3.4])
rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
}
@@ -134,7 +137,8 @@ module case_top(case_design) {
}
}
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front") {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x >= width-10) || (ext_bottom_standoffs == true && ext_bottom_front_right_enable == true)) {
if((pcbhole_y >= pcb_depth+case_offset_y-10 && pcbhole_x >= width-10) ||
(ext_bottom_standoffs == true && ext_bottom_front_right_enable == true)) {
translate([width-3*(wallthick+gap)-adj,wallthick-gap+pcb_depth+case_offset_y-14,
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
}
@@ -307,20 +311,20 @@ module case_top(case_design) {
pcbhole_size = sbc_data[s[0]][i+9][0];
pcbhole_pos = sbc_data[s[0]][i+10][4];
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" && top_rear_left_enable == true &&
top_standoff[6] != "blind") {
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" &&
top_rear_left_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_front" && top_front_left_enable == true &&
top_standoff[6] != "blind") {
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_front" &&
top_front_left_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_rear" && top_rear_right_enable == true &&
top_standoff[6] != "blind") {
if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_rear" &&
top_rear_right_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_front" && top_front_right_enable == true &&
top_standoff[6] != "blind") {
if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_front" &&
top_front_right_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
}
@@ -346,17 +350,29 @@ module case_top(case_design) {
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_top_rear_left_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "left_rear" &&
multipcb_top_rear_left_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height])
cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
}
if (pcbclass == "pcbhole" && pcbhole_pos == "left_front" && multipcb_top_front_left_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "left_front" &&
multipcb_top_front_left_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height])
cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
}
if (pcbclass == "pcbhole" && pcbhole_pos == "right_rear" && multipcb_top_rear_right_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "right_rear" &&
multipcb_top_rear_right_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height])
cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
}
if (pcbclass == "pcbhole" && pcbhole_pos == "right_front" && multipcb_top_front_right_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
if (pcbclass == "pcbhole" && pcbhole_pos == "right_front" &&
multipcb_top_front_right_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
translate([pcbhole_x,pcbhole_y,top_height])
cylinder(d=multipcb_top_standoff[4]-.2, h=top_height);
}
}
}
@@ -366,32 +382,41 @@ module case_top(case_design) {
// extended standoff holes
if(ext_top_standoffs == true) {
// right-rear standoff
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) &&
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size ||
pcb_loc_y >= ext_top_standoff_support_size) &&
ext_top_rear_right_enable == true && ext_top_standoff[6] != "blind") {
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[4]-.2, h=top_height);
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
ext_top_standoff_support_size/4,top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
// right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_top_front_right_enable == true && ext_top_standoff[6] != "blind") {
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5])
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_top_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size &&
depth-pcb_loc_y-pcb_depth <= ext_top_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= ext_top_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_top_standoff_support_size)) &&
ext_top_front_right_enable == true && ext_top_standoff[6] != "blind") {
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)),top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
// left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true && ext_top_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[4]-.2, h=top_height);
if((pcb_loc_x >= ext_top_standoff_support_size || pcb_loc_y >= ext_top_standoff_support_size) &&
ext_top_rear_left_enable == true && ext_top_standoff[6] != "blind") {
translate([ext_top_standoff_support_size/4, ext_top_standoff_support_size/4,top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
// left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) &&
ext_top_front_left_enable == true && ext_top_standoff[6] != "blind") {
translate([+(corner_fillet/2)+ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5])
if(((pcb_loc_x >= ext_top_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) >= ext_top_standoff_support_size) ||
(pcb_loc_x <= ext_top_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) >= ext_top_standoff_support_size) ||
(pcb_loc_x >= ext_top_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) <= ext_top_standoff_support_size)) &&
ext_top_front_left_enable == true && ext_top_standoff[6] != "blind") {
translate([ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)),top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
}
@@ -404,10 +429,12 @@ module case_top(case_design) {
translate([1,2,case_z-2]) vent_hex((width)/5.5,(depth)/9.5,floorthick+4,8,1.5,"horizontal");
}
if(top_cover_pattern == "linear_vertical") {
translate([0,-gap,case_z-2]) vent(wallthick,depth-2*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4,"horizontal");
translate([0,-gap,case_z-2])
vent(wallthick,depth-2*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4,"horizontal");
}
if(top_cover_pattern == "linear_horizontal") {
translate([-gap,-gap,case_z-2]) vent(width-2*wallthick-gap,wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3,1,"horizontal");
translate([-gap,-gap,case_z-2])
vent(width-2*wallthick-gap,wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3,1,"horizontal");
}
if(top_cover_pattern == "astroid") {
for(c=[3:12:depth-8]) {
@@ -445,7 +472,8 @@ module case_top(case_design) {
pcbhole_size = sbc_data[s[0]][i+9][0];
pcbhole_pos = sbc_data[s[0]][i+10][4];
if(class == "pcbhole" && id == pcb_id &&
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" || pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" ||
pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
if (pcbhole_pos == "left_rear" && top_rear_left_enable == true) {
top_support = top_sidewall_support == true ? top_rear_left_support : "none";
pcb_standoff = [top_standoff[0],
@@ -539,7 +567,8 @@ module case_top(case_design) {
pcbhole_pos = sbc_data[s[0]][i+10][4];
if(pcbclass == "pcbhole" && pcbid == id && id != 0) {
if (pcbhole_pos == "left_rear" && multipcb_top_rear_left_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
if (pcbhole_pos == "left_rear" && multipcb_top_rear_left_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
top_support = multipcb_top_sidewall_support == true ? multipcb_top_rear_left_support : "none";
pcb_standoff = [multipcb_top_standoff[0],
multipcb_top_standoff[1],
@@ -556,10 +585,11 @@ module case_top(case_design) {
multipcb_top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "left_front" && multipcb_top_front_left_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
if (pcbhole_pos == "left_front" && multipcb_top_front_left_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
top_support = multipcb_top_sidewall_support == true ? multipcb_top_front_left_support : "none";
pcb_standoff = [multipcb_top_standoff[0],
multipcb_bottom_standoff[1],
multipcb_top_standoff[1],
top_height+top_rear_right_adjust-pcb_loc_z,
multipcb_top_standoff[3],
multipcb_top_standoff[4],
@@ -573,7 +603,8 @@ module case_top(case_design) {
multipcb_top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_rear" && multipcb_top_rear_right_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
if (pcbhole_pos == "right_rear" && multipcb_top_rear_right_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
top_support = multipcb_top_sidewall_support == true ? multipcb_top_rear_right_support : "none";
pcb_standoff = [multipcb_top_standoff[0],
multipcb_top_standoff[1],
@@ -590,7 +621,8 @@ module case_top(case_design) {
multipcb_top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_front" && multipcb_top_front_right_enable == true && (pcbhole_state == "top" || pcbhole_state == "both")) {
if (pcbhole_pos == "right_front" && multipcb_top_front_right_enable == true &&
(pcbhole_state == "top" || pcbhole_state == "both")) {
top_support = multipcb_top_sidewall_support == true ? multipcb_top_front_right_support : "none";
pcb_standoff = [multipcb_top_standoff[0],
multipcb_top_standoff[1],
@@ -615,7 +647,8 @@ module case_top(case_design) {
// extended standoffs
if(ext_top_standoffs == true) {
// extended right-rear standoff
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) && ext_top_rear_right_enable == true) {
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size ||
pcb_loc_y >= ext_top_standoff_support_size) && ext_top_rear_right_enable == true) {
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_rear_right_adjust,
@@ -629,14 +662,17 @@ module case_top(case_design) {
ext_top_standoff[10],
ext_top_standoff[11],
ext_top_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_top_front_right_enable == true) {
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_top_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size &&
depth-pcb_loc_y-pcb_depth <= ext_top_standoff_support_size) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= ext_top_standoff_support_size &&
depth-pcb_loc_y-pcb_depth >= ext_top_standoff_support_size)) &&
ext_top_front_right_enable == true) {
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_front_right_adjust,
@@ -650,33 +686,37 @@ module case_top(case_design) {
ext_top_standoff[10],
ext_top_standoff[11],
ext_top_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),case_z])
standoff(extended_standoff,[false,10,2,"default"]);
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)),case_z])
standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true) {
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_rear_left_adjust,
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_standoff[7],
ext_top_rear_left_support,
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11],
ext_top_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
if((pcb_loc_x >= ext_top_standoff_support_size || pcb_loc_y >= ext_top_standoff_support_size) &&
ext_top_rear_left_enable == true) {
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_rear_left_adjust,
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_standoff[7],
ext_top_rear_left_support,
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11],
ext_top_standoff[12]];
translate([ext_top_standoff_support_size/4,
ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) <= 10)) &&
ext_top_front_left_enable == true) {
if(((pcb_loc_x >= ext_top_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) >= ext_top_standoff_support_size) ||
(pcb_loc_x <= ext_top_standoff_support_size &&
(depth-(pcb_loc_y+pcb_depth)) >= ext_top_standoff_support_size) ||
(pcb_loc_x >= ext_top_standoff_support_size &&
depth-(pcb_loc_y+pcb_depth) <= ext_top_standoff_support_size)) &&
ext_top_front_left_enable == true) {
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_front_left_adjust,
@@ -690,8 +730,8 @@ module case_top(case_design) {
ext_top_standoff[10],
ext_top_standoff[11],
ext_top_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)), case_z])
translate([ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)), case_z])
standoff(extended_standoff,[false,10,2,"default"]);
}
}

View File

@@ -6956,14 +6956,14 @@
"multipcb_top_rear_right_enable": "true",
"multipcb_top_rear_right_support": "rear",
"multipcb_top_sidewall_support": "true",
"multipcb_top_standoff_diameter": "5.75",
"multipcb_top_standoff_diameter": "4.75",
"multipcb_top_standoff_hole_size": "2.75",
"multipcb_top_standoff_insert": "false",
"multipcb_top_standoff_insert_dia": "4.2",
"multipcb_top_standoff_insert_height": "5.1",
"multipcb_top_standoff_insert": "true",
"multipcb_top_standoff_insert_dia": "3.4",
"multipcb_top_standoff_insert_height": "4",
"multipcb_top_standoff_pillar": "hex",
"multipcb_top_standoff_reverse": "true",
"multipcb_top_standoff_size": "m2.5",
"multipcb_top_standoff_size": "custom",
"multipcb_top_standoff_support_height": "4",
"multipcb_top_standoff_support_size": "8",
"multipcb_top_standoff_type": "blind",
@@ -7000,12 +7000,12 @@
"top_sidewall_support": "true",
"top_standoff_diameter": "5.75",
"top_standoff_hole_size": "2.75",
"top_standoff_insert": "false",
"top_standoff_insert_dia": "4.2",
"top_standoff_insert_height": "5.1",
"top_standoff_insert": "true",
"top_standoff_insert_dia": "4.4",
"top_standoff_insert_height": "4.1",
"top_standoff_pillar": "hex",
"top_standoff_reverse": "true",
"top_standoff_size": "m3",
"top_standoff_size": "custom",
"top_standoff_support_height": "4",
"top_standoff_support_size": "10",
"top_standoff_type": "blind",
@@ -7096,16 +7096,16 @@
"ext_top_rear_right_enable": "true",
"ext_top_rear_right_support": "rear",
"ext_top_sidewall_support": "true",
"ext_top_standoff_diameter": "5.75",
"ext_top_standoff_diameter": "4.75",
"ext_top_standoff_hole_size": "2.75",
"ext_top_standoff_insert": "false",
"ext_top_standoff_insert_dia": "4.2",
"ext_top_standoff_insert_height": "5.1",
"ext_top_standoff_insert": "true",
"ext_top_standoff_insert_dia": "3.4",
"ext_top_standoff_insert_height": "4",
"ext_top_standoff_pillar": "hex",
"ext_top_standoff_reverse": "true",
"ext_top_standoff_size": "m2+",
"ext_top_standoff_size": "custom",
"ext_top_standoff_support_height": "4",
"ext_top_standoff_support_size": "10",
"ext_top_standoff_support_size": "7",
"ext_top_standoff_type": "blind",
"ext_top_standoffs": "true",
"fan_size": "0",
@@ -7172,16 +7172,16 @@
"multipcb_top_standoff_type": "blind",
"multipcb_top_standoffs": "false",
"pcb_loc_x": "0",
"pcb_loc_y": "5",
"pcb_loc_y": "7",
"pcb_loc_z": "0",
"raise_top": "-1",
"raise_top": "0",
"rear_io_shield": "false",
"sbc_bottom_standoffs": "true",
"sbc_highlight": "false",
"sbc_information": "false",
"sbc_model": "cnano-avr128da48",
"sbc_off": "false",
"sbc_top_standoffs": "true",
"sbc_top_standoffs": "false",
"sidethick": "2",
"standard_motherboard_thickness": "0",
"text_color": "Green",
@@ -7208,7 +7208,7 @@
"top_standoff_insert_height": "4",
"top_standoff_pillar": "hex",
"top_standoff_reverse": "true",
"top_standoff_size": "m2",
"top_standoff_size": "m2.5",
"top_standoff_support_height": "4",
"top_standoff_support_size": "7",
"top_standoff_type": "blind",

View File

@@ -467,11 +467,11 @@ accessory_data = [
"model","stl_model",69,32,27,"bottom",[270,0,90],["sbc",true,true,false],[0,0,0],[1,"./adafruit/4867 Adafruit SCD30.stl"],[false,10,2,"default"],
"add2","pcb_holder",69,31,0,"bottom",[0,0,90],["sbc",true,true,false],[53,35,1.65],[2],[false,10,2,"default"],
// ST7789 IPS TFT Display and holder
"model","stl_model",82,25,2.5,"bottom",[90,270,270],["sbc",true,true,false],[0,0,0],[1,"./adafruit/4311 2in TFT IPS Display.stl"],[false,10,2,"default"],
"add2","pcb_holder",80.5,85,0,"bottom",[0,0,270],["sbc",true,true,false],[61,35,1.65],[2],[false,10,2,"default"],
"add2","pcb_holder",80.5,24,11.5,"top",[0,180,270],["sbc-case_z",true,true,true],[61,35,1.65],[2],[false,10,2,"default"],
"model","stl_model",82,23,2.5,"bottom",[90,270,270],["sbc",true,true,false],[0,0,0],[1,"./adafruit/4311 2in TFT IPS Display.stl"],[false,10,2,"default"],
"add2","pcb_holder",80.5,83,0,"bottom",[0,0,270],["sbc",true,true,false],[61,35,1.65],[2],[false,10,2,"default"],
"add2","pcb_holder",80.5,22,11.5,"top",[0,180,270],["sbc-case_z",true,true,true],[61,35,1.65],[2],[false,10,2,"default"],
// display opening
"suball","rectangle",82,34,3,"bottom",[0,0,0],["sbc",true,true,false],[6,44,34],[[.1,.1,.1,.1]],[false,10,2,"default"],
"suball","rectangle",82,32,3,"bottom",[0,0,0],["sbc",true,true,false],[6,44,34],[[.1,.1,.1,.1]],[false,10,2,"default"],
// empty
"add2","pcb_holder",52,58,0,"bottom",[0,0,90],["sbc",true,true,false],[26.5,35,1.65],[2],[false,10,2,"default"],
"add2","pcb_holder",52,26,0,"bottom",[0,0,90],["sbc",true,true,false],[26.5,35,1.65],[2],[false,10,2,"default"],