From 6f26ab2f04bbd635eb8c72d00cdd87d811513f80 Mon Sep 17 00:00:00 2001 From: Edward Kisiel Date: Sun, 6 Apr 2025 19:06:29 -0400 Subject: [PATCH] more wip for panel_nas case --- mod/case_side.scad | 53 ++++++++++++++++++++++---------- mod/case_top.scad | 8 ++--- sbc_case_builder.json | 6 ++-- sbc_case_builder_accessories.cfg | 5 ++- 4 files changed, 47 insertions(+), 25 deletions(-) diff --git a/mod/case_side.scad b/mod/case_side.scad index 4c2d87c..e4eb7c8 100644 --- a/mod/case_side.scad +++ b/mod/case_side.scad @@ -26,6 +26,9 @@ module case_side(case_design, side) { + hd_space = 36; + hd_height = 40; + difference() { union() { if(case_design == "panel") { @@ -132,14 +135,14 @@ module case_side(case_design, side) { 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]); + translate([-gap,-wallthick-gap,floorthick]) + cube([width-2*wallthick+(101.6-width+(2*wallthick)),wallthick,case_z-2*floorthick]); // right hook difference() { - translate([width-(2*wallthick)-gap-adj,-wallthick-gap, + translate([width-(2*wallthick)-gap-adj+(101.6-width+(2*wallthick)),-wallthick-gap, ((case_z)/2)-4]) cube([(2*wallthick)+.5,wallthick,8]); - translate([width-(2*wallthick)-gap-adj,-wallthick-gap-adj, + translate([width-(2*wallthick)-gap-adj+(101.6-width+(2*wallthick)),-wallthick-gap-adj, ((case_z)/2)-4-adj]) cube([wallthick+.25,wallthick+(2*adj),4.25]); } @@ -165,28 +168,30 @@ module case_side(case_design, side) { 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]); + translate([(101.6-80)/2,-1,bottom_height+98]) rotate([90,0,0]) fan_mask(80, wallthick+2, "fan_hex"); + translate([(101.6-80)/2,-1,bottom_height+17]) rotate([90,0,0]) fan_mask(80, wallthick+2, "fan_hex"); } } 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]); + translate([-gap,depth-4*(wallthick)-gap,floorthick]) + cube([width-2*wallthick+(101.6-width+(2*wallthick)),wallthick,case_z-2*wallthick]); // right hook difference() { - translate([width-(2*wallthick)-gap-adj,depth-2*(wallthick)-gap-adj, + translate([width-(2*wallthick)-gap-adj+(101.6-width+(2*wallthick)),depth-3*(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]) + translate([width-(2*wallthick)-gap-adj+(101.6-width+(2*wallthick)), + depth-3*(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,( + translate([-(2*wallthick)-gap-adj-.25,depth-3*(wallthick)-gap-adj,( (case_z)/2)-4]) cube([(2*wallthick)+.5,wallthick,8]); - translate([-wallthick-gap-adj-.25,depth-2*(wallthick)-adj-gap-adj, + translate([-wallthick-gap-adj-.25,depth-3*(wallthick)-adj-gap-adj, ((case_z)/2)-4-adj]) cube([wallthick+.25,wallthick+(2*adj),4.25]); } @@ -203,28 +208,42 @@ module case_side(case_design, side) { 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]); + translate([-gap+6,depth-4*(wallthick)-gap,case_z-6]) rotate([-90,0,0]) + vent_hex((width)/3.5,(depth)/7,wallthick+4,5,1.5,"horizontal"); } } 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, +// translate([width-(2*wallthick)-gap+(101.6-width+(2*wallthick)),-(3*wallthick)-gap,-wallthick]) +// cube([wallthick,depth+2*wallthick,case_z+(2*wallthick)]); + translate([width-gap+(101.6-width+sidethick),-(3*wallthick)-gap,-wallthick]) + rotate([0,-90,0]) slab([case_z+(2*wallthick),depth+2*wallthick,sidethick],corner_fillet); + translate([width-(2*wallthick)-gap-adj+(101.6-width+(2*wallthick)),-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, + translate([width-(2*wallthick)-gap-adj+(101.6-width+(2*wallthick)),depth-2*(wallthick)-gap-.25, ((case_z)/2)]) cube([wallthick+2*adj,wallthick+.5,8.5]); + for( i=[0:1:nas_bays-1]) { + translate([-gap,-(3*wallthick)-gap+78.25,hd_height+hd_space*i]) + rotate([0,0,0]) hd_holes(3.5, "portrait", "both", sidethick+2); + } } } if(side == "left") { difference() { - translate([-wallthick-gap,-(2*wallthick)-gap,-wallthick]) - cube([wallthick,depth+2*wallthick,case_z+(2*wallthick)]); +// translate([-sidethick-gap,-(2*wallthick)-gap,-wallthick]) +// cube([wallthick,depth+2*wallthick,case_z+(2*wallthick)]); + translate([-gap,-(3*wallthick)-gap,-wallthick]) + rotate([0,-90,0]) slab([case_z+(2*wallthick),depth+2*wallthick,sidethick],corner_fillet); 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]); + for( i=[0:1:nas_bays-1]) { + translate([-gap,-(3*wallthick)-gap+78.25,hd_height+hd_space*i]) + rotate([0,0,0]) hd_holes(3.5, "portrait", "both", sidethick+2); + } } } } diff --git a/mod/case_top.scad b/mod/case_top.scad index e5690e4..fa4273c 100644 --- a/mod/case_top.scad +++ b/mod/case_top.scad @@ -72,9 +72,9 @@ module case_top(case_design) { } 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, + translate([-gap,-gap,case_z-2*wallthick]) + cube([width-(2*wallthick)+(101.6-width+(2*wallthick)),depth-(3*wallthick),wallthick]); +/* 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, @@ -86,7 +86,7 @@ module case_top(case_design) { 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, diff --git a/sbc_case_builder.json b/sbc_case_builder.json index c439de2..28f5541 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -9623,11 +9623,11 @@ "bottom_standoff_type": "countersunk", "case_design": "panel_nas", "case_offset_bz": "0", - "case_offset_tz": "171", + "case_offset_tz": "165", "case_offset_x": "0", "case_offset_y": "138", "cooling": "default", - "corner_fillet": "3", + "corner_fillet": "9", "edge_fillet": "0", "ext_bottom_front_left_adjust": "0", "ext_bottom_front_left_enable": "true", @@ -9755,7 +9755,7 @@ "sbc_model": "m2", "sbc_off": "false", "sbc_top_standoffs": "false", - "sidethick": "2", + "sidethick": "3", "standard_motherboard_thickness": "0", "text_color": "Green", "text_font": "Nimbus Mono PS", diff --git a/sbc_case_builder_accessories.cfg b/sbc_case_builder_accessories.cfg index 0d4ca1e..186e565 100644 --- a/sbc_case_builder_accessories.cfg +++ b/sbc_case_builder_accessories.cfg @@ -493,7 +493,10 @@ accessory_data = [ // NAS Case ["nas", - "model","hd35",-1,-67,200,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,20,2,"both"]], + "model","hd35",-1,-67,148,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,20,2,"both"], + "model","hd35",-1,-67,112,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,20,2,"both"], + "model","hd35",-1,-67,76,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,20,2,"both"], + "model","hd35",-1,-67,40,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,20,2,"both"]], // circuitsetup solar energy meter ["cs_solarmeter",