new case panel_nas initial work

This commit is contained in:
Edward Kisiel
2025-04-06 12:40:01 -04:00
parent 1d97917d46
commit cd2e77acc9
7 changed files with 389 additions and 13 deletions

View File

@@ -614,7 +614,7 @@ module hd35_vtab(side) {
DESCRIPTION: creates 2.5" and 3.5" hard drive hole mask for mounting
TODO: none
USAGE: hd_bottom_holes(hd, orientation, side, thick)
USAGE: hd_holes(hd, orientation, side, thick)
hd = 2.5, 3.5
orientation = "portrait", "landscape"

View File

@@ -62,6 +62,20 @@ module case_bottom(case_design) {
cube([8,wallthick+2*adj,floorthick]);
}
}
if(case_design == "panel_nas") {
union() {
translate([-gap,-gap,0])
cube([width-(2*wallthick)+(101.6-width+(2*wallthick)),depth-(2*wallthick),floorthick]);
translate([(width*(1/5))-8-(wallthick+gap),depth-(2*wallthick)-gap-adj,0])
cube([8,wallthick+2*adj,floorthick]);
translate([width-(width*(1/5))-(wallthick+gap),depth-(2*wallthick)-gap-adj,0])
cube([8,wallthick+2*adj,floorthick]);
translate([(width*(1/5))-8-(wallthick+gap),-wallthick-gap+adj,0])
cube([8,wallthick+2*adj,floorthick]);
translate([width-(width*(1/5))-(wallthick+gap),-wallthick-gap+adj,0])
cube([8,wallthick+2*adj,floorthick]);
}
}
if(case_design == "stacked") {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick/2])
cube_fillet_inside([width-(2*wallthick),depth-(2*wallthick),floorthick],

View File

@@ -128,6 +128,106 @@ module case_side(case_design, side) {
}
}
}
if(case_design == "panel_nas") {
if(side == "rear") {
difference() {
union() {
translate([-gap,-wallthick-gap,-floorthick])
cube([width-2*wallthick+(101.6-width+(2*(wallthick+gap))),wallthick,case_z+2*floorthick]);
// right hook
difference() {
translate([width-(2*wallthick)-gap-adj,-wallthick-gap,
((case_z)/2)-4])
cube([(2*wallthick)+.5,wallthick,8]);
translate([width-(2*wallthick)-gap-adj,-wallthick-gap-adj,
((case_z)/2)-4-adj])
cube([wallthick+.25,wallthick+(2*adj),4.25]);
}
// left hook
difference() {
translate([-(2*wallthick)-gap-adj-.25,-wallthick-gap,
((case_z)/2)-4])
cube([(2*wallthick)+.5,wallthick,8]);
translate([-wallthick-gap-adj-.25,-wallthick-gap-adj,
((case_z)/2)-4-adj])
cube([wallthick+.25,wallthick+(2*adj),4.25]);
}
}
// top slots
translate([(width*(1/5))-8.25-(wallthick+gap),-wallthick-gap-adj,
case_z-floorthick-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
translate([width-(width*(1/5))-(wallthick+gap)-.25,-wallthick-gap-adj,
case_z-floorthick-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
// bottom slots
translate([(width*(1/5))-8.25-(wallthick+gap),-wallthick-gap-adj,-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
translate([width-(width*(1/5))-(wallthick+gap)-.25,-wallthick-gap-adj,-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
}
}
if(side == "front") {
difference() {
union() {
translate([-gap,depth-2*(wallthick)-gap,-floorthick])
cube([width-2*wallthick+(101.6-width+(2*(wallthick+gap))),wallthick,case_z+2*floorthick]);
// right hook
difference() {
translate([width-(2*wallthick)-gap-adj,depth-2*(wallthick)-gap-adj,
((case_z)/2)-4])
cube([(2*wallthick)+.5,wallthick,8]);
translate([width-(2*wallthick)-gap-adj,
depth-2*(wallthick)-adj-gap-adj,((case_z)/2)-4-adj])
cube([wallthick+.25,wallthick+(2*adj),4.25]);
}
// left hook
difference() {
translate([-(2*wallthick)-gap-adj-.25,depth-2*(wallthick)-gap-adj,(
(case_z)/2)-4])
cube([(2*wallthick)+.5,wallthick,8]);
translate([-wallthick-gap-adj-.25,depth-2*(wallthick)-adj-gap-adj,
((case_z)/2)-4-adj])
cube([wallthick+.25,wallthick+(2*adj),4.25]);
}
}
// top slots
translate([(width*(1/5))-8.25-(wallthick+gap),depth-2*wallthick-gap-adj,
case_z-floorthick-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
translate([width-(width*(1/5))-(wallthick+gap)-.25,depth-2*wallthick-gap-adj,
case_z-floorthick-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
// bottom slots
translate([(width*(1/5))-8.25-(wallthick+gap),depth-2*wallthick-gap-adj,-.25])
cube([8.5,wallthick+2*adj,floorthick+.5]);
translate([width-(width*(1/5))-(wallthick+gap)-.25,
depth-2*wallthick-gap-adj,-.25]) cube([8.5,wallthick+2*adj,floorthick+.5]);
}
}
if(side == "right") {
difference() {
translate([width-(2*wallthick)-gap+(101.6-width+(2*wallthick)),-(2*wallthick)-gap,-wallthick])
cube([wallthick,depth+2*wallthick,case_z+(2*wallthick)]);
translate([width-(2*wallthick)-gap-adj,-wallthick-gap-.25,
((case_z)/2)]) cube([wallthick+2*adj,wallthick+.5,8.5]);
translate([width-(2*wallthick)-gap-adj,depth-2*(wallthick)-gap-.25,
((case_z)/2)])
cube([wallthick+2*adj,wallthick+.5,8.5]);
}
}
if(side == "left") {
difference() {
translate([-wallthick-gap,-(2*wallthick)-gap,-wallthick])
cube([wallthick,depth+2*wallthick,case_z+(2*wallthick)]);
translate([-wallthick-gap-adj,-wallthick-gap-.25,((case_z)/2)])
cube([wallthick+2*adj,wallthick+.5,8.5]);
translate([-wallthick-gap-adj,depth-2*(wallthick)-gap-.25,
((case_z)/2)])
cube([wallthick+2*adj,wallthick+.5,8.5]);
}
}
}
if(case_design == "tray_sides") {
if(side == "right") {
difference() {

View File

@@ -70,6 +70,24 @@ module case_top(case_design) {
cube([8,wallthick+2*adj,floorthick]);
}
}
if(case_design == "panel_nas") {
union() {
translate([-gap,-gap,case_z-floorthick])
cube([width-(2*wallthick)+(101.6-width+(2*wallthick)),depth-(2*wallthick),floorthick]);
translate([(width*(1/5))-8-(wallthick+gap),depth-(2*wallthick)-gap-adj,
case_z-floorthick])
cube([8,wallthick+2*adj,floorthick]);
translate([width-(width*(1/5))-(wallthick+gap),depth-(2*wallthick)-gap-adj,
case_z-floorthick])
cube([8,wallthick+2*adj,floorthick]);
translate([(width*(1/5))-8-(wallthick+gap),-wallthick-gap+adj,
case_z-floorthick])
cube([8,wallthick+2*adj,floorthick]);
translate([width-(width*(1/5))-(wallthick+gap),-wallthick-gap+adj,
case_z-floorthick])
cube([8,wallthick+2*adj,floorthick]);
}
}
if(case_design == "stacked") {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,
case_z-(floorthick/2)])
@@ -316,19 +334,23 @@ module case_top(case_design) {
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_rear" &&
top_rear_left_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)]) cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)])
cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
}
if (class == "pcbhole" && id == 0 && pcbhole_pos == "left_front" &&
top_front_left_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)]) cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)])
cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
}
if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_rear" &&
top_rear_right_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)]) cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)])
cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
}
if (class == "pcbhole" && id == 0 && pcbhole_pos == "right_front" &&
top_front_right_enable == true && top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)]) cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
translate([pcbhole_x,pcbhole_y,case_z-(floorthick+adj)])
cylinder(d=top_standoff[4]-.2, h=floorthick+(2*adj));
}
}
}
@@ -800,10 +822,12 @@ module case_top(case_design) {
// create openings for additive
if((class == "add1" || class == "add2" || class == "model") && mask[0] == true) {
if(accessory_highlight == false) {
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,[size_x,size_y,size_z],data,mask);
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,
parametric,[size_x,size_y,size_z],data,mask);
}
else {
#parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,[size_x,size_y,size_z],data,mask);
#parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,
parametric,[size_x,size_y,size_z],data,mask);
}
}
}
@@ -837,7 +861,8 @@ module case_top(case_design) {
side = sbc_data[s[0]][i+7];
rotation = sbc_data[s[0]][i+8];
if(id == pcbid) {
indent(loc_x, loc_y, bottom_height+loc_z-adj, rotation[2], side, class, type, wallthick, gap, floorthick, pcb_z);
indent(loc_x, loc_y, bottom_height+loc_z-adj, rotation[2],
side, class, type, wallthick, gap, floorthick, pcb_z);
}
}
}
@@ -869,7 +894,8 @@ module case_top(case_design) {
mask = accessory_data[a[0]][i+10];
if (class == "add2" && face == "top") {
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,parametric,size,data,[false,mask[1],mask[2],mask[3]]);
parametric_move_add(type,loc_x,loc_y,loc_z,face,rotation,
parametric,size,data,[false,mask[1],mask[2],mask[3]]);
}
}
}

View File

@@ -9583,6 +9583,211 @@
"uart_opening": "default",
"view": "model",
"wallthick": "2"
},
"m2_panel_nas": {
"$fn": "90",
"access_panel_location": "[10, 15]",
"access_panel_orientation": "landscape",
"access_panel_rotation": "0",
"access_panel_size": "[70, 30]",
"accessory_highlight": "false",
"accessory_name": "nas",
"adj": "0.01",
"bend_allowance": "1",
"bottom_access_panel_enable": "false",
"bottom_clearence": "3.5",
"bottom_cover_pattern": "solid",
"bottom_front_left_adjust": "0",
"bottom_front_left_enable": "true",
"bottom_front_left_support": "front",
"bottom_front_right_adjust": "0",
"bottom_front_right_enable": "true",
"bottom_front_right_support": "front",
"bottom_rear_left_adjust": "0",
"bottom_rear_left_enable": "true",
"bottom_rear_left_support": "rear",
"bottom_rear_right_adjust": "0",
"bottom_rear_right_enable": "true",
"bottom_rear_right_support": "rear",
"bottom_sidewall_support": "false",
"bottom_standoff_diameter": "5.75",
"bottom_standoff_hole_size": "3.4",
"bottom_standoff_insert": "false",
"bottom_standoff_insert_dia": "4.2",
"bottom_standoff_insert_height": "5.1",
"bottom_standoff_pillar": "hex",
"bottom_standoff_reverse": "false",
"bottom_standoff_size": "m3",
"bottom_standoff_support_height": "4",
"bottom_standoff_support_size": "10",
"bottom_standoff_type": "countersunk",
"case_design": "panel_nas",
"case_offset_bz": "0",
"case_offset_tz": "171",
"case_offset_x": "0",
"case_offset_y": "138",
"cooling": "default",
"corner_fillet": "3",
"edge_fillet": "0",
"ext_bottom_front_left_adjust": "0",
"ext_bottom_front_left_enable": "true",
"ext_bottom_front_left_support": "front",
"ext_bottom_front_right_adjust": "0",
"ext_bottom_front_right_enable": "true",
"ext_bottom_front_right_support": "front",
"ext_bottom_rear_left_adjust": "0",
"ext_bottom_rear_left_enable": "true",
"ext_bottom_rear_left_support": "rear",
"ext_bottom_rear_right_adjust": "0",
"ext_bottom_rear_right_enable": "true",
"ext_bottom_rear_right_support": "rear",
"ext_bottom_sidewall_support": "true",
"ext_bottom_standoff_diameter": "5.75",
"ext_bottom_standoff_hole_size": "3.4",
"ext_bottom_standoff_insert": "false",
"ext_bottom_standoff_insert_dia": "4.2",
"ext_bottom_standoff_insert_height": "5.1",
"ext_bottom_standoff_pillar": "hex",
"ext_bottom_standoff_reverse": "false",
"ext_bottom_standoff_size": "m3",
"ext_bottom_standoff_support_height": "4",
"ext_bottom_standoff_support_size": "10",
"ext_bottom_standoff_type": "countersunk",
"ext_bottom_standoffs": "false",
"ext_top_front_left_adjust": "0",
"ext_top_front_left_enable": "true",
"ext_top_front_left_support": "front",
"ext_top_front_right_adjust": "0",
"ext_top_front_right_enable": "true",
"ext_top_front_right_support": "front",
"ext_top_rear_left_adjust": "0",
"ext_top_rear_left_enable": "true",
"ext_top_rear_left_support": "rear",
"ext_top_rear_right_adjust": "0",
"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_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_pillar": "hex",
"ext_top_standoff_reverse": "true",
"ext_top_standoff_size": "m3",
"ext_top_standoff_support_height": "4",
"ext_top_standoff_support_size": "10",
"ext_top_standoff_type": "blind",
"ext_top_standoffs": "false",
"fan_size": "0",
"flat_blank_section": "false",
"floorthick": "2",
"gap": "1",
"gpio_opening": "default",
"indents": "true",
"individual_part": "bottom",
"lower_bottom": "0",
"material_thickness": "0.5",
"move_front": "0",
"move_leftside": "0",
"move_rear": "0",
"move_rightside": "0",
"multipcb_bottom_front_left_adjust": "0",
"multipcb_bottom_front_left_enable": "true",
"multipcb_bottom_front_left_support": "front",
"multipcb_bottom_front_right_adjust": "0",
"multipcb_bottom_front_right_enable": "true",
"multipcb_bottom_front_right_support": "front",
"multipcb_bottom_rear_left_adjust": "0",
"multipcb_bottom_rear_left_enable": "true",
"multipcb_bottom_rear_left_support": "rear",
"multipcb_bottom_rear_right_adjust": "0",
"multipcb_bottom_rear_right_enable": "true",
"multipcb_bottom_rear_right_support": "rear",
"multipcb_bottom_sidewall_support": "false",
"multipcb_bottom_standoff_diameter": "5.75",
"multipcb_bottom_standoff_hole_size": "3.4",
"multipcb_bottom_standoff_insert": "false",
"multipcb_bottom_standoff_insert_dia": "4.2",
"multipcb_bottom_standoff_insert_height": "5.1",
"multipcb_bottom_standoff_pillar": "hex",
"multipcb_bottom_standoff_reverse": "false",
"multipcb_bottom_standoff_size": "m2.5",
"multipcb_bottom_standoff_support_height": "4",
"multipcb_bottom_standoff_support_size": "7",
"multipcb_bottom_standoff_type": "countersunk",
"multipcb_bottom_standoffs": "false",
"multipcb_top_front_left_adjust": "0",
"multipcb_top_front_left_enable": "true",
"multipcb_top_front_left_support": "front",
"multipcb_top_front_right_adjust": "0",
"multipcb_top_front_right_enable": "true",
"multipcb_top_front_right_support": "front",
"multipcb_top_rear_left_adjust": "0",
"multipcb_top_rear_left_enable": "true",
"multipcb_top_rear_left_support": "rear",
"multipcb_top_rear_right_adjust": "0",
"multipcb_top_rear_right_enable": "true",
"multipcb_top_rear_right_support": "rear",
"multipcb_top_sidewall_support": "false",
"multipcb_top_standoff_diameter": "5.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_pillar": "hex",
"multipcb_top_standoff_reverse": "true",
"multipcb_top_standoff_size": "m2.5",
"multipcb_top_standoff_support_height": "4",
"multipcb_top_standoff_support_size": "7",
"multipcb_top_standoff_type": "blind",
"multipcb_top_standoffs": "false",
"nas_bays": "2",
"nas_sbc_location": "top",
"pcb_loc_x": "0",
"pcb_loc_y": "0",
"pcb_loc_z": "0",
"raise_top": "0",
"rear_io_shield": "false",
"sbc_bottom_standoffs": "true",
"sbc_highlight": "false",
"sbc_information": "false",
"sbc_model": "m2",
"sbc_off": "false",
"sbc_top_standoffs": "false",
"sidethick": "2",
"standard_motherboard_thickness": "0",
"text_color": "Green",
"text_font": "Nimbus Mono PS",
"tol": "0.25",
"top_cover_pattern": "solid",
"top_front_left_adjust": "0",
"top_front_left_enable": "true",
"top_front_left_support": "front",
"top_front_right_adjust": "0",
"top_front_right_enable": "true",
"top_front_right_support": "front",
"top_rear_left_adjust": "0",
"top_rear_left_enable": "true",
"top_rear_left_support": "rear",
"top_rear_right_adjust": "0",
"top_rear_right_enable": "true",
"top_rear_right_support": "rear",
"top_sidewall_support": "false",
"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_pillar": "hex",
"top_standoff_reverse": "true",
"top_standoff_size": "m3",
"top_standoff_support_height": "4",
"top_standoff_support_size": "10",
"top_standoff_type": "blind",
"uart_opening": "default",
"view": "model",
"wallthick": "2"
}
},
"fileFormatVersion": "1"

View File

@@ -40,7 +40,7 @@ sbc_highlight = false;
// enable highlight for accessory subtractive geometry
accessory_highlight = false;
// base case design
case_design = "shell"; // [shell,panel,stacked,tray,tray_sides,tray_vu5,tray_vu7,round,hex,snap,fitted,paper_split-top,paper_full-top,adapter_ssi-eeb,adapter_ssi-ceb,adapter_atx,adapter_micro-atx,adapter_dtx,adapter_flex-atx,adapter_mini-dtx,adapter_mini-itx,adapter_mini-itx_thin,adapter_mini-stx,adapter_mini-stx_thin]
case_design = "shell"; // [shell,panel,panel_nas,stacked,tray,tray_sides,tray_vu5,tray_vu7,round,hex,snap,fitted,paper_split-top,paper_full-top,adapter_ssi-eeb,adapter_ssi-ceb,adapter_atx,adapter_micro-atx,adapter_dtx,adapter_flex-atx,adapter_mini-dtx,adapter_mini-itx,adapter_mini-itx_thin,adapter_mini-stx,adapter_mini-stx_thin]
// raises top mm in model view or < 0 = off
raise_top = 0; // [-1:100]
@@ -83,9 +83,9 @@ case_offset_x = 0; //[0:.01:300]
// additional y axis case size
case_offset_y = 0; //[0:.01:300]
// additional z axis case top size
case_offset_tz = 0; //[-10:.01:100]
case_offset_tz = 0; //[-10:.01:300]
// additional z axis case bottom size
case_offset_bz = 0; //[0:.01:100]
case_offset_bz = 0; //[0:.01:300]
// case wall thickness
wallthick = 2; //[1:.01:5]
// case floor thickness
@@ -124,8 +124,12 @@ gpio_opening = "default"; // [default,none,open,block,knockout,vent]
uart_opening = "default"; // [default,none,open,knockout]
// enable indentations around io openings
indents = true;
// nas sbc location
nas_sbc_location = "top"; // ["top","bottom"]
// number of nas bays
nas_bays = 2; // [0:5]
// case accessory group to load
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_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", "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"]
// sbc information text color
text_color = "Green"; // [Green, Black, Dimgrey, White, Yellow, Orange, Red, DarkbBlue]
// sbc information text font
@@ -634,6 +638,30 @@ if (view == "model") {
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, false);
}
}
if(case_design == "panel_nas") {
if(lower_bottom >= 0) {
color("dimgrey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);
}
if(raise_top >= 0) {
color("grey",1) translate([0,0,raise_top])case_top(case_design);
}
if(move_front >= 0) {
color("grey",1) translate([0,move_front,0]) case_side(case_design,"front");
}
if(move_rear >= 0) {
color("grey",1) translate([0,-move_rear,0]) case_side(case_design,"rear");
}
if(move_rightside >= 0) {
color("grey",1) translate([move_rightside,0,0]) case_side(case_design,"right");
}
if(move_leftside >= 0) {
color("grey",1) translate([-move_leftside,0,0]) case_side(case_design,"left");
}
if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-pcb_z+pcb_loc_z])
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, false);
}
}
if(case_design == "stacked") {
if(lower_bottom >= 0) {
color("grey",1) translate([0,0,-lower_bottom]) case_bottom(case_design);

View File

@@ -491,6 +491,9 @@ accessory_data = [
"add2","standoff",113,125,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"model","hk_m1s_ups",2,97,5,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[0],[true,110,2,"default"]],
// NAS Case
["nas",
"model","hd35",-1,-67,200,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,20,2,"both"]],
// circuitsetup solar energy meter
["cs_solarmeter",