rewrote tray side attachment routine based on SBC standoff location
This commit is contained in:
@@ -79,35 +79,58 @@ module case_bottom(case_design) {
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0],bottom=[2,2,2,2], $fn=90);
|
||||
}
|
||||
// right side nut
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+10,
|
||||
floorthick+3.4]) rotate([90,0,90])
|
||||
cylinder(d=10, h=4, $fn=6);
|
||||
// left side nut
|
||||
translate([-adj-gap,wallthick+gap+10,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
if(depth >= 75 && sbc_model != "visionfive2" && sbc_model != "visionfive2q" &&
|
||||
sbc_model != "rock5b" && sbc_model != "rock5bq" && sbc_model != "rock5b-v1.3") {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,depth-wallthick-gap-10,
|
||||
floorthick+3.4]) rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
translate([-adj-gap,depth-wallthick-gap-10,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
else {
|
||||
if(sbc_model == "visionfive2" || sbc_model == "visionfive2q" || sbc_model == "rock5b" ||
|
||||
sbc_model == "rock5bq" || sbc_model == "rock5b-v1.3") {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+58,
|
||||
floorthick+3.4]) rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
translate([-adj-gap,wallthick+gap+58,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
// case nut placement
|
||||
for (i=[1:11:len(sbc_data[s[0]])-2]) {
|
||||
class = sbc_data[s[0]][i+1];
|
||||
type = sbc_data[s[0]][i+2];
|
||||
id = sbc_data[s[0]][i+3];
|
||||
pcbhole_x = sbc_data[s[0]][i+4]+pcb_loc_x;
|
||||
pcbhole_y = sbc_data[s[0]][i+5]+pcb_loc_y;
|
||||
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];
|
||||
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") {
|
||||
if(pcbhole_y <= 10) {
|
||||
translate([-adj-gap,wallthick+gap+10,floorthick+3.4]) rotate([90,0,90])
|
||||
cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([-adj-gap,wallthick+gap+2,floorthick+3.4]) rotate([90,0,90])
|
||||
cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+40,
|
||||
floorthick+3.4]) rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
translate([-adj-gap,wallthick+gap+40,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front") {
|
||||
if(pcbhole_y >= pcb_depth-10) {
|
||||
translate([-adj-gap,wallthick-gap+pcb_depth-14,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([-adj-gap,wallthick+gap+pcb_depth-8,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear") {
|
||||
if(pcbhole_y <= 10) {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+10,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+2,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
}
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front") {
|
||||
if(pcbhole_y >= pcb_depth-10) {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick-gap+pcb_depth-14,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([width-wallthick-gap-wallthick-4+adj,wallthick+gap+pcb_depth-8,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=10, h=4, $fn=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// front panel
|
||||
if(case_design == "tray_vu5" || case_design == "tray_vu7" || case_design == "tray_sides") {
|
||||
@@ -278,56 +301,73 @@ module case_bottom(case_design) {
|
||||
}
|
||||
}
|
||||
}
|
||||
// side attachment holes
|
||||
// tray side attachment holes
|
||||
if(case_design == "tray" || case_design == "tray_vu5" || case_design == "tray_vu7" || case_design == "tray_sides") {
|
||||
// right side bottom attachment holes
|
||||
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));
|
||||
// right side bottom nut inset
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+10,
|
||||
floorthick+3.4]) rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
// left side bottom attachment holes
|
||||
translate([-wallthick-gap-adj,wallthick+gap+10,floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
// left side bottom nut inset
|
||||
translate([-gap+.6,wallthick+gap+10,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
if(depth >= 75 && sbc_model != "visionfive2" && sbc_model != "visionfive2q" &&
|
||||
sbc_model != "rock5b" && sbc_model != "rock5bq" && sbc_model != "rock5b-v1.3") {
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,depth-wallthick-gap-10,
|
||||
floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-wallthick-gap-adj-6,depth-wallthick-gap-10,
|
||||
floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,depth-wallthick-gap-10,
|
||||
floorthick+3.4])rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
translate([-gap+.6,depth-wallthick-gap-10,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
else {
|
||||
if(sbc_model == "visionfive2" || sbc_model == "visionfive2q" || sbc_model == "rock5b" ||
|
||||
sbc_model == "rock5bq" || sbc_model == "rock5b-v1.3") {
|
||||
translate([width-3*(wallthick+gap)-adj,wallthick+gap+58,
|
||||
floorthick+3.4]) rotate([0,90,0])
|
||||
for (i=[1:11:len(sbc_data[s[0]])-2]) {
|
||||
class = sbc_data[s[0]][i+1];
|
||||
type = sbc_data[s[0]][i+2];
|
||||
id = sbc_data[s[0]][i+3];
|
||||
pcbhole_x = sbc_data[s[0]][i+4]+pcb_loc_x;
|
||||
pcbhole_y = sbc_data[s[0]][i+5]+pcb_loc_y;
|
||||
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];
|
||||
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") {
|
||||
if(pcbhole_y <= 10) {
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+10,floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+58,
|
||||
floorthick+3.4]) rotate([0,90,0])
|
||||
translate([-gap+.6,wallthick+gap+10,floorthick+3.4]) rotate([90,0,90])
|
||||
cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+2,floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+58,
|
||||
floorthick+3.4])rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
translate([-gap+.6,wallthick+gap+58,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
translate([-gap+.6,wallthick+gap+2,floorthick+3.4]) rotate([90,0,90])
|
||||
cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([width-3*(wallthick+gap)-adj,wallthick+gap+40,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+40,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+40,
|
||||
floorthick+3.4])rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
translate([-gap+.6,wallthick+gap+40,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front") {
|
||||
if(pcbhole_y >= pcb_depth-10) {
|
||||
translate([-wallthick-gap-adj-6,wallthick-gap+pcb_depth-14,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-gap+.6,wallthick-gap+pcb_depth-14,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+pcb_depth-8,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-gap+.6,wallthick+gap+pcb_depth-8,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
}
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear") {
|
||||
if(pcbhole_y <= 10) {
|
||||
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));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+10,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,wallthick+gap+2,floorthick+3.4])
|
||||
rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+2,floorthick+3.4])
|
||||
rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
}
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front") {
|
||||
if(pcbhole_y >= pcb_depth-10) {
|
||||
translate([width-3*(wallthick+gap)-adj,wallthick-gap+pcb_depth-14,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick-gap+pcb_depth-14,
|
||||
floorthick+3.4])rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
else {
|
||||
translate([width-3*(wallthick+gap)-adj,wallthick-gap+pcb_depth-8,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick-gap+pcb_depth-8,
|
||||
floorthick+3.4])rotate([90,0,90]) cylinder(d=6.6, h=3.5, $fn=6);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,32 +92,55 @@ module case_top(case_design) {
|
||||
cube_fillet_inside([width+1,depth+(wallthick*2),case_z],
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0],bottom=[0,0,0,0], $fn=90);
|
||||
// right side bottom attachment hole
|
||||
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));
|
||||
// left side bottom attachment hole
|
||||
translate([-2*(wallthick+gap)-sidethick-adj,wallthick+gap+10,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
if(depth >= 75 && sbc_model != "visionfive2" && sbc_model != "visionfive2q" &&
|
||||
sbc_model != "rock5b" && sbc_model != "rock5bq" && sbc_model != "rock5b-v1.3") {
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,depth-wallthick-gap-10,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-wallthick-gap-adj-6,depth-wallthick-gap-10,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
else {
|
||||
if(sbc_model == "visionfive2" || sbc_model == "visionfive2q" || sbc_model == "rock5b" ||
|
||||
sbc_model == "rock5bq" || sbc_model == "rock5b-v1.3") {
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,wallthick+gap+58,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+58,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
for (i=[1:11:len(sbc_data[s[0]])-2]) {
|
||||
class = sbc_data[s[0]][i+1];
|
||||
type = sbc_data[s[0]][i+2];
|
||||
id = sbc_data[s[0]][i+3];
|
||||
pcbhole_x = sbc_data[s[0]][i+4]+pcb_loc_x;
|
||||
pcbhole_y = sbc_data[s[0]][i+5]+pcb_loc_y;
|
||||
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];
|
||||
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear") {
|
||||
if(pcbhole_y <= 10) {
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+10,floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
else {
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+2,floorthick+3.4]) rotate([0,90,0])
|
||||
cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,wallthick+gap+40,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+40,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front") {
|
||||
if(pcbhole_y >= pcb_depth-10) {
|
||||
translate([-wallthick-gap-adj-6,wallthick-gap+pcb_depth-14,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
else {
|
||||
translate([-wallthick-gap-adj-6,wallthick+gap+pcb_depth-8,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
}
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear") {
|
||||
if(pcbhole_y <= 10) {
|
||||
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));
|
||||
}
|
||||
else {
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,wallthick+gap+2,floorthick+3.4])
|
||||
rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
}
|
||||
if(class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front") {
|
||||
if(pcbhole_y >= pcb_depth-10) {
|
||||
translate([width-3*(wallthick+gap)-adj,wallthick-gap+pcb_depth-14,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
else {
|
||||
translate([width-3*(wallthick+gap)-adj,wallthick-gap+pcb_depth-8,
|
||||
floorthick+3.4]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -351,7 +374,6 @@ module case_top(case_design) {
|
||||
}
|
||||
}
|
||||
// pcb standoffs
|
||||
|
||||
if(sbc_top_standoffs == true) {
|
||||
for (i=[1:11:len(sbc_data[s[0]])-2]) {
|
||||
class = sbc_data[s[0]][i+1];
|
||||
|
||||
@@ -426,9 +426,9 @@ if (view == "platter") {
|
||||
add(type, loc_x, loc_y, loc_z, face, rotation, [size_x, size_y, size_z], [data_1, data_2, data_3, data_4], mask);
|
||||
}
|
||||
if (class == "platter" && type == "button_top") {
|
||||
translate([loc_x,loc_y,loc_z+1.25]) rotate([-90,0,0]) button_plunger(data_3, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-10,loc_z+3]) rotate([0,0,0]) button_top(data_3, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-20,loc_z]) rotate([0,0,0]) button_clip(data_3);
|
||||
translate([loc_x,loc_y,loc_z+1.25]) rotate([-90,0,0]) button_plunger(data_1, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-10,loc_z+3]) rotate([0,0,0]) button_top(data_1, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-20,loc_z]) rotate([0,0,0]) button_clip(data_1);
|
||||
}
|
||||
if (class == "platter" && type == "h3_port_extender_holder") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate([0,0,0]) h3_port_extender_holder("bottom");
|
||||
@@ -862,9 +862,9 @@ if (view == "part") {
|
||||
add(type, loc_x, loc_y, loc_z, face, rotation, [size_x, size_y, size_z], [data_1, data_2, data_3, data_4], mask);
|
||||
}
|
||||
if (class == "platter" && type == "button_top") {
|
||||
translate([loc_x,loc_y,loc_z+1.25]) rotate([-90,0,0]) button_plunger(data_3, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-10,loc_z+3]) rotate([0,0,0]) button_top(data_3, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-20,loc_z]) rotate([0,0,0]) button_clip(data_3);
|
||||
translate([loc_x,loc_y,loc_z+1.25]) rotate([-90,0,0]) button_plunger(data_1, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-10,loc_z+3]) rotate([0,0,0]) button_top(data_1, size_x, size_z);
|
||||
translate([loc_x-20,loc_y-20,loc_z]) rotate([0,0,0]) button_clip(data_1);
|
||||
}
|
||||
if (class == "platter" && type == "h3_port_extender_holder") {
|
||||
translate([loc_x,loc_y,loc_z]) rotate([0,0,0]) h3_port_extender_holder("bottom");
|
||||
|
||||
Reference in New Issue
Block a user