cable_holder improvement, more front, top and bottom vent cover adjustments, other code cleanup and example cases

This commit is contained in:
Edward Kisiel
2025-04-23 15:07:23 -04:00
parent 86eb912784
commit 2f318b1cce
7 changed files with 509 additions and 281 deletions

View File

@@ -37,9 +37,9 @@ module cableholder_spacer(length) {
difference() { difference() {
union() { union() {
translate([size[0]/2,size[0]/2,0]) rotate([0,0,90]) long_slot(size[0],size[1],size[2]); translate([size[0]/2,size[0]/2,0]) rotate([0,0,90]) long_slot(size[0],size[1],size[2]);
translate([-length,5,3]) rotate([0,90,0]) cylinder(d=6, h=length+1); translate([-length,5,3]) rotate([0,90,0]) cylinder(d=6, h=length+9.4);
} }
translate([-length-adj,5,3]) rotate([0,90,0]) cylinder(d=3.2, h=length+size[0]+adj); translate([-length-adj,5,3]) rotate([0,90,0]) cylinder(d=3.2, h=length+size[0]+2*adj);
translate([-1,8,-1]) cube([2,20,9]); translate([-1,8,-1]) cube([2,20,9]);
translate([5,9.5,-1]) rotate([0,0,90]) long_slot(4.5,11,9); translate([5,9.5,-1]) rotate([0,0,90]) long_slot(4.5,11,9);
translate([3,20,-1]) rotate([0,0,45]) cube([2,6,9]); translate([3,20,-1]) rotate([0,0,45]) cube([2,6,9]);

View File

@@ -157,11 +157,11 @@ module case_bottom(case_design) {
// front panel // front panel
if(case_design == "tray_vu5" || case_design == "tray_vu7" || case_design == "tray_sides") { if(case_design == "tray_vu5" || case_design == "tray_vu7" || case_design == "tray_sides") {
translate([-wallthick-gap,depth-(2*wallthick)-gap,bottom_height-adj]) translate([-wallthick-gap,depth-(2*wallthick)-gap,bottom_height-adj])
rotate([0,0,0]) cube([width,wallthick,top_height]); cube([width,wallthick,top_height]);
} }
else { else {
translate([-wallthick-gap,depth-(2*wallthick)-gap,bottom_height-adj]) translate([-wallthick-gap,depth-(2*wallthick)-gap,bottom_height-adj])
rotate([0,0,0]) cube([width,wallthick,top_height-floorthick]); cube([width,wallthick,top_height-floorthick]);
} }
// rear panel // rear panel
@@ -236,21 +236,21 @@ module case_bottom(case_design) {
} }
else { else {
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,bottom_height/2]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,bottom_height/2])
cylinder_fillet_inside(h=bottom_height, r=hex_diameter/2, cylinder_fillet_inside(h=bottom_height, r=hex_diameter/2,
top=0, bottom=edge_fillet, $fn=6, fillet_fn=case_ffn, center=true); top=0, bottom=edge_fillet, $fn=6, fillet_fn=case_ffn, center=true);
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+floorthick]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+floorthick])
cylinder_fillet_inside(h=bottom_height+adj,r=(hex_diameter/2)-lip/2,top=0, cylinder_fillet_inside(h=bottom_height+adj,r=(hex_diameter/2)-lip/2,top=0,
bottom=edge_fillet-1,$fn=6,fillet_fn=case_ffn, center=true); bottom=edge_fillet-1,$fn=6,fillet_fn=case_ffn, center=true);
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,bottom_height-lip])
cylinder(h=lip+adj,r=(hex_diameter/2)+1, $fn=6); cylinder(h=lip+adj,r=(hex_diameter/2)+1, $fn=6);
translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,bottom_height-lip])
cylinder(h=lip+2*adj,r=(hex_diameter/2)-lip/4, $fn=6); cylinder(h=lip+2*adj,r=(hex_diameter/2)-lip/4, $fn=6);
} }
} }
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+2*floorthick]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+2*floorthick])
cylinder_fillet_inside(h=bottom_height+adj+floorthick+lip, cylinder_fillet_inside(h=bottom_height+adj+floorthick+lip,
r=(hex_diameter/2)-lip/2,top=0, bottom=edge_fillet-1, $fn=6, r=(hex_diameter/2)-lip/2,top=0, bottom=edge_fillet-1, $fn=6,
fillet_fn=case_ffn, center=true); fillet_fn=case_ffn, center=true);
@@ -515,9 +515,11 @@ echo(pcb_depth+case_offset_y-10);
} }
// bottom cover pattern // bottom cover pattern
if(bottom_cover_pattern != "solid") { if(bottom_cover_pattern != "solid") {
xvent8_adj = pcb_width > 100 ? width/5.5 : width/6;
if(bottom_cover_pattern == "hex_5mm") { if(bottom_cover_pattern == "hex_5mm") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([5,5,-floorthick]) vent_hex((width-10)/3.75,(depth-10)/7,floorthick+4,5,1.5,"horizontal"); translate([6,5,-floorthick+adj])
vent_hex((width-10)/3.75,(depth-10)/7,floorthick+4,5,1.5,"horizontal");
} }
else { else {
translate([1,0,-floorthick]) 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");
@@ -525,7 +527,7 @@ echo(pcb_depth+case_offset_y-10);
} }
if(bottom_cover_pattern == "hex_8mm") { if(bottom_cover_pattern == "hex_8mm") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([5,6,-floorthick]) vent_hex(width/5.5,depth/9.5,floorthick+4,8,1.5,"horizontal"); translate([-gap+5,6,-floorthick+adj]) vent_hex(xvent8_adj,depth/9.5,floorthick+4,8,1.5,"horizontal");
} }
else { else {
translate([1,2,-floorthick]) 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");
@@ -533,8 +535,8 @@ echo(pcb_depth+case_offset_y-10);
} }
if(bottom_cover_pattern == "linear_vertical") { if(bottom_cover_pattern == "linear_vertical") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([6,5,-floorthick]) translate([wallthick+gap,wallthick,-floorthick+adj])
vent(wallthick,depth-8*wallthick-gap,floorthick+4,1,1,(width-2*wallthick-gap)/4.5,"horizontal"); vent(wallthick,depth-6*wallthick-gap,floorthick+4,1,1,(width-2*(sidethick+gap))/5.35,"horizontal");
} }
else { else {
translate([0,-gap,-floorthick]) translate([0,-gap,-floorthick])
@@ -543,8 +545,9 @@ echo(pcb_depth+case_offset_y-10);
} }
if(bottom_cover_pattern == "linear_horizontal") { if(bottom_cover_pattern == "linear_horizontal") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([6,5,-floorthick]) translate([wallthick+gap,wallthick,-floorthick+adj])
vent(width-6*(sidethick+gap),wallthick,floorthick+4,1,(depth-2*wallthick-gap)/3.25,1,"horizontal"); vent(width-4*(sidethick+gap),wallthick,floorthick+4,1,
(depth-2*(wallthick-gap))/4.35,1,"horizontal");
} }
else { else {
translate([-gap,-gap,-floorthick]) translate([-gap,-gap,-floorthick])
@@ -553,9 +556,10 @@ echo(pcb_depth+case_offset_y-10);
} }
if(bottom_cover_pattern == "astroid") { if(bottom_cover_pattern == "astroid") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
for(c=[12:12:depth-16]) { xast_adj = pcb_width <= 100 ? 8 : 6;
for(c=[xast_adj:12:depth-16]) {
for(r=[12:12:width-16]) { for(r=[12:12:width-16]) {
translate([r,c,-(2*floorthick)]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); translate([r,c,-floorthick]) linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf");
} }
} }
} }

View File

@@ -131,6 +131,7 @@ module case_side(case_design, side) {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
x_adj = pcb_width > 100 ? width-2*sidethick : width-2*(gap+sidethick); x_adj = pcb_width > 100 ? width-2*sidethick : width-2*(gap+sidethick);
xtab_adj = pcb_width > 100 ? width-gap-2*sidethick-adj : width-gap-2*(gap+sidethick)-adj; xtab_adj = pcb_width > 100 ? width-gap-2*sidethick-adj : width-gap-2*(gap+sidethick)-adj;
xvent8_adj = pcb_width > 100 ? width/5.5 : width/6;
if(side == "rear") { if(side == "rear") {
difference() { difference() {
union() { union() {
@@ -208,38 +209,41 @@ module case_side(case_design, side) {
} }
// front cover pattern // front cover pattern
if(front_cover_pattern != "solid" && case_design == "panel_nas") { if(front_cover_pattern != "solid" && case_design == "panel_nas") {
xvent_pos = pcb_width <= 100 ? -gap+3 : -gap+6;
if(front_cover_pattern == "hex_5mm" && hd_bays < 6) { if(front_cover_pattern == "hex_5mm" && hd_bays < 6) {
translate([-gap+4,depth-3*(wallthick)+gap,hd_z_position]) translate([xvent_pos,depth-3*(wallthick)+gap,hd_z_position-5])
vent_hex(width/3.85,hd_bays*(27.1+hd_space)/5.75,wallthick+4,5,1.5,"vertical"); vent_hex(round(width/3.85),round(hd_bays*(27.1+hd_space)/5.75),wallthick+4,5,1.5,"vertical");
} }
if(front_cover_pattern == "hex_5mm" && hd_bays == 6) { if(front_cover_pattern == "hex_5mm" && hd_bays == 6) {
translate([-gap+4,depth-3*(wallthick)+gap,hd_z_position]) translate([xvent_pos,depth-3*(wallthick)+gap,hd_z_position])
vent_hex(width/3.85,hd_bays*(27.1+hd_space)/7,wallthick+4,5,1.5,"vertical"); vent_hex(round(width/3.85),round(hd_bays*(27.1+hd_space)/5.75),wallthick+4,5,1.5,"vertical");
} }
if(front_cover_pattern == "hex_8mm") { if(front_cover_pattern == "hex_8mm") {
translate([-gap+5,depth-3*(wallthick)+gap,5]) translate([-gap+4,depth-3*(wallthick)+gap,hd_z_position])
vent_hex(width/5.5,(case_z-6)/10,floorthick+4,8,1.5,"vertical"); vent_hex(xvent8_adj,round(hd_bays*(27.1+hd_space)/5.75)-5,floorthick+4,8,1.5,"vertical");
} }
if(front_cover_pattern == "linear_vertical") { if(front_cover_pattern == "linear_vertical") {
translate([-gap+4,depth-3*(wallthick)+gap,hd_z_position]) translate([-gap+4,depth-3*(wallthick)+gap,hd_z_position])
vent(wallthick,(case_z-2*(wallthick+gap)-20)/8,floorthick+4,1,1, vent(wallthick,(case_z-2*(wallthick+gap)-20)/8,floorthick+4,1,1,
(width-2*(wallthick+gap+sidethick))/4.2,"vertical"); (width-2*(sidethick+gap))/5.35,"vertical");
translate([-gap+4,depth-3*(wallthick)+gap,case_z-(top_height+bottom_height+4*floorthick)]) translate([-gap+4,depth-3*(wallthick)+gap,case_z-(top_height+bottom_height+4*floorthick)-5])
vent(wallthick,(case_z-2*(wallthick+gap)-20)/8,floorthick+4,1,1, vent(wallthick,(case_z-2*(wallthick+gap)-20)/8,floorthick+4,1,1,
(width-2*(wallthick+gap+sidethick))/4.2,"vertical"); (width-2*(sidethick+gap))/5.35,"vertical");
} }
if(front_cover_pattern == "linear_horizontal") { if(front_cover_pattern == "linear_horizontal") {
translate([-gap+4,depth-3*(wallthick)+gap,hd_z_position]) translate([wallthick+gap,depth-3*(wallthick)+gap,hd_z_position])
vent(width-2*(wallthick+gap+sidethick)-4,wallthick,floorthick+4,2,
(case_z-2*(wallthick+gap)-20)/20,1,"vertical");
translate([-gap+4,depth-3*(wallthick)+gap,case_z-(top_height+bottom_height+4*floorthick)-20])
vent(width-2*(wallthick+gap+sidethick)-4,wallthick,floorthick+4,2, vent(width-2*(wallthick+gap+sidethick)-4,wallthick,floorthick+4,2,
(case_z-2*(wallthick+gap)-20)/20,1,"vertical"); (case_z-2*(wallthick+gap)-20)/20,1,"vertical");
translate([wallthick+gap,depth-3*(wallthick)+gap,
case_z-(top_height+bottom_height+4*floorthick)-20])
vent(width-4*(sidethick+gap),,wallthick,floorthick+4,2,
(case_z-2*(wallthick+gap)-20)/20,1,"vertical");
} }
if(front_cover_pattern == "astroid") { if(front_cover_pattern == "astroid") {
for(c=[10:12:case_z-20]) { xast_adj = pcb_width <= 100 ? 8 : 6;
for(r=[6:12:width-8]) { for(c=[xast_adj:12:case_z-20]) {
translate([r,depth-wallthick,c]) rotate([90,0,0]) for(r=[8:12:width-8]) {
translate([r,depth-2*wallthick,c]) rotate([90,0,0])
linear_extrude(wallthick+5) import("./dxf/astroid_8mm.dxf"); linear_extrude(wallthick+5) import("./dxf/astroid_8mm.dxf");
} }
} }
@@ -287,13 +291,13 @@ module case_side(case_design, side) {
translate([width-3*sidethick+gap-adj,depth-(4*wallthick),(case_z/2)-5]) translate([width-3*sidethick+gap-adj,depth-(4*wallthick),(case_z/2)-5])
cube([2*sidethick+2*adj,wallthick+tol,20]); cube([2*sidethick+2*adj,wallthick+tol,20]);
translate([width-3*sidethick+gap-adj,depth-(4*wallthick),(case_z/2)-5+10]) translate([width-3*sidethick+gap-adj,depth-(4*wallthick),(case_z/2)-5+10])
cube([2*sidethick+(2*adj),2*wallthick,10+tol]); cube([2*sidethick+(2*adj),3*wallthick,10+tol]);
// rear edge middle tab openings // rear edge middle tab openings
translate([width-3*sidethick+gap-adj,-2*wallthick+adj,(case_z/2)-5]) translate([width-3*sidethick+gap-adj,-2*wallthick+adj,(case_z/2)-5])
cube([2*sidethick+2*adj,wallthick+tol,20]); cube([2*sidethick+2*adj,wallthick+tol,20]);
translate([width-3*sidethick+gap-adj,-(4*wallthick),(case_z/2)-5+10]) translate([width-3*sidethick+gap-adj,-(4*wallthick),(case_z/2)-5+10])
cube([2*sidethick+(2*adj),2*wallthick,10+tol]); cube([2*sidethick+(2*adj),3*wallthick,10+tol]);
} }
// hd holes for bays // hd holes for bays
@@ -350,13 +354,13 @@ module case_side(case_design, side) {
translate([-sidethick-gap-adj,-2*wallthick+adj,case_z-30]) translate([-sidethick-gap-adj,-2*wallthick+adj,case_z-30])
cube([sidethick+2*adj,wallthick+tol,20]); cube([sidethick+2*adj,wallthick+tol,20]);
translate([-sidethick-gap-adj,-(4*wallthick),case_z-20-tol]) translate([-sidethick-gap-adj,-(4*wallthick),case_z-20-tol])
cube([sidethick+(2*adj),2*wallthick,10+tol]); cube([sidethick+(2*adj),3*wallthick+adj,10+tol]);
// rear edge botom tab openings // rear edge bottom tab openings
translate([-sidethick-gap-adj,-2*wallthick+adj,20]) translate([-sidethick-gap-adj,-2*wallthick+adj,20])
cube([sidethick+2*adj,wallthick+tol,20]); cube([sidethick+2*adj,wallthick+tol,20]);
translate([-sidethick-gap-adj,-(4*wallthick),30-tol]) translate([-sidethick-gap-adj,-(4*wallthick),30-tol])
cube([sidethick+(2*adj),2*wallthick,10+tol]); cube([sidethick+(2*adj),3*wallthick,10+tol]);
// front edge top tab openings // front edge top tab openings
translate([-sidethick-gap-adj,depth-(4*wallthick),case_z-30]) translate([-sidethick-gap-adj,depth-(4*wallthick),case_z-30])
@@ -375,7 +379,7 @@ module case_side(case_design, side) {
translate([-sidethick-gap-adj,-2*wallthick+adj,(case_z/2)-5]) translate([-sidethick-gap-adj,-2*wallthick+adj,(case_z/2)-5])
cube([sidethick+2*adj,wallthick+tol,20]); cube([sidethick+2*adj,wallthick+tol,20]);
translate([-sidethick-gap-adj,-(4*wallthick),(case_z/2)-5+10]) translate([-sidethick-gap-adj,-(4*wallthick),(case_z/2)-5+10])
cube([sidethick+(2*adj),2*wallthick,10+tol]); cube([sidethick+(2*adj),3*wallthick,10+tol]);
// front edge middle tab openings // front edge middle tab openings
translate([-sidethick-gap-adj,depth-(4*wallthick),(case_z/2)-5]) translate([-sidethick-gap-adj,depth-(4*wallthick),(case_z/2)-5])
@@ -388,7 +392,7 @@ module case_side(case_design, side) {
if(hd_reverse == false) { if(hd_reverse == false) {
for( i=[0:1:hd_bays-1]) { for( i=[0:1:hd_bays-1]) {
translate([-gap+adj,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i]) translate([-gap+adj,-(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); hd_holes(3.5, "portrait", "both", sidethick+2);
} }
} }
else { else {

View File

@@ -111,8 +111,8 @@ module case_top(case_design) {
bottom=[0,0,0,0], $fn=90); bottom=[0,0,0,0], $fn=90);
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(case_z/2)-floorthick+.25]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(case_z/2)-floorthick+.25])
cube_fillet_inside([width+1,depth+(wallthick*2),case_z], cube_fillet_inside([width+1,depth+(wallthick*2),case_z],
vertical=[corner_fillet-wallthick,corner_fillet-wallthick,corner_fillet-wallthick,corner_fillet-wallthick], vertical=[corner_fillet-wallthick,corner_fillet-wallthick,corner_fillet-wallthick,
top=[0,0,0,0],bottom=[0,0,0,0], $fn=90); corner_fillet-wallthick],top=[0,0,0,0],bottom=[0,0,0,0], $fn=90);
for (i=[1:11:len(sbc_data[s[0]])-2]) { for (i=[1:11:len(sbc_data[s[0]])-2]) {
class = sbc_data[s[0]][i+1]; class = sbc_data[s[0]][i+1];
type = sbc_data[s[0]][i+2]; type = sbc_data[s[0]][i+2];
@@ -228,13 +228,13 @@ module case_top(case_design) {
} }
else { else {
difference() { difference() {
translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2])
cylinder_fillet_inside(h=top_height+lip, r=hex_diameter/2, cylinder_fillet_inside(h=top_height+lip, r=hex_diameter/2,
top=edge_fillet, bottom=0, $fn=6, fillet_fn=case_ffn, center=true); top=edge_fillet, bottom=0, $fn=6, fillet_fn=case_ffn, center=true);
translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-floorthick-lip/2]) translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-floorthick-lip/2])
rotate([0,0,0]) cylinder_fillet_inside(h=top_height+lip, r=(hex_diameter/2)-wallthick, cylinder_fillet_inside(h=top_height+lip, r=(hex_diameter/2)-wallthick,
top=edge_fillet-1, bottom=0, $fn=6, fillet_fn=case_ffn, center=true); top=edge_fillet-1, bottom=0, $fn=6, fillet_fn=case_ffn, center=true);
translate([pcb_width/2,pcb_depth/2,bottom_height-adj-lip/2]) rotate([0,0,0]) translate([pcb_width/2,pcb_depth/2,bottom_height-adj-lip/2])
cylinder_fillet_inside(h=lip+2*adj, r=(hex_diameter/2)-wallthick/2+tol/2, cylinder_fillet_inside(h=lip+2*adj, r=(hex_diameter/2)-wallthick/2+tol/2,
top=edge_fillet-1, bottom=0, $fn=6, fillet_fn=case_ffn, center=true); top=edge_fillet-1, bottom=0, $fn=6, fillet_fn=case_ffn, center=true);
// io cutout // io cutout
@@ -267,21 +267,22 @@ module case_top(case_design) {
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-adj]) translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-adj])
cube_fillet_inside([width-(3*wallthick),depth-(3*wallthick),2*floorthick+1.5+adj], cube_fillet_inside([width-(3*wallthick),depth-(3*wallthick),2*floorthick+1.5+adj],
vertical=[corner_fillet-wallthick,corner_fillet-wallthick,corner_fillet-wallthick,corner_fillet-wallthick],top=[0,0,0,0], vertical=[corner_fillet-wallthick,corner_fillet-wallthick,corner_fillet-wallthick,
bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90); corner_fillet-wallthick],top=[0,0,0,0],
bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
} }
// snap top outdent // snap top outdent
difference() { difference() {
translate([-wallthick-gap+1.25+tol,(depth/2)-((depth*.75)/2)+2.5-gap-wallthick,case_z-.5]) translate([-wallthick-gap+1.25+tol,(depth/2)-((depth*.75)/2)+2.5-gap-wallthick,case_z-.5])
rotate([0,45,0]) cube([4,(depth*.75)-5,4]); rotate([0,45,0]) cube([4,(depth*.75)-5,4]);
translate([-wallthick-gap+3,(depth/2)-((depth*.75)/2)+1.25-gap-wallthick,case_z+floorthick-5.75]) translate([-wallthick-gap+3,(depth/2)-((depth*.75)/2)+1.25-gap-wallthick,case_z+floorthick-5.75])
rotate([0,0,0]) cube([6,(depth*.75)-2,6]); cube([6,(depth*.75)-2,6]);
} }
difference() { difference() {
translate([width-wallthick-gap-6.8-tol,(depth/2)-((depth*.75)/2)+2.5-gap-wallthick,case_z-.5]) translate([width-wallthick-gap-6.8-tol,(depth/2)-((depth*.75)/2)+2.5-gap-wallthick,case_z-.5])
rotate([0,45,0]) cube([4,(depth*.75)-5,4]); rotate([0,45,0]) cube([4,(depth*.75)-5,4]);
translate([width-wallthick-gap-8.5,(depth/2)-((depth*.75)/2)+1.25-gap-wallthick,case_z+floorthick-5.75]) translate([width-wallthick-gap-8.5,(depth/2)-((depth*.75)/2)+1.25-gap-wallthick,
rotate([0,0,0]) cube([6,(depth*.75)-2,6]); case_z+floorthick-5.75]) cube([6,(depth*.75)-2,6]);
} }
} }
if(case_design == "fitted") { if(case_design == "fitted") {
@@ -461,6 +462,7 @@ module case_top(case_design) {
} }
// top cover pattern // top cover pattern
if(top_cover_pattern != "solid") { if(top_cover_pattern != "solid") {
xvent8_adj = pcb_width > 100 ? width/5.5 : width/6;
if(top_cover_pattern == "hex_5mm") { if(top_cover_pattern == "hex_5mm") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([6,5,case_z-(2*floorthick)]) translate([6,5,case_z-(2*floorthick)])
@@ -472,7 +474,7 @@ module case_top(case_design) {
} }
if(top_cover_pattern == "hex_8mm") { if(top_cover_pattern == "hex_8mm") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([5,6,case_z-(2*floorthick)]) vent_hex(width/5.5,depth/9.5,floorthick+4,8,1.5,"horizontal"); translate([-gap+5,6,case_z-(2*floorthick)]) vent_hex(xvent8_adj,depth/9.5,floorthick+4,8,1.5,"horizontal");
} }
else { else {
translate([1,2,case_z-(2*floorthick)]) 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");
@@ -481,7 +483,7 @@ module case_top(case_design) {
if(top_cover_pattern == "linear_vertical") { if(top_cover_pattern == "linear_vertical") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([wallthick+gap,wallthick,case_z-(2*floorthick)]) translate([wallthick+gap,wallthick,case_z-(2*floorthick)])
vent(wallthick,depth-6*wallthick-gap,floorthick+4,1,1,(width-2*(sidethick+gap))/4.25,"horizontal"); vent(wallthick,depth-6*wallthick-gap,floorthick+4,1,1,(width-2*(sidethick+gap))/5.35,"horizontal");
} }
else { else {
translate([0,-gap,case_z-(2*floorthick)]) translate([0,-gap,case_z-(2*floorthick)])
@@ -491,8 +493,8 @@ module case_top(case_design) {
if(top_cover_pattern == "linear_horizontal") { if(top_cover_pattern == "linear_horizontal") {
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
translate([wallthick+gap,wallthick,case_z-(2*floorthick)]) translate([wallthick+gap,wallthick,case_z-(2*floorthick)])
vent((width-4*(sidethick+gap)),wallthick,floorthick+4,1, vent(width-4*(sidethick+gap),wallthick,floorthick+4,1,
(depth-2*(wallthick-gap))/3.25,1,"horizontal"); (depth-2*(wallthick-gap))/4.35,1,"horizontal");
} }
else { else {
translate([-gap,-gap,case_z-(2*floorthick)]) translate([-gap,-gap,case_z-(2*floorthick)])
@@ -500,9 +502,10 @@ module case_top(case_design) {
} }
} }
if(top_cover_pattern == "astroid") { if(top_cover_pattern == "astroid") {
xast_adj = pcb_width <= 100 ? 8 : 6;
if(case_design == "panel_nas") { if(case_design == "panel_nas") {
for(c=[12:12:depth-16]) { for(c=[xast_adj:12:depth-16]) {
for(r=[12:12:width-16]) { for(r=[8:12:width-16]) {
translate([r,c,case_z-(2*floorthick)-adj]) translate([r,c,case_z-(2*floorthick)-adj])
linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf"); linear_extrude(floorthick+5) import("./dxf/astroid_8mm.dxf");
} }

View File

@@ -3131,6 +3131,223 @@
"view": "model", "view": "model",
"wallthick": "2.5" "wallthick": "2.5"
}, },
"m1_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": "-5",
"case_offset_tz": "-15",
"case_offset_x": "10",
"case_offset_y": "20",
"cooling": "open",
"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": "3",
"front_cover_pattern": "hex_5mm",
"gap": "1",
"gpio_opening": "default",
"hd_bays": "1",
"hd_center": "false",
"hd_reverse": "true",
"hd_space": "10",
"hd_y_position": "25",
"hd_z_position": "45",
"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_sbc_location": "bottom",
"pcb_loc_x": "9",
"pcb_loc_y": "2",
"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": "30",
"rear_fan_size": "60",
"rear_io_shield": "false",
"sbc_bottom_standoffs": "false",
"sbc_highlight": "false",
"sbc_information": "false",
"sbc_model": "m1",
"sbc_off": "false",
"sbc_top_standoffs": "false",
"sidethick": "4",
"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": "countersunk",
"uart_opening": "none",
"view": "model",
"wallthick": "2"
},
"m1s_shell_nvme": { "m1s_shell_nvme": {
"$fn": "90", "$fn": "90",
"access_panel_location": "[0, 28]", "access_panel_location": "[0, 28]",
@@ -5017,223 +5234,6 @@
"view": "model", "view": "model",
"wallthick": "2" "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": "h3_panel_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": "0",
"case_offset_x": "0",
"case_offset_y": "25",
"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": "3",
"front_cover_pattern": "hex_5mm",
"gap": "1",
"gpio_opening": "none",
"hd_bays": "2",
"hd_center": "false",
"hd_reverse": "true",
"hd_space": "10",
"hd_y_position": "20",
"hd_z_position": "7",
"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_dualfan_spacing": "6",
"rear_fan": "1",
"rear_fan_center": "false",
"rear_fan_position": "4",
"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": "4",
"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": "3"
},
"h3_ultimate": { "h3_ultimate": {
"$fn": "90", "$fn": "90",
"access_panel_location": "[5, 30]", "access_panel_location": "[5, 30]",
@@ -5540,6 +5540,223 @@
"view": "model", "view": "model",
"wallthick": "2.5" "wallthick": "2.5"
}, },
"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": "h3_panel_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": "0",
"case_offset_x": "0",
"case_offset_y": "25",
"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": "3",
"front_cover_pattern": "hex_5mm",
"gap": "1",
"gpio_opening": "none",
"hd_bays": "2",
"hd_center": "false",
"hd_reverse": "true",
"hd_space": "10",
"hd_y_position": "20",
"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_dualfan_spacing": "6",
"rear_fan": "1",
"rear_fan_center": "false",
"rear_fan_position": "4",
"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": "4",
"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": "3"
},
"h4_panel_nas": { "h4_panel_nas": {
"$fn": "90", "$fn": "90",
"access_panel_location": "[10, 15]", "access_panel_location": "[10, 15]",

View File

@@ -83,9 +83,9 @@ case_offset_x = 0; //[0:.01:300]
// additional y axis case size // additional y axis case size
case_offset_y = 0; //[0:.01:300] case_offset_y = 0; //[0:.01:300]
// additional z axis case top size // additional z axis case top size
case_offset_tz = 0; //[-30:.01:300] case_offset_tz = 0; //[-50:.01:300]
// additional z axis case bottom size // additional z axis case bottom size
case_offset_bz = 0; //[0:.01:300] case_offset_bz = 0; //[-50:.01:300]
// case wall thickness // case wall thickness
wallthick = 2; //[1:.25:5] wallthick = 2; //[1:.25:5]
// case floor and ceiling thickness // case floor and ceiling thickness
@@ -497,7 +497,7 @@ if (view == "platter") {
translate([-20,0,-gap]) rotate([0,90,90]) translate([-20,0,-gap]) rotate([0,90,90])
case_side(case_design,"left"); case_side(case_design,"left");
// nas hd spacers // nas hd spacers
if(case_design == "panel_nas" && (pcb_width > 100 || width > 101.6)) { if(case_design == "panel_nas" && (pcb_width > 100 || width > 112)) {
if(hd_center == false) { if(hd_center == false) {
translate([0,-35,0]) rotate([270,0,0]) cableholder_spacer(hd_spacer-9.4); translate([0,-35,0]) rotate([270,0,0]) cableholder_spacer(hd_spacer-9.4);
} }
@@ -699,7 +699,7 @@ if (view == "model") {
if(hd_center == false) { if(hd_center == false) {
translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i]) translate([-gap,-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i])
hd35("portrait", [false,0,0,"default"]); hd35("portrait", [false,0,0,"default"]);
if(pcb_width > 100 || width > 101.6) { if(pcb_width > 100 || width-2*(sidethick+gap) > 101.6) {
translate([101.6-gap+hd_spacer-9.4, translate([101.6-gap+hd_spacer-9.4,
28.5-(3*wallthick)-gap+hd_y_position+101.6, 28.5-(3*wallthick)-gap+hd_y_position+101.6,
hd_z_position+6+(hd_space+27.1)*i]) hd_z_position+6+(hd_space+27.1)*i])
@@ -720,7 +720,7 @@ if (view == "model") {
translate([-gap+hd_spacer/2, translate([-gap+hd_spacer/2,
-(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i]) -(3*wallthick)-gap+hd_y_position,hd_z_position+(hd_space+27.1)*i])
hd35("portrait", [false,0,0,"default"]); hd35("portrait", [false,0,0,"default"]);
if(pcb_width > 100 || width > 101.6) { if(pcb_width > 100 || width-2*(sidethick+gap) > 101.6) {
// right side spacers // right side spacers
translate([101.6-gap+hd_spacer-9.4, translate([101.6-gap+hd_spacer-9.4,
28.5-(3*wallthick)-gap+hd_y_position+101.6, 28.5-(3*wallthick)-gap+hd_y_position+101.6,
@@ -759,7 +759,7 @@ if (view == "model") {
translate([101.6-gap,-(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]) hd_z_position+(hd_space+27.1)*i])
rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]); rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]);
if(pcb_width > 100 || width > 101.6) { if(pcb_width > 100 || width-2*(sidethick+gap) > 101.6) {
translate([101.6-gap+hd_spacer-9.4, translate([101.6-gap+hd_spacer-9.4,
17-(3*wallthick)-gap+hd_y_position+101.6, 17-(3*wallthick)-gap+hd_y_position+101.6,
hd_z_position+6.5+(hd_space+27.1)*i]) hd_z_position+6.5+(hd_space+27.1)*i])
@@ -780,7 +780,7 @@ if (view == "model") {
-(3*wallthick)-gap+hd_y_position+147, -(3*wallthick)-gap+hd_y_position+147,
hd_z_position+(hd_space+27.1)*i]) hd_z_position+(hd_space+27.1)*i])
rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]); rotate([0,0,180]) hd35("portrait", [false,0,0,"default"]);
if(pcb_width > 100 || width > 101.6) { if(pcb_width > 100 || width-2*(sidethick+gap) > 101.6) {
// right side spacers // right side spacers
translate([101.6-gap+hd_spacer-9.4, translate([101.6-gap+hd_spacer-9.4,
17-(3*wallthick)-gap+hd_y_position+101.6, 17-(3*wallthick)-gap+hd_y_position+101.6,

View File

@@ -468,7 +468,7 @@ accessory_data = [
// Odroid-H4 // Odroid-H4
["h4_panel_nas", ["h4_panel_nas",
"model","hk_pwr_button",20,175,206,"top",[0,0,0],["sbc-case_z",true,true,true],[0,0,0],[0],[true,10,2,"default"]], "model","hk_pwr_button",20,175,206,"top",[0,0,0],["case",true,true,true],[0,0,0],[0],[true,10,2,"default"]],
["show2_shell", ["show2_shell",
"model","hk_wb2",6.25,24.675,16,"bottom",[0,0,180],["sbc",true,true,true],[0,0,0],[0],[false,10,2,"default"], "model","hk_wb2",6.25,24.675,16,"bottom",[0,0,180],["sbc",true,true,true],[0,0,0],[0],[false,10,2,"default"],