reformatted c1+,c2,c4,xu4,xu4q,hc4 cases, adjusted multiple accessories and other changes.
This commit is contained in:
@@ -29,7 +29,7 @@
|
|||||||
20220515 Version 1.2.3 added m1_panel,m1_tray,m1_tray_drive,m1_tray_sides,m1_tray_vu5,m1_tray_vu7,show2_shell
|
20220515 Version 1.2.3 added m1_panel,m1_tray,m1_tray_drive,m1_tray_sides,m1_tray_vu5,m1_tray_vu7,show2_shell
|
||||||
jetsonnano_shell,jetsonnano_panel,jetsonnano_stacked,jetsonnano_tray
|
jetsonnano_shell,jetsonnano_panel,jetsonnano_stacked,jetsonnano_tray
|
||||||
rockpro64_shell,rockpro64_panel,rockpro64_stacked,rockpro64_tray
|
rockpro64_shell,rockpro64_panel,rockpro64_stacked,rockpro64_tray
|
||||||
2022xxxx Version 2.x.x seperated case data from accessory data. moved case data to customizer and json format
|
2022xxxx Version 2.x.x seperated case data from accessory data. moved case data to customizer json format
|
||||||
|
|
||||||
see https://github.com/hominoids/SBC_Case_Builder
|
see https://github.com/hominoids/SBC_Case_Builder
|
||||||
*/
|
*/
|
||||||
@@ -567,7 +567,6 @@ accessory_data = [
|
|||||||
"suball","vent",72,142,27,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
|
"suball","vent",72,142,27,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
|
||||||
"model","hc4_oled",20,137,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
|
"model","hc4_oled",20,137,2,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
|
||||||
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
|
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
|
||||||
"model","uart_strap",118,0,42,"top",[0,180,0],0,0,0,0,0,"",0, // model uart strap
|
|
||||||
"model","hd25",98,131,2,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
|
"model","hd25",98,131,2,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
|
||||||
"model","hd25",98,131,20,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
|
"model","hd25",98,131,20,"bottom",[0,0,-90],0,0,0,15,0,"",0, // model 2.5 hd
|
||||||
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
|
"model","fan_cover",125,-4,7,"bottom",[90,0,0],40,0,3,2,0,"",0, // model fan
|
||||||
@@ -616,8 +615,8 @@ accessory_data = [
|
|||||||
"sub","round",211,56.5,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
|
"sub","round",211,56.5,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
|
||||||
"sub","round",211,98.4,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
|
"sub","round",211,98.4,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
|
||||||
"sub","round",211,158.1,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
|
"sub","round",211,158.1,9.35,"bottom",[0,90,0],3,0,4,0,0,"",0, // sub hd side screw access hole
|
||||||
"suball","vent",72,142,27,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
|
"suball","vent",72,183,29,"bottom",[0,0,0],2,13,4,1,4,"vertical",1, // sub vent
|
||||||
"suball","fan",125,-.1,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
|
"suball","fan",125,-1.5,7,"bottom",[90,0,0],40,0,3,1,0,"",0, // sub fan
|
||||||
"model","hc4_oled",20,177,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
|
"model","hc4_oled",20,177,1.99,"bottom",[0,0,0],0,0,0,0,0,"",0, // model hc4 oled
|
||||||
"model","hd35",100,175,3,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
|
"model","hd35",100,175,3,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
|
||||||
"model","hd35",100,175,35,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
|
"model","hd35",100,175,35,"bottom",[0,0,-90],0,0,0,0,0,"",0, // model 3.5 hd
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,8 @@
|
|||||||
20220312 Version 1.2.0 added fillet array, button cutout style, hk_lcd35, other fixes and maintenance
|
20220312 Version 1.2.0 added fillet array, button cutout style, hk_lcd35, other fixes and maintenance
|
||||||
20220320 Version 1.2.1 added hk_boom bonnet model and accessories, hk_uart model, fixed uart opening,
|
20220320 Version 1.2.1 added hk_boom bonnet model and accessories, hk_uart model, fixed uart opening,
|
||||||
enabled pcb_z, added tabs and fixed tray case top, other fixes and maintenance
|
enabled pcb_z, added tabs and fixed tray case top, other fixes and maintenance
|
||||||
20220406 Version 1.2.2 added vu7c, vu8m and weatherboard2 models, other additions, fixes and maintenance
|
20220406 Version 1.2.2 added vu7c, vu8m and weatherboard2 models, other additions,
|
||||||
|
fixes and maintenance
|
||||||
20220515 Version 1.2.3 added odroid-m1, jetson nano, rockpro64, completed mask(), improved docs
|
20220515 Version 1.2.3 added odroid-m1, jetson nano, rockpro64, completed mask(), improved docs
|
||||||
changed tray top design
|
changed tray top design
|
||||||
2022xxxx Version 2.0.x added round, hexagon, snap and fitted cases, full customizer user interface,
|
2022xxxx Version 2.0.x added round, hexagon, snap and fitted cases, full customizer user interface,
|
||||||
@@ -67,12 +68,11 @@ move_rear = 0; // [-1:100]
|
|||||||
|
|
||||||
/* [Case Adjustments] */
|
/* [Case Adjustments] */
|
||||||
// base case design
|
// base case design
|
||||||
case_design = "shell"; // ["shell","panel","stacked","tray","round","hex","snap","fitted"]
|
case_design = "shell"; // [shell,panel,stacked,tray,round,hex,snap,fitted]
|
||||||
// base case style
|
// base case style
|
||||||
case_style = "none"; // ["none","vu5","vu7","sides"]
|
case_style = "none"; // ["none","vu5","vu7","sides"]
|
||||||
// single board computer model
|
// single board computer model
|
||||||
sbc_model = "c4"; // ["c1+","c2","c4","xu4","xu4q","mc1","hc1","hc4","n1","n2","n2+","h2","rpi3b+","a64","rock64","rockpro64","atomicpi","jetsonnano","show2"]
|
sbc_model = "c4"; // [c1+,c2,c4,xu4,xu4q,mc1,hc1,hc4,m1,n1,n2,n2+,h2,rpi3b+,a64,rock64,rockpro64,atomicpi,jetsonnano,show2]
|
||||||
|
|
||||||
// sbc location x axis
|
// sbc location x axis
|
||||||
pcb_loc_x = 0; //[0:.5:200]
|
pcb_loc_x = 0; //[0:.5:200]
|
||||||
// sbc location y axis
|
// sbc location y axis
|
||||||
@@ -112,13 +112,13 @@ case_ext_standoffs = false;
|
|||||||
// enable sata punchout
|
// enable sata punchout
|
||||||
sata_punchout = false;
|
sata_punchout = false;
|
||||||
// gpio openings
|
// gpio openings
|
||||||
gpio_opening = "none"; // ["none","vent","open","punchout"]
|
gpio_opening = "none"; // [none,vent,open,punchout]
|
||||||
// cooling openings
|
// cooling openings
|
||||||
cooling = "fan"; // ["none","vents","fan","custom"]
|
cooling = "fan"; // [none,vents,fan,custom]
|
||||||
// exhaust vents
|
// exhaust vents
|
||||||
exhaust_vents = "vent"; // ["none","vent"]
|
exhaust_vents = "vent"; // [none,vent]
|
||||||
// special mode
|
// special mode
|
||||||
mode = "none"; // ["none","net_card"]
|
mode = "none"; // [none,net_card]
|
||||||
|
|
||||||
// top case standoff - [diameter,height(top_height-pcb_loc_z),holesize,supportsize,supportheight,type(0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole),standoff style(0=hex, 1=cylinder),enable reverse standoff,enable insert at top of standoff,insert hole dia.,insert depth]
|
// top case standoff - [diameter,height(top_height-pcb_loc_z),holesize,supportsize,supportheight,type(0=none, 1=countersink, 2=recessed hole, 3=nut holder, 4=blind hole),standoff style(0=hex, 1=cylinder),enable reverse standoff,enable insert at top of standoff,insert hole dia.,insert depth]
|
||||||
top_standoff = [6.75,18,2.5,10,4,4,0,1,0,4.5,5.1];
|
top_standoff = [6.75,18,2.5,10,4,4,0,1,0,4.5,5.1];
|
||||||
@@ -452,9 +452,9 @@ module case_bottom(case_design) {
|
|||||||
vertical=[0,0,0,0], top=[0,0,0,0],
|
vertical=[0,0,0,0], top=[0,0,0,0],
|
||||||
bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(bottom_height/2)+floorthick])
|
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(bottom_height/2)+floorthick])
|
||||||
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),bottom_height+adjust],
|
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),bottom_height+adjust],
|
||||||
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
||||||
top=[0,0,0,0],bottom=[2,2,2,2], $fn=90);
|
top=[0,0,0,0],bottom=[2,2,2,2], $fn=90);
|
||||||
}
|
}
|
||||||
// right side nuts
|
// right side nuts
|
||||||
translate([width-wallthick-gap-wallthick-4+adjust,wallthick+gap+10,
|
translate([width-wallthick-gap-wallthick-4+adjust,wallthick+gap+10,
|
||||||
@@ -491,7 +491,7 @@ module case_bottom(case_design) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
translate([-wallthick-gap,depth-(2*wallthick)-gap,bottom_height-adjust])
|
translate([-wallthick-gap,depth-(2*wallthick)-gap,bottom_height-adjust])
|
||||||
rotate([0,0,0]) cube([width,wallthick,top_height-floorthick]);
|
rotate([0,0,0]) cube([width,wallthick,top_height-floorthick]);
|
||||||
}
|
}
|
||||||
// rear panel
|
// rear panel
|
||||||
translate([-wallthick-gap,-wallthick-gap,bottom_height-adjust])
|
translate([-wallthick-gap,-wallthick-gap,bottom_height-adjust])
|
||||||
@@ -579,7 +579,8 @@ module case_bottom(case_design) {
|
|||||||
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||||
translate([(width/2)-wallthick-gap,
|
translate([(width/2)-wallthick-gap,
|
||||||
(depth/2)-wallthick-gap,(case_z/2)+floorthick])
|
(depth/2)-wallthick-gap,(case_z/2)+floorthick])
|
||||||
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z+floorthick],
|
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),
|
||||||
|
case_z+floorthick],
|
||||||
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
||||||
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||||
difference() {
|
difference() {
|
||||||
@@ -623,26 +624,32 @@ module case_bottom(case_design) {
|
|||||||
if(case_design == "tray") {
|
if(case_design == "tray") {
|
||||||
// right side bottom attachment holes
|
// right side bottom attachment holes
|
||||||
translate([width-2*(wallthick+gap)-sidethick-adjust,wallthick+gap+10,
|
translate([width-2*(wallthick+gap)-sidethick-adjust,wallthick+gap+10,
|
||||||
((bottom_height+floorthick)/2)-1]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust));
|
((bottom_height+floorthick)/2)-1]) rotate([0,90,0])
|
||||||
|
cylinder(d=3, h=10+sidethick+(2*adjust));
|
||||||
if(depth >= 75) {
|
if(depth >= 75) {
|
||||||
translate([width-2*(wallthick+gap)-sidethick-adjust,depth-wallthick-gap-10,
|
translate([width-2*(wallthick+gap)-sidethick-adjust,depth-wallthick-gap-10,
|
||||||
((bottom_height+floorthick)/2)-1]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust));
|
((bottom_height+floorthick)/2)-1]) rotate([0,90,0])
|
||||||
|
cylinder(d=3, h=10+sidethick+(2*adjust));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
translate([width-2*(wallthick+gap)-sidethick-adjust,wallthick+gap+40,
|
translate([width-2*(wallthick+gap)-sidethick-adjust,wallthick+gap+40,
|
||||||
((bottom_height+floorthick)/2)-1]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust));
|
((bottom_height+floorthick)/2)-1]) rotate([0,90,0])
|
||||||
|
cylinder(d=3, h=10+sidethick+(2*adjust));
|
||||||
}
|
}
|
||||||
|
|
||||||
// left side bottom attachment holes
|
// left side bottom attachment holes
|
||||||
translate([-wallthick-gap-adjust,wallthick+gap+10,
|
translate([-wallthick-gap-adjust,wallthick+gap+10,
|
||||||
((bottom_height+floorthick)/2)-1]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust));
|
((bottom_height+floorthick)/2)-1]) rotate([0,90,0])
|
||||||
|
cylinder(d=3, h=10+sidethick+(2*adjust));
|
||||||
if(depth >= 75) {
|
if(depth >= 75) {
|
||||||
translate([-wallthick-gap-adjust-6,depth-wallthick-gap-10,
|
translate([-wallthick-gap-adjust-6,depth-wallthick-gap-10,
|
||||||
((bottom_height+floorthick)/2)-1]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust));
|
((bottom_height+floorthick)/2)-1]) rotate([0,90,0])
|
||||||
|
cylinder(d=3, h=10+sidethick+(2*adjust));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
translate([-wallthick-gap-adjust-6,wallthick+gap+40,
|
translate([-wallthick-gap-adjust-6,wallthick+gap+40,
|
||||||
((bottom_height+floorthick)/2)-1]) rotate([0,90,0]) cylinder(d=3, h=10+sidethick+(2*adjust));
|
((bottom_height+floorthick)/2)-1]) rotate([0,90,0])
|
||||||
|
cylinder(d=3, h=10+sidethick+(2*adjust));
|
||||||
}
|
}
|
||||||
// right side bottom nut inset
|
// right side bottom nut inset
|
||||||
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+10,
|
translate([width-3.5-(2*wallthick)-gap-.6,wallthick+gap+10,
|
||||||
@@ -785,44 +792,44 @@ module case_bottom(case_design) {
|
|||||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 10) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 10) {
|
||||||
if(sbc_model == "h2" && mode == "net_card" && i == 7) {
|
if(sbc_model == "h2" && mode == "net_card" && i == 7) {
|
||||||
netcard_standoff = [bottom_standoff[0], // diameter
|
netcard_standoff = [bottom_standoff[0],
|
||||||
bottom_height-pcb_z-4, // height bottom_height-pcb_z
|
bottom_height-pcb_z-4,
|
||||||
bottom_standoff[2], // holesize
|
bottom_standoff[2],
|
||||||
bottom_standoff[3], // supportsize
|
bottom_standoff[3],
|
||||||
bottom_standoff[4], // supportheight
|
bottom_standoff[4],
|
||||||
bottom_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind
|
bottom_standoff[5],
|
||||||
bottom_standoff[6], // standoff style 0=hex, 1=cylinder
|
bottom_standoff[6],
|
||||||
bottom_standoff[7], // enable reverse standoff
|
bottom_standoff[7],
|
||||||
bottom_standoff[8], // enable insert at top of standoff
|
bottom_standoff[8],
|
||||||
bottom_standoff[9], // insert hole dia. mm
|
bottom_standoff[9],
|
||||||
bottom_standoff[10]]; // insert depth mm
|
bottom_standoff[10]];
|
||||||
translate([pcb_hole_x-(netcard_standoff[0]/2)-2.6+adjust, pcb_hole_y-gap,0])
|
translate([pcb_hole_x-(netcard_standoff[0]/2)-2.6+adjust, pcb_hole_y-gap,0])
|
||||||
cube([gap+1.6,2,netcard_standoff[1]]);
|
cube([gap+1.6,2,netcard_standoff[1]]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
translate([pcb_hole_x-(bottom_standoff[0]/2)-2.6+adjust, pcb_hole_y-gap,0])
|
translate([pcb_hole_x-(bottom_standoff[0]/2)-2.6+adjust, pcb_hole_y-gap,0])
|
||||||
cube([gap+1.6,2,bottom_standoff[1]]);
|
cube([gap+1.6,2,bottom_height-pcb_z+pcb_loc_z]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 13 || i == 16) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 13 || i == 16) {
|
||||||
if(sbc_model == "h2" && mode == "net_card" && i == 13) {
|
if(sbc_model == "h2" && mode == "net_card" && i == 13) {
|
||||||
netcard_standoff = [bottom_standoff[0], // diameter
|
netcard_standoff = [bottom_standoff[0],
|
||||||
bottom_height-pcb_z-4, // height bottom_height-pcb_z
|
bottom_height-pcb_z-4,
|
||||||
bottom_standoff[2], // holesize
|
bottom_standoff[2],
|
||||||
bottom_standoff[3], // supportsize
|
bottom_standoff[3],
|
||||||
bottom_standoff[4], // supportheight
|
bottom_standoff[4],
|
||||||
bottom_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind
|
bottom_standoff[5],
|
||||||
bottom_standoff[6], // standoff style 0=hex, 1=cylinder
|
bottom_standoff[6],
|
||||||
bottom_standoff[7], // enable reverse standoff
|
bottom_standoff[7],
|
||||||
bottom_standoff[8], // enable insert at top of standoff
|
bottom_standoff[8],
|
||||||
bottom_standoff[9], // insert hole dia. mm
|
bottom_standoff[9],
|
||||||
bottom_standoff[10]]; // insert depth mm
|
bottom_standoff[10]];
|
||||||
translate([pcb_hole_x+(netcard_standoff[0]/2)-.5+adjust, pcb_hole_y-gap,0])
|
translate([pcb_hole_x+(netcard_standoff[0]/2)-.5+adjust, pcb_hole_y-gap,0])
|
||||||
cube([gap+1.5,2,netcard_standoff[1]]);
|
cube([gap+1.5,2,netcard_standoff[1]]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
translate([pcb_hole_x+(bottom_standoff[0]/2)-.5+adjust, pcb_hole_y-gap,0])
|
translate([pcb_hole_x+(bottom_standoff[0]/2)-.5+adjust, pcb_hole_y-gap,0])
|
||||||
cube([gap+1.5,2,bottom_standoff[1]]);
|
cube([gap+1.5,2,bottom_height-pcb_z+pcb_loc_z]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -832,14 +839,15 @@ module case_bottom(case_design) {
|
|||||||
if(case_ext_standoffs == true && sidewall_support == true) {
|
if(case_ext_standoffs == true && sidewall_support == true) {
|
||||||
// right-rear standoff
|
// right-rear standoff
|
||||||
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
||||||
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(bottom_ext_standoff[0]/2)-.5,(c_fillet/2)-1,0])
|
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(bottom_ext_standoff[0]/2)-.5,
|
||||||
cube([gap+adjust+2,2,bottom_ext_standoff[1]]);
|
(c_fillet/2)-1,0]) cube([gap+adjust+2,2,bottom_ext_standoff[1]]);
|
||||||
}
|
}
|
||||||
// right-front standoff
|
// right-front standoff
|
||||||
if((width-pcb_loc_x-pcb_width >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || width-pcb_loc_x-pcb_width >= 10) {
|
if((width-pcb_loc_x-pcb_width >= 10 && depth-pcb_loc_y-pcb_depth >= 10)
|
||||||
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(bottom_ext_standoff[0]/2)-.5,
|
|| width-pcb_loc_x-pcb_width >= 10) {
|
||||||
depth-(c_fillet/2)-(2*(wallthick+gap))-1,0])
|
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(bottom_ext_standoff[0]/2)-.5,
|
||||||
cube([gap+adjust+2,2,bottom_ext_standoff[1]]);
|
depth-(c_fillet/2)-(2*(wallthick+gap))-1,0])
|
||||||
|
cube([gap+adjust+2,2,bottom_ext_standoff[1]]);
|
||||||
}
|
}
|
||||||
// left-rear standoff
|
// left-rear standoff
|
||||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||||
@@ -849,7 +857,8 @@ module case_bottom(case_design) {
|
|||||||
// left-front standoff
|
// left-front standoff
|
||||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||||
translate([(c_fillet/2)-(wallthick+gap)-(bottom_ext_standoff[0]/2)+.6,
|
translate([(c_fillet/2)-(wallthick+gap)-(bottom_ext_standoff[0]/2)+.6,
|
||||||
depth-(c_fillet/2)-(2*(wallthick+gap))-1,0]) cube([gap+adjust+2,2,bottom_ext_standoff[1]]);
|
depth-(c_fillet/2)-(2*(wallthick+gap))-1,0])
|
||||||
|
cube([gap+adjust+2,2,bottom_ext_standoff[1]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1194,17 +1203,17 @@ module case_top(case_design) {
|
|||||||
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
||||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0) {
|
||||||
normal_standoff = [top_standoff[0], // diameter
|
normal_standoff = [top_standoff[0],
|
||||||
top_height+pcb_loc_z, // height bottom_height-pcb_z
|
top_height+pcb_loc_z,
|
||||||
top_standoff[2], // holesize
|
top_standoff[2],
|
||||||
top_standoff[3], // supportsize
|
top_standoff[3],
|
||||||
top_standoff[4], // supportheight
|
top_standoff[4],
|
||||||
top_standoff[5], // 1=countersink, 2=recessed hole, 3=nut holder, 4=blind
|
top_standoff[5],
|
||||||
top_standoff[6], // standoff style 0=hex, 1=cylinder
|
top_standoff[6],
|
||||||
top_standoff[7], // enable reverse standoff
|
top_standoff[7],
|
||||||
top_standoff[8], // enable insert at top of standoff
|
top_standoff[8],
|
||||||
top_standoff[9], // insert hole dia. mm
|
top_standoff[9],
|
||||||
top_standoff[10]]; // insert depth mm
|
top_standoff[10]];
|
||||||
translate([pcb_hole_x,pcb_hole_y,case_z]) standoff(normal_standoff);
|
translate([pcb_hole_x,pcb_hole_y,case_z]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1217,10 +1226,10 @@ module case_top(case_design) {
|
|||||||
standoff(top_ext_standoff);
|
standoff(top_ext_standoff);
|
||||||
}
|
}
|
||||||
// right-front standoff
|
// right-front standoff
|
||||||
if((width-pcb_loc_x-pcb_width >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || width-pcb_loc_x-pcb_width >= 10) {
|
if((width-pcb_loc_x-pcb_width >= 10 && depth-pcb_loc_y-pcb_depth >= 10)
|
||||||
translate([width-(c_fillet/2)-(2*(wallthick+gap)),
|
|| width-pcb_loc_x-pcb_width >= 10) {
|
||||||
depth-(c_fillet/2)-(2*(wallthick+gap)),case_z])
|
translate([width-(c_fillet/2)-(2*(wallthick+gap)),
|
||||||
standoff(top_ext_standoff);
|
depth-(c_fillet/2)-(2*(wallthick+gap)),case_z]) standoff(top_ext_standoff);
|
||||||
}
|
}
|
||||||
// left-rear standoff
|
// left-rear standoff
|
||||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||||
@@ -1241,12 +1250,12 @@ module case_top(case_design) {
|
|||||||
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
||||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 13) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 13) {
|
||||||
translate([pcb_hole_x-1, pcb_hole_y-(top_standoff[0]/2)-(gap-adjust)-1.4,-case_z])
|
translate([pcb_hole_x-1, pcb_hole_y-(top_standoff[0]/2)-(gap-adjust)-1.4,
|
||||||
cube([2,gap+1.6,top_standoff[1]]);
|
-case_z]) cube([2,gap+1.6,top_height]);
|
||||||
}
|
}
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 10 || i == 16) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 10 || i == 16) {
|
||||||
translate([pcb_hole_x-1, pcb_hole_y+(top_standoff[0]/2)-.6+adjust,-case_z])
|
translate([pcb_hole_x-1, pcb_hole_y+(top_standoff[0]/2)-.6+adjust,-case_z])
|
||||||
cube([2,gap+1.6,top_standoff[1]]);
|
cube([2,gap+1.6,top_height]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1257,12 +1266,12 @@ module case_top(case_design) {
|
|||||||
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
pcb_hole_y = sbc_data[s[0]][i+1]+pcb_loc_y;
|
||||||
pcb_hole_size = sbc_data[s[0]][i+2];
|
pcb_hole_size = sbc_data[s[0]][i+2];
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 10) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 7 || i == 10) {
|
||||||
translate([pcb_hole_x+pcb_loc_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,bottom_height+adjust])
|
translate([pcb_hole_x+pcb_loc_x-(top_standoff[0]/2)-gap-adjust-.45,pcb_hole_y-1,
|
||||||
cube([gap+adjust+1,2,top_standoff[1]]);
|
bottom_height+adjust]) cube([gap+adjust+1,2,top_height]);
|
||||||
}
|
}
|
||||||
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 13 || i == 16) {
|
if (pcb_hole_x!=0 && pcb_hole_y!=0 && i == 13 || i == 16) {
|
||||||
translate([pcb_hole_x+pcb_loc_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,bottom_height+adjust])
|
translate([pcb_hole_x+pcb_loc_x+(top_standoff[0]/2)-adjust-.45,pcb_hole_y-1,
|
||||||
cube([gap+adjust+1,2,top_standoff[1]]);
|
bottom_height+adjust]) cube([gap+adjust+1,2,top_height]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1271,24 +1280,26 @@ module case_top(case_design) {
|
|||||||
if(case_ext_standoffs == true && sidewall_support == true) {
|
if(case_ext_standoffs == true && sidewall_support == true) {
|
||||||
// right-rear standoff
|
// right-rear standoff
|
||||||
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
||||||
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(top_ext_standoff[0]/2)-.6,(c_fillet/2)-1,bottom_height])
|
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(top_ext_standoff[0]/2)-.6,
|
||||||
cube([gap+adjust+2,2,top_standoff[1]]);
|
(c_fillet/2)-1,bottom_height]) cube([gap+adjust+2,2,top_height]);
|
||||||
}
|
}
|
||||||
// right-front standoff
|
// right-front standoff
|
||||||
if((width-pcb_loc_x-pcb_width >= 10 && depth-pcb_loc_y-pcb_depth >= 10) || width-pcb_loc_x-pcb_width >= 10) {
|
if((width-pcb_loc_x-pcb_width >= 10 && depth-pcb_loc_y-pcb_depth >= 10)
|
||||||
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(top_ext_standoff[0]/2)-.6,
|
|| width-pcb_loc_x-pcb_width >= 10) {
|
||||||
depth-(c_fillet/2)-(2*(wallthick+gap))-1,bottom_height])
|
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(top_ext_standoff[0]/2)-.6,
|
||||||
cube([gap+adjust+2,2,top_ext_standoff[1]]);
|
depth-(c_fillet/2)-(2*(wallthick+gap))-1,bottom_height])
|
||||||
|
cube([gap+adjust+2,2,top_height]);
|
||||||
}
|
}
|
||||||
// left-rear standoff
|
// left-rear standoff
|
||||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||||
translate([(c_fillet/2)-(wallthick+gap)-(top_ext_standoff[0]/2)+.6,(c_fillet/2)-1,
|
translate([(c_fillet/2)-(wallthick+gap)-(top_ext_standoff[0]/2)+.6,(c_fillet/2)-1,
|
||||||
bottom_height]) cube([gap+adjust+2,2,top_ext_standoff[1]]);
|
bottom_height]) cube([gap+adjust+2,2,top_height]);
|
||||||
}
|
}
|
||||||
// left-front standoff
|
// left-front standoff
|
||||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||||
translate([(c_fillet/2)-(wallthick+gap)-(top_ext_standoff[0]/2)+.6,depth-(c_fillet/2)-(2*(wallthick+gap))-1,
|
translate([(c_fillet/2)-(wallthick+gap)-(top_ext_standoff[0]/2)+.6,
|
||||||
bottom_height]) cube([gap+adjust+2,2,top_ext_standoff[1]]);
|
depth-(c_fillet/2)-(2*(wallthick+gap))-1, bottom_height])
|
||||||
|
cube([gap+adjust+2,2,top_height]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1626,7 +1637,8 @@ module case_side(case_design,case_style,side) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "hc4_oled_holder") {
|
if ((class == "add1" || class == "add2") && face == "bottom" && type == "hc4_oled_holder") {
|
||||||
sub("rectangle",loc_x+1,loc_y+1.75,loc_z+25.5,face,rotation,26.5,wallthick+gap+4,15,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
sub("rectangle",loc_x+1,loc_y+1.75,loc_z+25.5,face,rotation,26.5,
|
||||||
|
wallthick+gap+4,15,data_1,data_2,data_3,[.1,.1,.1,.1]);
|
||||||
}
|
}
|
||||||
if ((class == "add1" || class == "add2") && face == "bottom" && type == "access_port") {
|
if ((class == "add1" || class == "add2") && face == "bottom" && type == "access_port") {
|
||||||
if(data_3 == "landscape") {
|
if(data_3 == "landscape") {
|
||||||
@@ -1728,9 +1740,15 @@ module open_io() {
|
|||||||
if(side == "bottom" && cooling == "custom" && class == "heatsink") {
|
if(side == "bottom" && cooling == "custom" && class == "heatsink") {
|
||||||
translate([loc_x+12,loc_y-14,-(floorthick-adjust)])
|
translate([loc_x+12,loc_y-14,-(floorthick-adjust)])
|
||||||
linear_extrude(height = wallthick+(2*adjust)) import(file = "./dxf/customfan.dxf");
|
linear_extrude(height = wallthick+(2*adjust)) import(file = "./dxf/customfan.dxf");
|
||||||
}
|
}
|
||||||
|
if(side == "bottom" && exhaust_vents == "vent" && (cooling == "fan" || cooling == "vents"
|
||||||
|
|| cooling == "custom") && class == "heatsink" && gpio_opening != "vent" && gpio_opening != "open"
|
||||||
|
&& gpio_opening != "punchout") {
|
||||||
|
for(r=[loc_x+7:4:46+loc_x]) {
|
||||||
|
translate([r,depth-(2*wallthick)-adjust-2,floorthick+2])
|
||||||
|
cube([2,wallthick+(2*adjust)+1,top_height-floorthick-6]);
|
||||||
|
}
|
||||||
|
}
|
||||||
// top cooling openings
|
// top cooling openings
|
||||||
if(side == "top" && cooling == "fan" && class == "heatsink"
|
if(side == "top" && cooling == "fan" && class == "heatsink"
|
||||||
&& type != "h2_oem" && type != "n2_oem" && type != "n2+_oem") {
|
&& type != "h2_oem" && type != "n2_oem" && type != "n2+_oem") {
|
||||||
|
|||||||
Reference in New Issue
Block a user