diff --git a/lib/cable_holder.scad b/lib/cable_holder.scad index fd0b78b..a2361ec 100644 --- a/lib/cable_holder.scad +++ b/lib/cable_holder.scad @@ -28,16 +28,16 @@ */ -module cableholder_spacer() { +module cableholder_spacer(size = [9.4,20,6]) { - size = [9.4,16,6]; +// size = [9.4,16,6]; $fn = 90; translate([0,size[2]/2,-5]) rotate([90,0,0]) difference() { translate([size[0]/2,size[0]/2,0]) rotate([0,0,90]) slot(size[0],size[1],size[2]); - translate([-1,5,3]) rotate([0,90,0]) cylinder(d=3.2, h=12); + #translate([-1,5,3]) rotate([0,90,0]) cylinder(d=3.2, h=12); translate([-1,7.5,-1]) cube([2,20,9]); - translate([5,9.5,-1]) rotate([0,0,90]) slot(4.5,11,9); + translate([5,9.5,-1]) rotate([0,0,90]) slot(4.5,13,9); translate([3,20,-1]) rotate([0,0,45]) cube([2,6,9]); } } diff --git a/mod/case_bottom.scad b/mod/case_bottom.scad index bcb891f..6c8f04f 100644 --- a/mod/case_bottom.scad +++ b/mod/case_bottom.scad @@ -512,21 +512,21 @@ echo(pcb_depth+case_offset_y-10); // bottom cover pattern if(bottom_cover_pattern != "solid") { if(bottom_cover_pattern == "hex_5mm") { - translate([1,0,-2]) vent_hex((width)/3.75,(depth)/6,floorthick+4,5,1.5,"horizontal"); + translate([1,0,-floorthick]) vent_hex((width)/3.75,(depth)/6,floorthick+4,5,1.5,"horizontal"); } if(bottom_cover_pattern == "hex_8mm") { - translate([1,2,-2]) vent_hex((width)/5.5,(depth)/9.5,floorthick+4,8,1.5,"horizontal"); + translate([1,2,-floorthick]) vent_hex((width)/5.5,(depth)/9.5,floorthick+4,8,1.5,"horizontal"); } if(bottom_cover_pattern == "linear_vertical") { - translate([0,-gap,-2]) vent(wallthick,depth-2*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4,"horizontal"); + translate([0,-gap,-floorthick]) vent(wallthick,depth-2*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4,"horizontal"); } if(bottom_cover_pattern == "linear_horizontal") { - translate([-gap,-gap,-2]) vent(width-2*wallthick-gap,wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3,1,"horizontal"); + translate([-gap,-gap,-floorthick]) vent(width-2*wallthick-gap,wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3,1,"horizontal"); } if(bottom_cover_pattern == "astroid") { for(c=[3:12:depth-8]) { for(r=[4:12:width-8]) { - translate([r,c,-4]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); + translate([r,c,-(2*floorthick)]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); } } } diff --git a/mod/case_side.scad b/mod/case_side.scad index 809fe02..dd608f4 100644 --- a/mod/case_side.scad +++ b/mod/case_side.scad @@ -161,7 +161,7 @@ module case_side(case_design, side) { difference() { union() { translate([-gap,depth-(4*wallthick),floorthick]) - cube([width-2*wallthick+(101.6-width+(2*wallthick)),wallthick,case_z-3*wallthick]); + cube([width-2*(gap+sidethick),wallthick,case_z-3*wallthick]); // bottom right tab translate([width-(3*sidethick)-adj,depth-(4*wallthick),20]) cube([sidethick+(2*adj),wallthick,10]); @@ -207,7 +207,7 @@ module case_side(case_design, side) { // hd holes for bays for( i=[0:1:hd_bays-1]) { - translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i]) + translate([(width-101.6)-(3*sidethick)-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*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 328e4f0..ff3eed5 100644 --- a/mod/case_top.scad +++ b/mod/case_top.scad @@ -460,23 +460,23 @@ module case_top(case_design) { // top cover pattern if(top_cover_pattern != "solid") { if(top_cover_pattern == "hex_5mm") { - translate([1,0,case_z-2]) vent_hex((width)/3.75,(depth)/6,floorthick+4,5,1.5,"horizontal"); + translate([1,0,case_z-(2*floorthick)]) vent_hex((width)/3.75,(depth)/6,floorthick+4,5,1.5,"horizontal"); } if(top_cover_pattern == "hex_8mm") { - translate([1,2,case_z-2]) vent_hex((width)/5.5,(depth)/9.5,floorthick+4,8,1.5,"horizontal"); + translate([1,2,case_z-(2*floorthick)]) vent_hex((width)/5.5,(depth)/9.5,floorthick+4,8,1.5,"horizontal"); } if(top_cover_pattern == "linear_vertical") { - translate([0,-gap,case_z-2]) + translate([0,-gap,case_z-(2*floorthick)]) vent(wallthick,depth-2*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4,"horizontal"); } if(top_cover_pattern == "linear_horizontal") { - translate([-gap,-gap,case_z-2]) + translate([-gap,-gap,case_z-(2*floorthick)]) vent(width-2*wallthick-gap,wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3,1,"horizontal"); } if(top_cover_pattern == "astroid") { for(c=[3:12:depth-8]) { for(r=[4:12:width-8]) { - translate([r,c,case_z-4]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); + translate([r,c,case_z-(2*floorthick)]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); } } } diff --git a/sbc_case_builder.json b/sbc_case_builder.json index f5d2288..6fe26f7 100644 --- a/sbc_case_builder.json +++ b/sbc_case_builder.json @@ -9795,6 +9795,218 @@ "uart_opening": "default", "view": "model", "wallthick": "2" + }, + "h3_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": "none", + "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": "0", + "case_offset_x": "0", + "case_offset_y": "10", + "cooling": "fan_hex", + "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": "80", + "flat_blank_section": "false", + "floorthick": "2", + "gap": "1", + "gpio_opening": "default", + "hd_bays": "2", + "hd_space": "10", + "hd_y_position": "25", + "hd_z_position": "10", + "indents": "false", + "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_sbc_location": "top", + "pcb_loc_x": "0", + "pcb_loc_y": "0", + "pcb_loc_z": "0", + "raise_top": "0", + "rear_cooling": "fan_hex", + "rear_fan": "1", + "rear_fan_position": "-50", + "rear_fan_size": "80", + "rear_io_shield": "false", + "sbc_bottom_standoffs": "false", + "sbc_highlight": "false", + "sbc_information": "false", + "sbc_model": "h3+", + "sbc_off": "false", + "sbc_top_standoffs": "true", + "sidethick": "3", + "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": "25", + "top_standoff_support_size": "10", + "top_standoff_type": "recessed", + "uart_opening": "default", + "view": "model", + "wallthick": "2" } }, "fileFormatVersion": "1" diff --git a/sbc_case_builder.scad b/sbc_case_builder.scad index 7941791..9ce23e9 100644 --- a/sbc_case_builder.scad +++ b/sbc_case_builder.scad @@ -368,7 +368,7 @@ 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) : 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+(3*gap) : 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; @@ -670,8 +670,10 @@ if (view == "model") { sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, false); } for( i=[0:1:hd_bays-1]) { - translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i]) - rotate([0,0,0]) hd35("portrait", [false,0,0,"default"]); +// translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i]) +// rotate([0,0,0]) hd35("portrait", [false,0,0,"default"]); + translate([-gap,-(3*wallthick)-gap+hd_y_position+101.6,hd_z_position+(hd_space+27.1)*i]) + rotate([0,0,0]) cableholder_spacer(); } } if(case_design == "stacked") {