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]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") { 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]) translate([-adj-gap,wallthick+gap+10,floorthick+3.4]) rotate([90,0,90])
cylinder(d=10, h=4, $fn=6); 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(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]) 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); 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(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]) translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+10,floorthick+3.4])
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6); 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(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]) 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); rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
} }
@@ -424,16 +428,24 @@ echo(pcb_depth+case_offset_y-10);
pcbhole_state = sbc_data[s[0]][i+10][0]; pcbhole_state = sbc_data[s[0]][i+10][0];
pcbhole_pos = sbc_data[s[0]][i+10][4]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(id == pcbid && id != 0 && pcbclass == "pcbhole") { 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")) { 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); 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")) { 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); 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")) { 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); 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")) { 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); 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 // extended standoff holes
if(ext_bottom_standoffs == true) { if(ext_bottom_standoffs == true) {
// right-rear standoff // 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") { 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), translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height); ext_bottom_standoff_support_size/4,-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
} }
// right-front standoff // right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size &&
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) || depth-pcb_loc_y-pcb_depth >= ext_bottom_standoff_support_size) ||
(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) >= 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") { 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)), translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),-1]) depth-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height); cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
} }
// left-rear standoff // left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_left_enable == true && ext_bottom_standoff[6] != "blind") { if((pcb_loc_x >= ext_bottom_standoff_support_size || pcb_loc_y >= ext_bottom_standoff_support_size) &&
translate([(corner_fillet/2)+ext_bottom_standoff_support_size/4, ext_bottom_rear_left_enable == true && ext_bottom_standoff[6] != "blind") {
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height); 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 // left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) || if(((pcb_loc_x >= ext_bottom_standoff_support_size &&
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) || (depth-(pcb_loc_y+pcb_depth)) >= ext_bottom_standoff_support_size) ||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) && (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") { ext_bottom_front_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_bottom_standoff_support_size/4, translate([ext_bottom_standoff_support_size/4,
depth-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),-1]) depth-(ext_bottom_standoff_support_size/4)-(2*(wallthick+gap)),-1])
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height); 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]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(pcbclass == "pcbhole" && pcbid == id && id != 0) { 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"; bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_rear_left_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0], pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1], multipcb_bottom_standoff[1],
@@ -634,7 +657,8 @@ echo(pcb_depth+case_offset_y-10);
multipcb_bottom_standoff[12]]; multipcb_bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); 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"; bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_front_left_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0], pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1], multipcb_bottom_standoff[1],
@@ -651,7 +675,8 @@ echo(pcb_depth+case_offset_y-10);
multipcb_bottom_standoff[12]]; multipcb_bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); 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"; bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_rear_right_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0], pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1], multipcb_bottom_standoff[1],
@@ -668,7 +693,8 @@ echo(pcb_depth+case_offset_y-10);
multipcb_bottom_standoff[12]]; multipcb_bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]); 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"; bottom_support = multipcb_bottom_sidewall_support == true ? multipcb_bottom_front_right_support : "none";
pcb_standoff = [multipcb_bottom_standoff[0], pcb_standoff = [multipcb_bottom_standoff[0],
multipcb_bottom_standoff[1], multipcb_bottom_standoff[1],
@@ -693,7 +719,8 @@ echo(pcb_depth+case_offset_y-10);
// extended standoffs // extended standoffs
if(ext_bottom_standoffs == true) { if(ext_bottom_standoffs == true) {
// extended right-rear standoff // 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], extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1], ext_bottom_standoff[1],
bottom_height+ext_bottom_rear_right_adjust, bottom_height+ext_bottom_rear_right_adjust,
@@ -707,13 +734,17 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10], ext_bottom_standoff[10],
ext_bottom_standoff[11], ext_bottom_standoff[11],
ext_bottom_standoff[12]]; ext_bottom_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2), translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(extended_standoff,[false,10,2,"default"]); ext_bottom_standoff_support_size/4,0])
standoff(extended_standoff,[false,10,2,"default"]);
} }
// extended right-front standoff // extended right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_bottom_standoff_support_size &&
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) || depth-pcb_loc_y-pcb_depth >= ext_bottom_standoff_support_size) ||
(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) >= 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_front_right_enable == true) {
extended_standoff = [ext_bottom_standoff[0], extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1], ext_bottom_standoff[1],
@@ -728,11 +759,13 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10], ext_bottom_standoff[10],
ext_bottom_standoff[11], ext_bottom_standoff[11],
ext_bottom_standoff[12]]; ext_bottom_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)), translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0]) standoff(extended_standoff,[false,10,2,"default"]); depth-ext_bottom_standoff_support_size/4-(2*(wallthick+gap)),0])
standoff(extended_standoff,[false,10,2,"default"]);
} }
// extended left-rear standoff // 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], extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1], ext_bottom_standoff[1],
bottom_height+ext_bottom_rear_left_adjust, bottom_height+ext_bottom_rear_left_adjust,
@@ -746,13 +779,16 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10], ext_bottom_standoff[10],
ext_bottom_standoff[11], ext_bottom_standoff[11],
ext_bottom_standoff[12]]; ext_bottom_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4, translate([ext_bottom_standoff_support_size/4, ext_bottom_standoff_support_size/4,0])
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(extended_standoff,[false,10,2,"default"]); standoff(extended_standoff,[false,10,2,"default"]);
} }
// extended left-front standoff // extended left-front standoff
if(((pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) >= 10) || if(((pcb_loc_x >= ext_bottom_standoff_support_size &&
(pcb_loc_x <= 10 && depth-(pcb_loc_y+pcb_depth) >= 10) || depth-(pcb_loc_y+pcb_depth) >= ext_bottom_standoff_support_size) ||
(pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) <= 10)) && (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_front_left_enable == true) {
extended_standoff = [ext_bottom_standoff[0], extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1], ext_bottom_standoff[1],
@@ -767,8 +803,8 @@ echo(pcb_depth+case_offset_y-10);
ext_bottom_standoff[10], ext_bottom_standoff[10],
ext_bottom_standoff[11], ext_bottom_standoff[11],
ext_bottom_standoff[12]]; ext_bottom_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4, translate([ext_bottom_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0]) depth-(ext_bottom_standoff_support_size/4)-(2*(wallthick+gap)),0])
standoff(extended_standoff,[false,10,2,"default"]); 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"]); access_panel([access_panel_size[0],access_panel_size[1],floorthick], access_panel_orientation, [true,10,2,"default"]);
} }
if(access_panel_rotation == 180) { 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"]); access_panel([access_panel_size[0],access_panel_size[1],floorthick], access_panel_orientation, [true,10,2,"default"]);
} }
if(access_panel_rotation == 270) { 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]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") { 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]) translate([-wallthick-gap-adj-6,wallthick+gap+10,floorthick+3.4]) rotate([0,90,0])
cylinder(d=3, h=10+sidethick+(2*adj)); 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(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, 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)); 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(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]) 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)); 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(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, 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)); 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_size = sbc_data[s[0]][i+9][0];
pcbhole_pos = sbc_data[s[0]][i+10][4]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" && top_rear_left_enable == true && if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" &&
top_standoff[6] != "blind") { 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); 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 && if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_front" &&
top_standoff[6] != "blind") { 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); 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 && if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_rear" &&
top_standoff[6] != "blind") { 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); 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 && if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_front" &&
top_standoff[6] != "blind") { 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); 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_state = sbc_data[s[0]][i+10][0];
pcbhole_pos = sbc_data[s[0]][i+10][4]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(id == pcbid && id != 0 && pcbclass == "pcbhole") { 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")) { if (pcbclass == "pcbhole" && pcbhole_pos == "left_rear" &&
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height); 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")) { if (pcbclass == "pcbhole" && pcbhole_pos == "left_front" &&
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height); 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")) { if (pcbclass == "pcbhole" && pcbhole_pos == "right_rear" &&
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height); 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")) { if (pcbclass == "pcbhole" && pcbhole_pos == "right_front" &&
translate([pcbhole_x,pcbhole_y,top_height]) cylinder(d=multipcb_top_standoff[4]-.2, h=top_height); 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 // extended standoff holes
if(ext_top_standoffs == true) { if(ext_top_standoffs == true) {
// right-rear standoff // 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") { 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), translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[4]-.2, h=top_height); ext_top_standoff_support_size/4,top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
} }
// right-front standoff // right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size &&
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) || depth-pcb_loc_y-pcb_depth >= ext_top_standoff_support_size) ||
(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) >= 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") { 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)), translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5]) depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)),top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height); cylinder(d=ext_top_standoff[4]-.2, h=top_height);
} }
// left-rear standoff // left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true && ext_top_standoff[6] != "blind") { if((pcb_loc_x >= ext_top_standoff_support_size || pcb_loc_y >= ext_top_standoff_support_size) &&
translate([(corner_fillet/2)+ext_top_standoff_support_size/4, ext_top_rear_left_enable == true && ext_top_standoff[6] != "blind") {
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[4]-.2, h=top_height); 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 // left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) || if(((pcb_loc_x >= ext_top_standoff_support_size &&
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) || (depth-(pcb_loc_y+pcb_depth)) >= ext_top_standoff_support_size) ||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) && (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") { ext_top_front_left_enable == true && ext_top_standoff[6] != "blind") {
translate([+(corner_fillet/2)+ext_top_standoff_support_size/4, translate([ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5]) depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)),top_height+5])
cylinder(d=ext_top_standoff[4]-.2, h=top_height); 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"); 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") { 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") { 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") { if(top_cover_pattern == "astroid") {
for(c=[3:12:depth-8]) { 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_size = sbc_data[s[0]][i+9][0];
pcbhole_pos = sbc_data[s[0]][i+10][4]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(class == "pcbhole" && id == pcb_id && 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) { if (pcbhole_pos == "left_rear" && top_rear_left_enable == true) {
top_support = top_sidewall_support == true ? top_rear_left_support : "none"; top_support = top_sidewall_support == true ? top_rear_left_support : "none";
pcb_standoff = [top_standoff[0], pcb_standoff = [top_standoff[0],
@@ -539,7 +567,8 @@ module case_top(case_design) {
pcbhole_pos = sbc_data[s[0]][i+10][4]; pcbhole_pos = sbc_data[s[0]][i+10][4];
if(pcbclass == "pcbhole" && pcbid == id && id != 0) { 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"; top_support = multipcb_top_sidewall_support == true ? multipcb_top_rear_left_support : "none";
pcb_standoff = [multipcb_top_standoff[0], pcb_standoff = [multipcb_top_standoff[0],
multipcb_top_standoff[1], multipcb_top_standoff[1],
@@ -556,10 +585,11 @@ module case_top(case_design) {
multipcb_top_standoff[12]]; multipcb_top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]); 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"; top_support = multipcb_top_sidewall_support == true ? multipcb_top_front_left_support : "none";
pcb_standoff = [multipcb_top_standoff[0], pcb_standoff = [multipcb_top_standoff[0],
multipcb_bottom_standoff[1], multipcb_top_standoff[1],
top_height+top_rear_right_adjust-pcb_loc_z, top_height+top_rear_right_adjust-pcb_loc_z,
multipcb_top_standoff[3], multipcb_top_standoff[3],
multipcb_top_standoff[4], multipcb_top_standoff[4],
@@ -573,7 +603,8 @@ module case_top(case_design) {
multipcb_top_standoff[12]]; multipcb_top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]); 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"; top_support = multipcb_top_sidewall_support == true ? multipcb_top_rear_right_support : "none";
pcb_standoff = [multipcb_top_standoff[0], pcb_standoff = [multipcb_top_standoff[0],
multipcb_top_standoff[1], multipcb_top_standoff[1],
@@ -590,7 +621,8 @@ module case_top(case_design) {
multipcb_top_standoff[12]]; multipcb_top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]); 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"; top_support = multipcb_top_sidewall_support == true ? multipcb_top_front_right_support : "none";
pcb_standoff = [multipcb_top_standoff[0], pcb_standoff = [multipcb_top_standoff[0],
multipcb_top_standoff[1], multipcb_top_standoff[1],
@@ -615,7 +647,8 @@ module case_top(case_design) {
// extended standoffs // extended standoffs
if(ext_top_standoffs == true) { if(ext_top_standoffs == true) {
// extended right-rear standoff // 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], extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1], ext_top_standoff[1],
top_height+ext_top_rear_right_adjust, top_height+ext_top_rear_right_adjust,
@@ -629,13 +662,16 @@ module case_top(case_design) {
ext_top_standoff[10], ext_top_standoff[10],
ext_top_standoff[11], ext_top_standoff[11],
ext_top_standoff[12]]; ext_top_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2), translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]); ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
} }
// extended right-front standoff // extended right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= ext_top_standoff_support_size &&
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) || depth-pcb_loc_y-pcb_depth >= ext_top_standoff_support_size) ||
(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) >= 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_front_right_enable == true) {
extended_standoff = [ext_top_standoff[0], extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1], ext_top_standoff[1],
@@ -650,12 +686,13 @@ module case_top(case_design) {
ext_top_standoff[10], ext_top_standoff[10],
ext_top_standoff[11], ext_top_standoff[11],
ext_top_standoff[12]]; ext_top_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)), translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),case_z]) depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)),case_z])
standoff(extended_standoff,[false,10,2,"default"]); standoff(extended_standoff,[false,10,2,"default"]);
} }
// extended left-rear standoff // extended left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true) { 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], extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1], ext_top_standoff[1],
top_height+ext_top_rear_left_adjust, top_height+ext_top_rear_left_adjust,
@@ -669,13 +706,16 @@ module case_top(case_design) {
ext_top_standoff[10], ext_top_standoff[10],
ext_top_standoff[11], ext_top_standoff[11],
ext_top_standoff[12]]; ext_top_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4, translate([ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]); ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
} }
// extended left-front standoff // extended left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) || if(((pcb_loc_x >= ext_top_standoff_support_size &&
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) || (depth-(pcb_loc_y+pcb_depth)) >= ext_top_standoff_support_size) ||
(pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) <= 10)) && (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_front_left_enable == true) {
extended_standoff = [ext_top_standoff[0], extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1], ext_top_standoff[1],
@@ -690,8 +730,8 @@ module case_top(case_design) {
ext_top_standoff[10], ext_top_standoff[10],
ext_top_standoff[11], ext_top_standoff[11],
ext_top_standoff[12]]; ext_top_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4, translate([ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)), case_z]) depth-ext_top_standoff_support_size/4-(2*(wallthick+gap)), case_z])
standoff(extended_standoff,[false,10,2,"default"]); standoff(extended_standoff,[false,10,2,"default"]);
} }
} }

View File

@@ -6956,14 +6956,14 @@
"multipcb_top_rear_right_enable": "true", "multipcb_top_rear_right_enable": "true",
"multipcb_top_rear_right_support": "rear", "multipcb_top_rear_right_support": "rear",
"multipcb_top_sidewall_support": "true", "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_hole_size": "2.75",
"multipcb_top_standoff_insert": "false", "multipcb_top_standoff_insert": "true",
"multipcb_top_standoff_insert_dia": "4.2", "multipcb_top_standoff_insert_dia": "3.4",
"multipcb_top_standoff_insert_height": "5.1", "multipcb_top_standoff_insert_height": "4",
"multipcb_top_standoff_pillar": "hex", "multipcb_top_standoff_pillar": "hex",
"multipcb_top_standoff_reverse": "true", "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_height": "4",
"multipcb_top_standoff_support_size": "8", "multipcb_top_standoff_support_size": "8",
"multipcb_top_standoff_type": "blind", "multipcb_top_standoff_type": "blind",
@@ -7000,12 +7000,12 @@
"top_sidewall_support": "true", "top_sidewall_support": "true",
"top_standoff_diameter": "5.75", "top_standoff_diameter": "5.75",
"top_standoff_hole_size": "2.75", "top_standoff_hole_size": "2.75",
"top_standoff_insert": "false", "top_standoff_insert": "true",
"top_standoff_insert_dia": "4.2", "top_standoff_insert_dia": "4.4",
"top_standoff_insert_height": "5.1", "top_standoff_insert_height": "4.1",
"top_standoff_pillar": "hex", "top_standoff_pillar": "hex",
"top_standoff_reverse": "true", "top_standoff_reverse": "true",
"top_standoff_size": "m3", "top_standoff_size": "custom",
"top_standoff_support_height": "4", "top_standoff_support_height": "4",
"top_standoff_support_size": "10", "top_standoff_support_size": "10",
"top_standoff_type": "blind", "top_standoff_type": "blind",
@@ -7096,16 +7096,16 @@
"ext_top_rear_right_enable": "true", "ext_top_rear_right_enable": "true",
"ext_top_rear_right_support": "rear", "ext_top_rear_right_support": "rear",
"ext_top_sidewall_support": "true", "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_hole_size": "2.75",
"ext_top_standoff_insert": "false", "ext_top_standoff_insert": "true",
"ext_top_standoff_insert_dia": "4.2", "ext_top_standoff_insert_dia": "3.4",
"ext_top_standoff_insert_height": "5.1", "ext_top_standoff_insert_height": "4",
"ext_top_standoff_pillar": "hex", "ext_top_standoff_pillar": "hex",
"ext_top_standoff_reverse": "true", "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_height": "4",
"ext_top_standoff_support_size": "10", "ext_top_standoff_support_size": "7",
"ext_top_standoff_type": "blind", "ext_top_standoff_type": "blind",
"ext_top_standoffs": "true", "ext_top_standoffs": "true",
"fan_size": "0", "fan_size": "0",
@@ -7172,16 +7172,16 @@
"multipcb_top_standoff_type": "blind", "multipcb_top_standoff_type": "blind",
"multipcb_top_standoffs": "false", "multipcb_top_standoffs": "false",
"pcb_loc_x": "0", "pcb_loc_x": "0",
"pcb_loc_y": "5", "pcb_loc_y": "7",
"pcb_loc_z": "0", "pcb_loc_z": "0",
"raise_top": "-1", "raise_top": "0",
"rear_io_shield": "false", "rear_io_shield": "false",
"sbc_bottom_standoffs": "true", "sbc_bottom_standoffs": "true",
"sbc_highlight": "false", "sbc_highlight": "false",
"sbc_information": "false", "sbc_information": "false",
"sbc_model": "cnano-avr128da48", "sbc_model": "cnano-avr128da48",
"sbc_off": "false", "sbc_off": "false",
"sbc_top_standoffs": "true", "sbc_top_standoffs": "false",
"sidethick": "2", "sidethick": "2",
"standard_motherboard_thickness": "0", "standard_motherboard_thickness": "0",
"text_color": "Green", "text_color": "Green",
@@ -7208,7 +7208,7 @@
"top_standoff_insert_height": "4", "top_standoff_insert_height": "4",
"top_standoff_pillar": "hex", "top_standoff_pillar": "hex",
"top_standoff_reverse": "true", "top_standoff_reverse": "true",
"top_standoff_size": "m2", "top_standoff_size": "m2.5",
"top_standoff_support_height": "4", "top_standoff_support_height": "4",
"top_standoff_support_size": "7", "top_standoff_support_size": "7",
"top_standoff_type": "blind", "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"], "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"], "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 // 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"], "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,85,0,"bottom",[0,0,270],["sbc",true,true,false],[61,35,1.65],[2],[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,24,11.5,"top",[0,180,270],["sbc-case_z",true,true,true],[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 // 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 // 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,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"], "add2","pcb_holder",52,26,0,"bottom",[0,0,90],["sbc",true,true,false],[26.5,35,1.65],[2],[false,10,2,"default"],