for sbc wider then 100mm, added option to center hd positions on x axis using dual spacers
This commit is contained in:
@@ -148,12 +148,25 @@ module case_side(case_design, side) {
|
||||
cube([sidethick+(2*adj),wallthick,10]);
|
||||
}
|
||||
if(rear_fan == 1 || rear_fan == 2) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,-1,rear_fan_position])
|
||||
rotate([90,0,0]) fan_mask(rear_fan_size, wallthick+2, rear_cooling);
|
||||
if(rear_fan_center == false) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,-1,rear_fan_position])
|
||||
rotate([90,0,0]) fan_mask(rear_fan_size, wallthick+2, rear_cooling);
|
||||
}
|
||||
if(rear_fan_center == true) {
|
||||
translate([-1+(101.6-rear_fan_size)/2+(width-2*(sidethick+gap)-101.6)/2,-1,rear_fan_position])
|
||||
rotate([90,0,0]) fan_mask(rear_fan_size, wallthick+2, rear_cooling);
|
||||
}
|
||||
}
|
||||
if(rear_fan == 2) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,-1,rear_fan_position+3+rear_fan_size])
|
||||
rotate([90,0,0]) fan_mask(rear_fan_size, wallthick+2, rear_cooling);
|
||||
if(rear_fan_center == false) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,-1,rear_fan_position+rear_dualfan_spacing+rear_fan_size])
|
||||
rotate([90,0,0]) fan_mask(rear_fan_size, wallthick+2, rear_cooling);
|
||||
}
|
||||
if(rear_fan_center == true) {
|
||||
translate([-1+(101.6-rear_fan_size)/2+(width-2*(sidethick+gap)-101.6)/2,
|
||||
-1,rear_fan_position+rear_dualfan_spacing+rear_fan_size])
|
||||
rotate([90,0,0]) fan_mask(rear_fan_size, wallthick+2, rear_cooling);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9686,6 +9686,7 @@
|
||||
"gap": "1",
|
||||
"gpio_opening": "default",
|
||||
"hd_bays": "2",
|
||||
"hd_reverse": "false",
|
||||
"hd_space": "10",
|
||||
"hd_y_position": "40",
|
||||
"hd_z_position": "55",
|
||||
@@ -9753,7 +9754,9 @@
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_cooling": "fan_hex",
|
||||
"rear_dualfan_spacing": "6",
|
||||
"rear_fan": "1",
|
||||
"rear_fan_center": "false",
|
||||
"rear_fan_position": "42",
|
||||
"rear_fan_size": "80",
|
||||
"rear_io_shield": "false",
|
||||
@@ -9967,7 +9970,9 @@
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_cooling": "fan_hex",
|
||||
"rear_dualfan_spacing": "6",
|
||||
"rear_fan": "1",
|
||||
"rear_fan_center": "false",
|
||||
"rear_fan_position": "4",
|
||||
"rear_fan_size": "80",
|
||||
"rear_io_shield": "false",
|
||||
@@ -10113,6 +10118,7 @@
|
||||
"gap": "1",
|
||||
"gpio_opening": "none",
|
||||
"hd_bays": "4",
|
||||
"hd_center": "true",
|
||||
"hd_reverse": "true",
|
||||
"hd_space": "10",
|
||||
"hd_y_position": "16",
|
||||
@@ -10181,7 +10187,9 @@
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"rear_cooling": "fan_hex",
|
||||
"rear_dualfan_spacing": "4",
|
||||
"rear_fan": "2",
|
||||
"rear_fan_center": "true",
|
||||
"rear_fan_position": "4",
|
||||
"rear_fan_size": "80",
|
||||
"rear_io_shield": "false",
|
||||
|
||||
@@ -113,10 +113,13 @@ cooling = "default"; // [default,none,open,fan_open,fan_1,fan_2,fan_hex,vent,ven
|
||||
fan_size = 0; // [0,25,30,40,50,60,70,80,92]
|
||||
// rear fan number for nas cases
|
||||
rear_fan = 1; // [1:2]
|
||||
// rear fan x-axis center
|
||||
rear_fan_center = false; // [true,false]
|
||||
// rear fan opening
|
||||
rear_cooling = "fan_hex"; // [fan_open,fan_1,fan_2,fan_hex,custom]
|
||||
rear_fan_size = 80; // [0,25,30,40,50,60,70,80,92]
|
||||
rear_fan_position = 0; // [0:1:300]
|
||||
rear_dualfan_spacing = 6; // [0:1:50]
|
||||
|
||||
/* [Bottom Access Panel] */
|
||||
bottom_access_panel_enable = false;
|
||||
@@ -136,6 +139,8 @@ indents = true;
|
||||
nas_sbc_location = "top"; // ["top","bottom"]
|
||||
// rotate hd 180 degrees in the z-axis
|
||||
hd_reverse = false; // [true, false]
|
||||
// center hd in the x-axis
|
||||
hd_center = false; // [true, false]
|
||||
// number of nas drive bays
|
||||
hd_bays = 2; // [1:6]
|
||||
hd_y_position = 25; // [0:300]
|
||||
@@ -379,6 +384,7 @@ bottom_height = (case_design == "tray" || case_design == "tray_vu5" || case_desi
|
||||
case_z = case_design == "panel_nas" ? bottom_height+top_height+hd_z_position+(hd_bays * (hd_space + 26.1)) : bottom_height+top_height;
|
||||
case_diameter = sqrt(pow(width-wallthick-gap,2)+pow(depth-wallthick-gap,2));
|
||||
hex_diameter = sqrt(pow(width+2*(wallthick+gap),2)+pow(depth+2*(wallthick+gap),2));
|
||||
hd_spacer = case_design == "panel_nas" ? (width-2*(sidethick+gap)-101.6) : 0;
|
||||
|
||||
/* [Hidden] */
|
||||
top_standoff = [top_standoff_size,
|
||||
@@ -675,44 +681,107 @@ if (view == "model") {
|
||||
}
|
||||
for( i=[0:1:hd_bays-1]) {
|
||||
if(hd_reverse == false) {
|
||||
translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i])
|
||||
hd35("portrait", [false,0,0,"default"]);
|
||||
if(pcb_width > 100) {
|
||||
translate([101.6-gap+wallthick+(width-2*(sidethick+gap)-101.6)-11.4,
|
||||
28.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer((width-2*(sidethick+gap)-101.6)-9.4);
|
||||
if(hd_center == false) {
|
||||
translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i])
|
||||
hd35("portrait", [false,0,0,"default"]);
|
||||
if(pcb_width > 100) {
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
28.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+(width-2*(sidethick+gap)-101.6)-11.4,
|
||||
-31-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer((width-2*(sidethick+gap)-101.6)-9.4);
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-31-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+(width-2*(sidethick+gap)-101.6)-11.4,
|
||||
-73-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer((width-2*(sidethick+gap)-101.6)-9.4);
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-73-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
}
|
||||
}
|
||||
if(hd_center == true) {
|
||||
translate([-gap+hd_spacer/2,
|
||||
-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i])
|
||||
hd35("portrait", [false,0,0,"default"]);
|
||||
if(pcb_width > 100) {
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
28.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-31-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-73-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
translate([-gap+101.6,-(3*wallthick)-gap+hd_y_position+147,
|
||||
hd_z_position+(hd_space+27.1)*i])
|
||||
rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]);
|
||||
if(pcb_width > 100) {
|
||||
translate([101.6-gap+wallthick+(width-2*(sidethick+gap)-101.6)-11.4,
|
||||
17-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer((width-2*(sidethick+gap)-101.6)-9.4);
|
||||
if(hd_center == false) {
|
||||
translate([-gap+101.6,-(3*wallthick)-gap+hd_y_position+147,
|
||||
hd_z_position+(hd_space+27.1)*i])
|
||||
rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]);
|
||||
if(pcb_width > 100) {
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
17-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+(width-2*(sidethick+gap)-101.6)-11.4,
|
||||
-25-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer((width-2*(sidethick+gap)-101.6)-9.4);
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-25-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+(width-2*(sidethick+gap)-101.6)-11.4,
|
||||
-84.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer((width-2*(sidethick+gap)-101.6)-9.4);
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-84.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer-9.4);
|
||||
}
|
||||
}
|
||||
if(hd_center == true) {
|
||||
translate([-gap+101.6+hd_spacer/2,
|
||||
-(3*wallthick)-gap+hd_y_position+147,
|
||||
hd_z_position+(hd_space+27.1)*i])
|
||||
rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]);
|
||||
if(pcb_width > 100) {
|
||||
// right side spacers
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
17-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer/2-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-25-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer/2-9.4);
|
||||
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
-84.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i])
|
||||
cableholder_spacer(hd_spacer/2-9.4);
|
||||
// left side spacers
|
||||
translate([-(hd_spacer/2-9.4)-gap+hd_spacer/2,
|
||||
17-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i]) rotate([0,0,180])
|
||||
cableholder_spacer(hd_spacer/2-9.4);
|
||||
|
||||
translate([-(hd_spacer/2-9.4)-gap+hd_spacer/2,
|
||||
-25-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i]) rotate([0,0,180])
|
||||
cableholder_spacer(hd_spacer/2-9.4);
|
||||
|
||||
translate([-(hd_spacer/2-9.4)-gap+hd_spacer/2,
|
||||
-84.5-(3*wallthick)-gap+hd_y_position+101.6,
|
||||
hd_z_position+6.5+(hd_space+27.1)*i]) rotate([0,0,180])
|
||||
cableholder_spacer(hd_spacer/2-9.4);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1086,6 +1155,7 @@ if(case_design == "tray" || case_design == "tray_vu5" || case_design == "tray_vu
|
||||
else {
|
||||
if(case_design == "panel_nas") {
|
||||
echo(width=width+(101.6-width+(2*sidethick)),depth=depth,top=top_height,bottom=bottom_height, height=case_z+(3*wallthick));
|
||||
echo(drive_spacer=hd_spacer);
|
||||
}
|
||||
else {
|
||||
echo(width=width,depth=depth,top=top_height,bottom=bottom_height);
|
||||
|
||||
Reference in New Issue
Block a user