fixed spacer and right side placment issue, updated readme.md, code cleanup and example case accessories
This commit is contained in:
@@ -87,13 +87,13 @@ case_offset_tz = 0; //[-30:.01:300]
|
||||
// additional z axis case bottom size
|
||||
case_offset_bz = 0; //[0:.01:300]
|
||||
// case wall thickness
|
||||
wallthick = 2; //[1:.01:5]
|
||||
wallthick = 2; //[1:.25:5]
|
||||
// case floor and ceiling thickness
|
||||
floorthick = 2; //[1:.01:5]
|
||||
floorthick = 2; //[1:.25:5]
|
||||
// side wall thickness for tray_side and panel_nas cases only
|
||||
sidethick = 2; //[1:.01:5]
|
||||
sidethick = 2; //[1:.25:5]
|
||||
// distance between pcb and case
|
||||
gap = 1; //[.5:.01:5]
|
||||
gap = 1; //[.5:.25:5]
|
||||
// corner fillets
|
||||
corner_fillet = 3; //[0:.5:9]
|
||||
// edge fillets
|
||||
@@ -111,14 +111,16 @@ bottom_cover_pattern = "solid"; //[solid,hex_5mm,hex_8mm,linear_vertical,linear_
|
||||
// heatsink opening
|
||||
cooling = "default"; // [default,none,open,fan_open,fan_1,fan_2,fan_hex,vent,vent_hex_5mm,vent_hex_8mm,custom]
|
||||
fan_size = 0; // [0,25,30,40,50,60,70,80,92]
|
||||
// rear fan number for nas cases
|
||||
// number of rear fans 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 z-axis position
|
||||
rear_fan_position = 0; // [0:1:300]
|
||||
// space between dual rear fans
|
||||
rear_dualfan_spacing = 6; // [0:1:50]
|
||||
|
||||
/* [Bottom Access Panel] */
|
||||
@@ -137,18 +139,19 @@ uart_opening = "default"; // [default,none,open,knockout]
|
||||
indents = true;
|
||||
// nas sbc location
|
||||
nas_sbc_location = "top"; // ["top","bottom"]
|
||||
// number of nas drive bays
|
||||
hd_bays = 2; // [1:6]
|
||||
// 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]
|
||||
// distance between drives
|
||||
hd_space = 10; // [1:50]
|
||||
hd_y_position = 25; // [0:300]
|
||||
hd_z_position = 40; // [0:300]
|
||||
hd_space = 10; // [1:50]
|
||||
|
||||
// case accessory group to load
|
||||
accessory_name = "none"; // ["none", "hk_uart", "nas", "c4_shell_boombox", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_panel_lcd3.5", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_shifter_shield", "xu4_keyhole", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "hc4_tray_drivebox2.5", "m2_shell", "m2_eyespi_eink1.54", "m2_eyespi_lcd2.8", "m1s_shell_nvme", "m1s_shell_ups", "m1s_tray_nvme", "m1_tray_ssd", "m1_fitted_pizzabox2.5", "m1_fitted_pizzabox3.5", "h3_shell", "h3_shell_router", "h3_lowboy", "h3_lowboy_router", "h3_ultimate", "h3_ultimate2", "show2_shell", "rpi5_m2hat", "rock5b", "adapter_mini-stx_m1s", "cs_solarmeter", "n2l_env_sensors", "avr_env_sensors", "adafruit_solar_charger"]
|
||||
accessory_name = "none"; // ["none", "hk_uart", "c4_shell_boombox", "c4_desktop_lcd3.5", "c4_deskboom_lcd3.5", "c4_panel_boombox", "c4_panel_lcd3.5", "c4_tray_boombox", "c4_round", "c4_hex", "xu4_shifter_shield", "xu4_keyhole", "hc4_panel_nas", "hc4_shell_drivebox2.5", "hc4_shell_drivebox2.5v", "hc4_shell_drivebox3.5", "hc4_tray_drivebox2.5", "m2_shell", "m2_eyespi_eink1.54", "m2_eyespi_lcd2.8", "m1s_shell_nvme", "m1s_shell_ups", "m1s_tray_nvme", "m1_tray_ssd", "m1_fitted_pizzabox2.5", "m1_fitted_pizzabox3.5", "h3_shell", "h3_shell_router", "h3_lowboy", "h3_lowboy_router", "h3_panel_nas", "h3_ultimate", "h3_ultimate2", "h4_panel_nas", "show2_shell", "rpi5_m2hat", "rock5b", "adapter_mini-stx_m1s", "nas", "cs_solarmeter", "n2l_env_sensors", "avr_env_sensors", "adafruit_solar_charger"]
|
||||
// sbc information text color
|
||||
text_color = "Green"; // [Green, Black, Dimgrey, White, Yellow, Orange, Red, DarkbBlue]
|
||||
// sbc information text font
|
||||
@@ -377,14 +380,17 @@ pcb_color = sbc_data[s[0]][11][1];
|
||||
pcb_radius = sbc_data[s[0]][11][0];
|
||||
|
||||
pcb_z = sbc_model == "ssi-eeb" || sbc_model == "ssi-ceb" || sbc_model == "atx" || sbc_model == "micro-atx" || sbc_model == "dtx" || sbc_model == "flex-atx" || sbc_model == "mini-dtx" || sbc_model == "mini-itx" || sbc_model == "mini-itx_thin" || sbc_model == "mini-stx" || sbc_model == "mini-stx_thin" || sbc_model == "nano-itx" || sbc_model == "nuc" || sbc_model == "pico-itx" ? pcb_z_orig + standard_motherboard_thickness : pcb_z_orig;
|
||||
width = case_design == "panel_nas" && pcb_width <= 100 ? pcb_width+(2*(sidethick+gap))+case_offset_x+(101.6-pcb_width) : case_design == "panel_nas" && pcb_width > 100 ? pcb_width+(2*(sidethick+gap))+case_offset_x+(3*gap) : pcb_width+(2*(wallthick+gap))+case_offset_x;
|
||||
width = case_design == "panel_nas" && pcb_width <= 100 ? pcb_width+2*(sidethick+gap)+case_offset_x+(101.6-pcb_width) : case_design == "panel_nas" && pcb_width > 100 ? pcb_width+2*(sidethick+gap)+case_offset_x : pcb_width+(2*(wallthick+gap))+case_offset_x;
|
||||
depth = case_design == "panel_nas" ? pcb_depth+2*(wallthick+gap)+case_offset_y + 147-pcb_depth+hd_y_position : pcb_depth+2*(wallthick+gap)+case_offset_y;
|
||||
top_height = pcb_tmaxz+floorthick+case_offset_tz+pcb_loc_z;
|
||||
bottom_height = (case_design == "tray" || case_design == "tray_vu5" || case_design == "tray_vu7" || case_design == "tray_sides") ? pcb_z+pcb_bmaxz+floorthick+case_offset_bz+4 : pcb_z+pcb_bmaxz+floorthick+case_offset_bz;
|
||||
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;
|
||||
//hd_spacer = case_design == "panel_nas" && pcb_width > 100 ? (pcb_width+case_offset_x+2*gap)-101.6 :
|
||||
// case_design == "panel_nas" && pcb_width <= 100 ? (width-2*(sidethick+gap)-101.6) : 0;
|
||||
hd_spacer = case_design == "panel_nas" && pcb_width > 100 ? (pcb_width+case_offset_x+2*gap)-101.6 :
|
||||
case_design == "panel_nas" && pcb_width <= 100 ? (width-2*(sidethick+gap)-101.6) : 0;
|
||||
|
||||
/* [Hidden] */
|
||||
top_standoff = [top_standoff_size,
|
||||
@@ -486,12 +492,12 @@ if (view == "platter") {
|
||||
translate([width+25,0,-gap]) rotate([-90,0,0]) case_side(case_design,"rear");
|
||||
translate([width+25,2*(case_z)+10,-depth+wallthick+gap+floorthick])
|
||||
rotate([90,0,0]) case_side(case_design,"front");
|
||||
translate([2.5*width,0,-width+(2*wallthick)+gap]) rotate([0,-90,-90])
|
||||
translate([2.5*width,0,-width+(3*sidethick)+gap]) rotate([0,-90,-90])
|
||||
case_side(case_design,"right");
|
||||
translate([-20,0,-gap]) rotate([0,90,90])
|
||||
case_side(case_design,"left");
|
||||
// nas hd spacers
|
||||
if(case_design == "panel_nas" && pcb_width > 100) {
|
||||
if(case_design == "panel_nas" && (pcb_width > 100 || width > 101.6)) {
|
||||
if(hd_center == false) {
|
||||
translate([0,-35,0]) rotate([270,0,0]) cableholder_spacer(hd_spacer-9.4);
|
||||
}
|
||||
@@ -693,18 +699,18 @@ if (view == "model") {
|
||||
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,
|
||||
if(pcb_width > 100 || width > 101.6) {
|
||||
translate([101.6-gap+hd_spacer-9.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,
|
||||
translate([101.6-gap+hd_spacer-9.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,
|
||||
translate([101.6-gap+hd_spacer-9.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);
|
||||
@@ -714,64 +720,79 @@ if (view == "model") {
|
||||
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,
|
||||
if(pcb_width > 100 || width > 101.6) {
|
||||
// right side spacers
|
||||
translate([101.6-gap+hd_spacer-9.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);
|
||||
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,
|
||||
translate([101.6-gap+hd_spacer-9.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);
|
||||
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,
|
||||
translate([101.6-gap+hd_spacer-9.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);
|
||||
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,
|
||||
28.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);
|
||||
|
||||
translate([-(hd_spacer/2-9.4)-gap+hd_spacer/2,
|
||||
-31-(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,
|
||||
-73-(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(hd_reverse == true) {
|
||||
if(hd_center == false) {
|
||||
translate([-gap+101.6,-(3*wallthick)-gap+hd_y_position+147,
|
||||
translate([101.6-gap,-(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,
|
||||
if(pcb_width > 100 || width > 101.6) {
|
||||
translate([101.6-gap+hd_spacer-9.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+hd_spacer-11.4,
|
||||
translate([101.6-gap+hd_spacer-9.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+hd_spacer-11.4,
|
||||
translate([101.6-gap+hd_spacer-9.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,
|
||||
translate([101.6-gap+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) {
|
||||
if(pcb_width > 100 || width > 101.6) {
|
||||
// right side spacers
|
||||
translate([101.6-gap+wallthick+hd_spacer-11.4,
|
||||
translate([101.6-gap+hd_spacer-9.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,
|
||||
translate([101.6-gap+hd_spacer-9.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,
|
||||
translate([101.6-gap+hd_spacer-9.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);
|
||||
@@ -794,28 +815,30 @@ if (view == "model") {
|
||||
}
|
||||
}
|
||||
}
|
||||
fan_model = rear_fan_size == 92 ? "box92x10" : rear_fan_size == 80 ? "box80x10" : rear_fan_size == 60 ? "box60x10" : "box40x10";
|
||||
if(rear_fan == 1 || rear_fan == 2) {
|
||||
if(rear_fan_center == false) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,10-wallthick,rear_fan_position])
|
||||
rotate([90,0,0]) fans(fan_model,[false,0,0,"default"]);
|
||||
}
|
||||
if(rear_fan_center == true) {
|
||||
translate([-1+(101.6-rear_fan_size)/2+(width-2*(sidethick+gap)-101.6)/2,
|
||||
10-wallthick,rear_fan_position]) rotate([90,0,0])
|
||||
fans(fan_model,[false,0,0,"default"]);
|
||||
}
|
||||
}
|
||||
if(rear_fan == 2) {
|
||||
if(rear_fan_center == false) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,10-wallthick,
|
||||
rear_fan_position+rear_dualfan_spacing+rear_fan_size])
|
||||
if(move_rear >= 0) {
|
||||
fan_model = rear_fan_size == 92 ? "box92x10" : rear_fan_size == 80 ? "box80x10" : rear_fan_size == 60 ? "box60x10" : "box40x10";
|
||||
if(rear_fan == 1 || rear_fan == 2) {
|
||||
if(rear_fan_center == false) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,10-wallthick,rear_fan_position])
|
||||
rotate([90,0,0]) fans(fan_model,[false,0,0,"default"]);
|
||||
}
|
||||
if(rear_fan_center == true) {
|
||||
translate([-1+(101.6-rear_fan_size)/2+(width-2*(sidethick+gap)-101.6)/2,
|
||||
10-wallthick,rear_fan_position]) rotate([90,0,0])
|
||||
fans(fan_model,[false,0,0,"default"]);
|
||||
}
|
||||
}
|
||||
if(rear_fan_center == true) {
|
||||
translate([-1+(101.6-rear_fan_size)/2+(width-2*(sidethick+gap)-101.6)/2,
|
||||
10-wallthick,rear_fan_position+rear_dualfan_spacing+rear_fan_size])
|
||||
rotate([90,0,0]) fans(fan_model,[false,0,0,"default"]);
|
||||
if(rear_fan == 2) {
|
||||
if(rear_fan_center == false) {
|
||||
translate([-1+(101.6-rear_fan_size)/2,10-wallthick,
|
||||
rear_fan_position+rear_dualfan_spacing+rear_fan_size])
|
||||
rotate([90,0,0]) fans(fan_model,[false,0,0,"default"]);
|
||||
}
|
||||
if(rear_fan_center == true) {
|
||||
translate([-1+(101.6-rear_fan_size)/2+(width-2*(sidethick+gap)-101.6)/2,
|
||||
10-wallthick,rear_fan_position+rear_dualfan_spacing+rear_fan_size])
|
||||
rotate([90,0,0]) fans(fan_model,[false,0,0,"default"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1129,7 +1152,7 @@ if (view == "part") {
|
||||
}
|
||||
if(individual_part == "accessories") {
|
||||
// nas hd spacers
|
||||
if(case_design == "panel_nas" && pcb_width > 100) {
|
||||
if(case_design == "panel_nas" && (pcb_width > 100 || width > 101.6)) {
|
||||
rotate([270,0,0]) cableholder_spacer(hd_spacer-9.4);
|
||||
}
|
||||
// ui access panel
|
||||
@@ -1191,7 +1214,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(width=width+hd_spacer,depth=depth,top=top_height,bottom=bottom_height, height=case_z+(3*wallthick));
|
||||
echo(drive_spacer=hd_spacer);
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user