finished named standoff size for extended standoffs, added mini-stx-thin adapter and io shield, updated readme.md and other fixes.

This commit is contained in:
Edward Kisiel
2024-04-24 16:09:44 -04:00
parent 74084eebde
commit 045aa2874a
9 changed files with 855 additions and 404 deletions

View File

@@ -840,9 +840,10 @@ DESCRIPTION: creates standoffs.
rotation[] = object rotation
parametric[] = "case", "sbc", "sbc-case_z"
size[] = not used
data[0] = [radius,height,holesize,supportsize,supportheight,sink,pillarstyle,pillarsupport,reverse,insert_e,i_dia,i_depth]
data[0] = [size,diameter,height,holesize,supportsize,supportheight,sink,pillarstyle,pillarsupport,reverse,insert_e,i_dia,i_depth]
radius = pillar radius
size = "m2_tap","m2","m2+","m2.5_tap","m2.5","m2.5+","m3_tap","m3","m3+","m4_tap","m4","m4+","custom"
diameter = pillar radius
height = total height
holesize = hole diameter
supportsize = support size for sink

View File

@@ -73,16 +73,16 @@ module fans(style, mask) {
if(enablemask == true) {
if(mstyle == "fan_open") {
translate([0, 0, -mlength+msetback-1]) fan_mask(diameter, mlength, "fan_open");
translate([0, 0, thickness-msetback+1]) fan_mask(diameter, mlength, "fan_open");
}
if(mstyle == "default" || mstyle == "fan_1") {
translate([0, 0, -mlength+msetback-1]) fan_mask(diameter, mlength, "fan_1");
translate([0, 0, thickness-msetback+1]) fan_mask(diameter, mlength, "fan_1");
}
if(mstyle == "fan_2") {
translate([0, 0, -mlength+msetback-1]) fan_mask(diameter, mlength, "fan_2");
translate([0, 0, thickness-msetback+1]) fan_mask(diameter, mlength, "fan_2");
}
if(mstyle == "fan_hex") {
translate([0, 0, -mlength+msetback-1]) fan_mask(diameter, mlength, "fan_hex");
translate([0, 0, thickness-msetback+1]) fan_mask(diameter, mlength, "fan_hex");
}
}
if(enablemask == false) {

View File

@@ -25,9 +25,10 @@
USAGE: standoff(stand_off, mask)
stand_off[diameter, height, holesize, supportsize, supportheight, sink, pillarstyle,
stand_off[size, diameter, height, holesize, supportsize, supportheight, sink, pillarstyle,
pillarsupport, reverse, insert_e, i_dia, i_depth], mask)
size = "m2_tap","m2","m2+","m2.5_tap","m2.5","m2.5+","m3_tap","m3","m3+","m4_tap","m4","m4+","custom"
diameter = pillar diameter
height = total height
holesize = hole diameter
@@ -50,23 +51,39 @@
module standoff(stand_off, mask){
diameter = stand_off[0];
height = stand_off[1];
holesize = stand_off[2];
supportsize = stand_off[3];
supportheight = stand_off[4];
sink = stand_off[5];
pillarstyle = stand_off[6];
pillarsupport = stand_off[7];
reverse = stand_off[8];
insert_e = stand_off[9];
i_dia = stand_off[10];
i_depth = stand_off[11];
size = stand_off[0];
diameter = size == "m2_tap" || size == "m2" || size == "m2+" ? 4 :
size == "m2.5_tap" || size == "m2.5" || size == "m2.5+" ? 4 :
size == "m3_tap" || size == "m3" || size == "m3+" ? 5 :
size == "m4_tap" || size == "m4" || size == "m4+" ? 6 : stand_off[1];
height = stand_off[2];
holesize = size == "m2_tap" ? 1.6 : size == "m2" ? 2 : size == "m2+" ? 2.26 :
size == "m2.5_tap" ? 2.05 : size == "m2.5" ? 2.5 : size == "m2.5+" ? 2.83 :
size == "m3_tap" ? 2.5 : size == "m3" ? 3 : size == "m3+" ? 3.4 :
size == "m4_tap" ? 3.3 : size == "m4" ? 4 : size == "m4+" ? 4.4 : stand_off[3];
supportsize = stand_off[4];
supportheight = stand_off[5];
sink = stand_off[6];
pillarstyle = stand_off[7];
pillarsupport = stand_off[8];
reverse = stand_off[9];
insert_e = stand_off[10];
i_dia = stand_off[11];
i_depth = stand_off[12];
enablemask = mask[0];
mlength = mask[1];
msetback = mask[2];
mstyle = mask[3];
ps = size == "m2_tap" || size == "m2" || size == "m2+" ? 4 :
size == "m2.5_tap" || size == "m2.5" || size == "m2.5+" ? 5 :
size == "m3_tap" || size == "m3" || size == "m3+" ? 6.72 :
size == "m4_tap" || size == "m4" || size == "m4+" ? 8.96 : (2*holesize)+.5;
ds = size == "m2_tap" || size == "m2" || size == "m2+" ? 1.2 :
size == "m2.5_tap" || size == "m2.5" || size == "m2.5+" ? 1.5 :
size == "m3_tap" || size == "m3" || size == "m3+" ? 1.86 :
size == "m4_tap" || size == "m4" || size == "m4+" ? 2.48 : holesize*.465;
adj = 0.1;
$fn = 90;
@@ -136,14 +153,10 @@ module standoff(stand_off, mask){
}
// countersink hole
if(sink == "countersunk" && reverse == false) {
hs = holesize == 2 ? 4 : holesize == 2.5 ? 5 : holesize == 3 ? 6.72 : holesize == 4 ? 8.96 : (2*holesize)+.5;
ds = holesize == 2 ? 1.2 : holesize == 2.5 ? 1.5 : holesize == 3 ? 1.86 : holesize == 4 ? 2.48 : 3.5;
translate([0,0,-adj]) cylinder(d1=hs, d2=holesize, h=ds);
translate([0,0,-adj]) cylinder(d1=ps, d2=holesize, h=ds);
}
if(sink == "countersunk" && reverse == true) {
hs = holesize == 2 ? 4 : holesize == 2.5 ? 5 : holesize == 3 ? 6.72 : holesize == 4 ? 8.96 : (2*holesize)+.5;
ds = holesize == 2 ? 1.2 : holesize == 2.5 ? 1.5 : holesize == 3 ? 1.86 : holesize == 4 ? 2.48 : 3.5;
translate([0,0,+adj-ds]) cylinder(d1=holesize, d2=hs, h=ds);
translate([0,0,+adj-ds]) cylinder(d1=holesize, d2=ps, h=ds);
}
// recessed hole
if(sink == "recessed" && reverse == false) {
@@ -154,14 +167,10 @@ module standoff(stand_off, mask){
}
// nut holder
if(sink == "nut holder" && reverse == false) {
hs = holesize == 2 ? 4 : holesize == 2.5 ? 5 : holesize == 3 ? 5.5 : holesize == 4 ? 7 : (2*holesize)+.5;
ds = holesize == 2 ? 1.6 : holesize == 2.5 ? 2 : holesize == 3 ? 2.4 : holesize == 4 ? 3.2 : 3.5;
translate([0,0,-adj]) cylinder(d=hs*2/sqrt(3),h=ds,$fn=6);
translate([0,0,-adj]) cylinder(d=ps*2/sqrt(3),h=ds,$fn=6);
}
if(sink == "nut holder" && reverse == true) {
hs = holesize == 2 ? 4 : holesize == 2.5 ? 5 : holesize == 3 ? 5.5 : holesize == 4 ? 7 : (2*holesize)+.5;
ds = holesize == 2 ? 1.6 : holesize == 2.5 ? 2 : holesize == 3 ? 2.4 : holesize == 4 ? 3.2 : 3.5;
translate([0,0,+adj-ds]) cylinder(d=hs*2/sqrt(3),h=ds,$fn=6);
translate([0,0,+adj-ds]) cylinder(d=ps*2/sqrt(3),h=ds,$fn=6);
}
// blind hole
if(sink == "blind" && reverse == false) {

View File

@@ -56,6 +56,8 @@ mb_adapters=[
["left_front", 6.35, 165.1], ["right_front", 163.83, 165.1]],
["adapter_mini-stx", 140, 147, ["left_rear", 5, 5], ["right_rear", 135, 5],
["left_front", 5, 142], ["right_front", 135, 142]],
["adapter_mini-stx_thin", 140, 147, ["left_rear", 5, 5], ["right_rear", 135, 5],
["left_front", 5, 142], ["right_front", 135, 142]],
];
mb = search([case_design],mb_adapters);
@@ -119,20 +121,20 @@ mb_adapters=[
pcbhole_pos = sbc_data[s[0]][i+10][4];
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear" &&
bottom_rear_left_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=6.5, h=bottom_height);
bottom_rear_left_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front" &&
bottom_front_left_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=6.5, h=bottom_height);
bottom_front_left_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear" &&
bottom_rear_right_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=6.5, h=bottom_height);
bottom_rear_right_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front" &&
bottom_front_right_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=6.5, h=bottom_height);
bottom_front_right_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
}
}
@@ -244,67 +246,71 @@ mb_adapters=[
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" || pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
if (pcbhole_pos == "left_rear" && bottom_rear_left_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_rear_left_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_rear_left_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "left_front" && bottom_front_left_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_front_left_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_front_left_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_rear" && bottom_rear_right_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_rear_right_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_rear_right_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_front" && bottom_front_right_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_front_right_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_front_right_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
}
}
@@ -364,10 +370,10 @@ mb_adapters=[
*/
module io_shield() {
io_window_x = case_design == ("adapter_mini-stx") ? 123.95 : 158.75;
io_window_x = case_design == "adapter_mini-stx_thin" || case_design == ("adapter_mini-stx") ? 123.95 : 158.75;
io_window_y = 4;
io_window_z = case_design == "adapter_mini-stx" ? 40 : case_design == "adapter_mini-itx_thin" ? 25 : 44;
io_offset = case_design == "adapter_mini-stx" ? 1.2 : 10.79;
io_window_z = case_design == "adapter_mini-stx" ? 40 : case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-itx_thin" ? 25 : 44;
io_offset = case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx" ? 1.2 : 10.79;
difference() {
union() {

View File

@@ -385,20 +385,20 @@ echo(pcb_depth+case_offset_y-10);
pcbhole_pos = sbc_data[s[0]][i+10][4];
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear" &&
bottom_rear_left_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[3]-.2, h=bottom_height);
bottom_rear_left_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front" &&
bottom_front_left_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[3]-.2, h=bottom_height);
bottom_front_left_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear" &&
bottom_rear_right_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[3]-.2, h=bottom_height);
bottom_rear_right_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front" &&
bottom_front_right_enable == true && bottom_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[3]-.2, h=bottom_height);
bottom_front_right_enable == true && bottom_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,-1]) cylinder(d=bottom_standoff[4]-.2, h=bottom_height);
}
}
@@ -407,32 +407,32 @@ echo(pcb_depth+case_offset_y-10);
if(ext_bottom_standoffs == true) {
// right-rear standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10)) &&
ext_bottom_rear_right_enable == true && ext_bottom_standoff[5] != "blind") {
ext_bottom_rear_right_enable == true && ext_bottom_standoff[6] != "blind") {
translate([width-ext_bottom_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[3]-.2, h=bottom_height);
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
// right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_bottom_front_right_enable == true && ext_bottom_standoff[5] != "blind") {
ext_bottom_front_right_enable == true && ext_bottom_standoff[6] != "blind") {
translate([width-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),-1])
cylinder(d=ext_bottom_standoff[3]-.2, h=bottom_height);
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
// left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_left_enable == true && ext_bottom_standoff[5] != "blind") {
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_bottom_standoff_support_size/4,
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[3]-.2, h=bottom_height);
(corner_fillet/2)+ext_bottom_standoff_support_size/4,-1]) cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
// left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) &&
ext_bottom_front_left_enable == true && ext_bottom_standoff[5] != "blind") {
ext_bottom_front_left_enable == true && ext_bottom_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_bottom_standoff_support_size/4,
depth-ext_bottom_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),-1])
cylinder(d=ext_bottom_standoff[3]-.2, h=bottom_height);
cylinder(d=ext_bottom_standoff[4]-.2, h=bottom_height);
}
}
// bottom cover pattern
@@ -459,14 +459,17 @@ echo(pcb_depth+case_offset_y-10);
}
// rear io shield opening for standard form motherboards
if(rear_io_shield == true) {
if(sbc_model == "mini-stx_thin") {
translate([6.2+pcb_loc_x,-4.5,-4.4+bottom_height-pcb_z+pcb_loc_z]) cube([123.95, 10+pcb_loc_y, 25]);
}
if(sbc_model == "mini-stx") {
translate([6.2+pcb_loc_x,-4.5,-4.4+bottom_height-case_offset_bz-pcb_z+pcb_loc_z]) cube([123.95, 10+pcb_loc_y, 40]);
translate([6.2+pcb_loc_x,-4.5,-4.4+bottom_height-pcb_z+pcb_loc_z]) cube([123.95, 10+pcb_loc_y, 40]);
}
if(sbc_model == "mini-itx_thin") {
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-case_offset_bz-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 25]);
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 25]);
}
if(sbc_model != "mini-stx" && sbc_model != "mini-itx_thin") {
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-case_offset_bz-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 44]);
if(sbc_model != "mini-stx_thin" && sbc_model != "mini-stx" && sbc_model != "mini-itx_thin") {
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 44]);
}
}
}
@@ -486,67 +489,71 @@ echo(pcb_depth+case_offset_y-10);
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" || pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
if (pcbhole_pos == "left_rear" && bottom_rear_left_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_rear_left_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_rear_left_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "left_front" && bottom_front_left_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_front_left_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_front_left_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_rear" && bottom_rear_right_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_rear_right_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_rear_right_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_front" && bottom_front_right_enable == true) {
bottom_support = bottom_sidewall_support == true ? bottom_front_right_support : "none";
normal_standoff = [bottom_standoff[0],
pcb_standoff = [bottom_standoff[0],
bottom_standoff[1],
bottom_height-pcb_z+pcb_loc_z+bottom_front_right_adjust,
bottom_standoff[2],
bottom_standoff[3],
bottom_standoff[4],
bottom_standoff[5],
bottom_standoff[6],
bottom_standoff[7],
bottom_support,
bottom_standoff[8],
bottom_standoff[9],
bottom_standoff[10],
bottom_standoff[11]];
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff,[false,10,2,"default"]);
bottom_standoff[11],
bottom_standoff[12]];
translate([pcbhole_x,pcbhole_y,0]) standoff(pcb_standoff,[false,10,2,"default"]);
}
}
}
@@ -556,78 +563,82 @@ echo(pcb_depth+case_offset_y-10);
if(ext_bottom_standoffs == true) {
// extended right-rear standoff
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_right_enable == true) {
normal_standoff = [ext_bottom_standoff[0],
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_rear_right_adjust,
ext_bottom_standoff[2],
ext_bottom_standoff[3],
ext_bottom_standoff[4],
ext_bottom_standoff[5],
ext_bottom_standoff[6],
ext_bottom_standoff[7],
ext_bottom_rear_right_support,
ext_bottom_standoff[8],
ext_bottom_standoff[9],
ext_bottom_standoff[10],
ext_bottom_standoff[11]];
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(normal_standoff,[false,10,2,"default"]);
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_bottom_front_right_enable == true) {
normal_standoff = [ext_bottom_standoff[0],
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_front_right_adjust,
ext_bottom_standoff[2],
ext_bottom_standoff[3],
ext_bottom_standoff[4],
ext_bottom_standoff[5],
ext_bottom_standoff[6],
ext_bottom_standoff[7],
ext_bottom_front_right_support,
ext_bottom_standoff[8],
ext_bottom_standoff[9],
ext_bottom_standoff[10],
ext_bottom_standoff[11]];
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0]) standoff(normal_standoff,[false,10,2,"default"]);
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_bottom_rear_left_enable == true) {
normal_standoff = [ext_bottom_standoff[0],
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_rear_left_adjust,
ext_bottom_standoff[2],
ext_bottom_standoff[3],
ext_bottom_standoff[4],
ext_bottom_standoff[5],
ext_bottom_standoff[6],
ext_bottom_standoff[7],
ext_bottom_rear_left_support,
ext_bottom_standoff[8],
ext_bottom_standoff[9],
ext_bottom_standoff[10],
ext_bottom_standoff[11]];
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(normal_standoff,[false,10,2,"default"]);
(corner_fillet/2)+ext_top_standoff_support_size/4,0]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-front standoff
if(((pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) >= 10) ||
(pcb_loc_x <= 10 && depth-(pcb_loc_y+pcb_depth) >= 10) ||
(pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) <= 10)) &&
ext_bottom_front_left_enable == true) {
normal_standoff = [ext_bottom_standoff[0],
extended_standoff = [ext_bottom_standoff[0],
ext_bottom_standoff[1],
bottom_height+ext_bottom_front_left_adjust,
ext_bottom_standoff[2],
ext_bottom_standoff[3],
ext_bottom_standoff[4],
ext_bottom_standoff[5],
ext_bottom_standoff[6],
ext_bottom_standoff[7],
ext_bottom_front_left_support,
ext_bottom_standoff[8],
ext_bottom_standoff[9],
ext_bottom_standoff[10],
ext_bottom_standoff[11]];
ext_bottom_standoff[11],
ext_bottom_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),0])
standoff(normal_standoff,[false,10,2,"default"]);
standoff(extended_standoff,[false,10,2,"default"]);
}
}
}

View File

@@ -308,20 +308,20 @@ module case_top(case_design) {
pcbhole_pos = sbc_data[s[0]][i+10][4];
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_rear" && top_rear_left_enable == true &&
top_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[3]-.2, h=top_height);
top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "left_front" && top_front_left_enable == true &&
top_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[3]-.2, h=top_height);
top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_rear" && top_rear_right_enable == true &&
top_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[3]-.2, h=top_height);
top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
if (class == "pcbhole" && id == pcb_id && pcbhole_pos == "right_front" && top_front_right_enable == true &&
top_standoff[5] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[3]-.2, h=top_height);
top_standoff[6] != "blind") {
translate([pcbhole_x,pcbhole_y,top_height+5]) cylinder(d=top_standoff[4]-.2, h=top_height);
}
}
}
@@ -329,32 +329,32 @@ module case_top(case_design) {
if(ext_top_standoffs == true) {
// right-rear standoff
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) &&
ext_top_rear_right_enable == true && ext_top_standoff[5] != "blind") {
ext_top_rear_right_enable == true && ext_top_standoff[6] != "blind") {
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[3]-.2, h=top_height);
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
// right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_top_front_right_enable == true && ext_top_standoff[5] != "blind") {
ext_top_front_right_enable == true && ext_top_standoff[6] != "blind") {
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5])
cylinder(d=ext_top_standoff[3]-.2, h=top_height);
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
// left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true && ext_top_standoff[5] != "blind") {
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true && ext_top_standoff[6] != "blind") {
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[3]-.2, h=top_height);
(corner_fillet/2)+ext_top_standoff_support_size/4,top_height+5]) cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
// left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) <= 10)) &&
ext_top_front_left_enable == true && ext_top_standoff[5] != "blind") {
ext_top_front_left_enable == true && ext_top_standoff[6] != "blind") {
translate([+(corner_fillet/2)+ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),top_height+5])
cylinder(d=ext_top_standoff[3]-.2, h=top_height);
cylinder(d=ext_top_standoff[4]-.2, h=top_height);
}
}
// top cover pattern
@@ -381,14 +381,17 @@ module case_top(case_design) {
}
// rear io shield opening for standard form motherboards
if(rear_io_shield == true) {
if(sbc_model == "mini-stx_thin") {
translate([6.2+pcb_loc_x,-4.5,-4.4+bottom_height-pcb_z+pcb_loc_z]) cube([123.95, 10+pcb_loc_y, 25]);
}
if(sbc_model == "mini-stx") {
translate([6.2+pcb_loc_x,-4.5,-4.4+bottom_height-case_offset_bz-pcb_z+pcb_loc_z]) cube([123.95, 10+pcb_loc_y, 40]);
translate([6.2+pcb_loc_x,-4.5,-4.4+bottom_height-pcb_z+pcb_loc_z]) cube([123.95, 10+pcb_loc_y, 40]);
}
if(sbc_model == "mini-itx_thin") {
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-case_offset_bz-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 25]);
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 25]);
}
if(sbc_model != "mini-stx" && sbc_model != "mini-itx_thin") {
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-case_offset_bz-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 44]);
if(sbc_model != "mini-stx_thin" && sbc_model != "mini-stx" && sbc_model != "mini-itx_thin") {
translate([-2.62+pcb_loc_x,-4.5,-2+bottom_height-pcb_z+pcb_loc_z]) cube([158.75, 10+pcb_loc_y, 44]);
}
}
}
@@ -407,67 +410,71 @@ module case_top(case_design) {
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" || pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
if (pcbhole_pos == "left_rear" && top_rear_left_enable == true) {
top_support = top_sidewall_support == true ? top_rear_left_support : "none";
normal_standoff = [top_standoff[0],
pcb_standoff = [top_standoff[0],
top_standoff[1],
top_height+top_rear_left_adjust-pcb_loc_z,
top_standoff[2],
top_standoff[3],
top_standoff[4],
top_standoff[5],
top_standoff[6],
top_standoff[7],
top_support,
top_standoff[8],
top_standoff[9],
top_standoff[10],
top_standoff[11]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff,[false,10,2,"default"]);
top_standoff[11],
top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "left_front" && top_front_left_enable == true) {
top_support = top_sidewall_support == true ? top_front_left_support : "none";
normal_standoff = [top_standoff[0],
pcb_standoff = [top_standoff[0],
top_standoff[1],
top_height+top_front_left_adjust-pcb_loc_z,
top_standoff[2],
top_standoff[3],
top_standoff[4],
top_standoff[5],
top_standoff[6],
top_standoff[7],
top_support,
top_standoff[8],
top_standoff[9],
top_standoff[10],
top_standoff[11]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff,[false,10,2,"default"]);
top_standoff[11],
top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_rear" && top_rear_right_enable == true) {
top_support = top_sidewall_support == true ? top_rear_right_support : "none";
normal_standoff = [top_standoff[0],
pcb_standoff = [top_standoff[0],
top_standoff[1],
top_height+top_rear_right_adjust-pcb_loc_z,
top_standoff[2],
top_standoff[3],
top_standoff[4],
top_standoff[5],
top_standoff[6],
top_standoff[7],
top_support,
top_standoff[8],
top_standoff[9],
top_standoff[10],
top_standoff[11]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff,[false,10,2,"default"]);
top_standoff[11],
top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
if (pcbhole_pos == "right_front" && top_front_right_enable == true) {
top_support = top_sidewall_support == true ? top_front_right_support : "none";
normal_standoff = [top_standoff[0],
pcb_standoff = [top_standoff[0],
top_standoff[1],
top_height+top_front_right_adjust-pcb_loc_z,
top_standoff[2],
top_standoff[3],
top_standoff[4],
top_standoff[5],
top_standoff[6],
top_standoff[7],
top_support,
top_standoff[8],
top_standoff[9],
top_standoff[10],
top_standoff[11]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff,[false,10,2,"default"]);
top_standoff[11],
top_standoff[12]];
translate([pcbhole_x,pcbhole_y,case_z]) standoff(pcb_standoff,[false,10,2,"default"]);
}
}
}
@@ -476,79 +483,83 @@ module case_top(case_design) {
if(ext_top_standoffs == true) {
// extended right-rear standoff
if((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 || pcb_loc_y >= 10) && ext_top_rear_right_enable == true) {
normal_standoff = [ext_top_standoff[0],
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_rear_right_adjust,
ext_top_standoff[2],
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_standoff[7],
ext_top_rear_right_support,
ext_top_standoff[8],
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11]];
ext_top_standoff[11],
ext_top_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(2*(wallthick+gap))-(corner_fillet/2),
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(normal_standoff,[false,10,2,"default"]);
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended right-front standoff
if(((width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth >= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) >= 10 && depth-pcb_loc_y-pcb_depth <= 10) ||
(width-pcb_loc_x-pcb_width-(gap+2*wallthick) <= 10 && depth-pcb_loc_y-pcb_depth >= 10)) &&
ext_top_front_right_enable == true) {
normal_standoff = [ext_top_standoff[0],
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_front_right_adjust,
ext_top_standoff[2],
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_standoff[7],
ext_top_front_right_support,
ext_top_standoff[8],
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11]];
ext_top_standoff[11],
ext_top_standoff[12]];
translate([width-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)),case_z])
standoff(normal_standoff,[false,10,2,"default"]);
standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-rear standoff
if((pcb_loc_x >= 10 || pcb_loc_y >= 10) && ext_top_rear_left_enable == true) {
normal_standoff = [ext_top_standoff[0],
top_height+ext_top_rear_left_adjust,
ext_top_standoff[2],
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_rear_left_support,
ext_top_standoff[8],
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11]];
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_rear_left_adjust,
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_standoff[7],
ext_top_rear_left_support,
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11],
ext_top_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(normal_standoff,[false,10,2,"default"]);
(corner_fillet/2)+ext_top_standoff_support_size/4,case_z]) standoff(extended_standoff,[false,10,2,"default"]);
}
// extended left-front standoff
if(((pcb_loc_x >= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x <= 10 && (depth-(pcb_loc_y+pcb_depth)) >= 10) ||
(pcb_loc_x >= 10 && depth-(pcb_loc_y+pcb_depth) <= 10)) &&
ext_top_front_left_enable == true) {
normal_standoff = [ext_top_standoff[0],
extended_standoff = [ext_top_standoff[0],
ext_top_standoff[1],
top_height+ext_top_front_left_adjust,
ext_top_standoff[2],
ext_top_standoff[3],
ext_top_standoff[4],
ext_top_standoff[5],
ext_top_standoff[6],
ext_top_standoff[7],
ext_top_front_left_support,
ext_top_standoff[8],
ext_top_standoff[9],
ext_top_standoff[10],
ext_top_standoff[11]];
ext_top_standoff[11],
ext_top_standoff[12]];
translate([(corner_fillet/2)+ext_top_standoff_support_size/4,
depth-ext_top_standoff_support_size/4-(corner_fillet/2)-(2*(wallthick+gap)), case_z])
standoff(normal_standoff,[false,10,2,"default"]);
standoff(extended_standoff,[false,10,2,"default"]);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -29,7 +29,7 @@ include <./sbc_case_builder_accessories.cfg>;
view = "model"; // [model, platter, part]
individual_part = "bottom"; // [top, bottom, right, left, front, rear, io_shield, accessories]
// single board computer model
sbc_model = "c1+"; // ["c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "h2", "h2+", "h3", "h3+", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "nio12", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "licheerv+dock", "rak19007", "ssi-eeb", "ssi-ceb", "atx", "micro-atx", "dtx", "flex-atx", "mini-dtx", "mini-itx", "mini-itx_thin", "mini-stx", "nano-itx", "nuc", "pico-itx"]
sbc_model = "c1+"; // ["c1+", "c2", "c4", "hc4", "xu4", "xu4q", "mc1", "hc1", "n1", "n2", "n2+", "n2l", "n2lq", "m1", "m1s", "h2", "h2+", "h3", "h3+", "show2", "rpipico", "rpipicow", "rpicm4+ioboard", "rpicm1", "rpicm3", "rpicm3l", "rpicm3+", "rpicm4s", "rpicm4", "rpicm4l", "rpizero", "rpizerow", "rpizero2w", "rpi1a+", "rpi1b+", "rpi2b", "rpi3a+", "rpi3b", "rpi3b+", "rpi4b", "rpi5", "rock64", "rockpro64", "quartz64a", "quartz64b", "h64b", "star64", "rock4a", "rock4b", "rock4a+", "rock4b+", "rock4c", "rock4c+", "rock5b-v1.3", "rock5b", "rock5bq", "nio12", "vim1", "vim2", "vim3", "vim3l", "vim4", "tinkerboard", "tinkerboard-s", "tinkerboard-2", "tinkerboard-2s", "tinkerboard-r2", "tinkerboard-r2s", "opizero", "opizero2", "opir1plus_lts", "opir1", "opi5", "jetsonnano", "lepotato", "sweetpotato", "tritium-h2+", "tritium-h3", "tritium-h5", "solitude", "alta", "atomicpi", "visionfive2", "visionfive2q", "licheerv+dock", "rak19007", "ssi-eeb", "ssi-ceb", "atx", "micro-atx", "dtx", "flex-atx", "mini-dtx", "mini-itx", "mini-itx_thin", "mini-stx", "mini-stx_thin", "nano-itx", "nuc", "pico-itx"]
// sbc off in model view
sbc_off = false;
@@ -40,7 +40,7 @@ sbc_highlight = false;
// enable highlight for accessory subtractive geometry
accessory_highlight = false;
// base case design
case_design = "shell"; // [shell,panel,stacked,tray,tray_sides,tray_vu5,tray_vu7,round,hex,snap,fitted,paper_split-top,paper_full-top,adapter_ssi-eeb,adapter_ssi-ceb,adapter_atx,adapter_micro-atx,adapter_dtx,adapter_flex-atx,adapter_mini-dtx,adapter_mini-itx,adapter_mini-itx_thin,adapter_mini-stx]
case_design = "shell"; // [shell,panel,stacked,tray,tray_sides,tray_vu5,tray_vu7,round,hex,snap,fitted,paper_split-top,paper_full-top,adapter_ssi-eeb,adapter_ssi-ceb,adapter_atx,adapter_micro-atx,adapter_dtx,adapter_flex-atx,adapter_mini-dtx,adapter_mini-itx,adapter_mini-itx_thin,adapter_mini-stx,adapter_mini-stx_thin]
// raises top mm in model view or < 0 = off
raise_top = 0; // [-1:100]
@@ -108,7 +108,7 @@ sbc_top_standoffs = true;
top_standoff_reverse = true;
// enable wall support for standoffs
top_sidewall_support = false;
top_standoff_size = "m3"; //[m2, m2.5, m3, m4, custom]
top_standoff_size = "m3"; //[m2_tap, m2, m2+, m2.5_tap, m2.5, m2.5+, m3_tap, m3, m3+, m4_tap, m4, m4+, custom]
top_standoff_type = "blind"; //[none, countersunk, recessed, nut holder, blind]
top_standoff_pillar = "hex"; //[hex, round]
top_standoff_diameter = 5.75; //[0:.01:10]
@@ -144,7 +144,7 @@ sbc_bottom_standoffs = true;
bottom_standoff_reverse = false;
// enable wall support for standoffs
bottom_sidewall_support = false;
bottom_standoff_size = "m3"; //[m2, m2.5, m3, m4, custom]
bottom_standoff_size = "m3"; //[m2_tap, m2, m2+, m2.5_tap, m2.5, m2.5+, m3_tap, m3, m3+, m4_tap, m4, m4+, custom]
bottom_standoff_type = "countersunk"; //[none, countersunk, recessed, nut holder, blind]
bottom_standoff_pillar = "hex"; //[hex, round]
bottom_standoff_diameter = 5.75; //[2:.01:10]
@@ -209,6 +209,7 @@ ext_top_standoffs = true;
ext_top_standoff_reverse = true;
// enable wall support for extended standoffs
ext_top_sidewall_support = true;
ext_top_standoff_size = "m3"; //[m2_tap, m2, m2+, m2.5_tap, m2.5, m2.5+, m3_tap, m3, m3+, m4_tap, m4, m4+, custom]
ext_top_standoff_type = "blind"; //[none, countersunk, recessed, nut holder, blind]
ext_top_standoff_pillar = "hex"; //[hex, round]
ext_top_standoff_diameter = 5.75; //[0:.01:10]
@@ -218,6 +219,7 @@ ext_top_standoff_support_height = 4; //[0:.01:50]
ext_top_standoff_insert = false;
ext_top_standoff_insert_dia = 4.2; //.01
ext_top_standoff_insert_height = 5.1; //.01
/* [Extended Top Standoff Individual Settings] */
// extended case top - lower left standoff settings
ext_top_rear_left_enable = true;
ext_top_rear_left_adjust = 0; //[-20:.01:20]
@@ -235,13 +237,13 @@ ext_top_front_right_enable = true;
ext_top_front_right_adjust = 0; //[-20:.01:20]
ext_top_front_right_support = "front"; //[none,left,rear,front,right]
/* [Extended Bottom Standoffs] */
// enable case bottom extended standoffs
ext_bottom_standoffs = true;
ext_bottom_standoff_reverse = false;
// enable wall support for extended standoffs
ext_bottom_sidewall_support = true;
ext_bottom_standoff_size = "m3"; //[m2_tap, m2, m2+, m2.5_tap, m2.5, m2.5+, m3_tap, m3, m3+, m4_tap, m4, m4+, custom]
ext_bottom_standoff_type = "countersunk"; //[none, countersunk, recessed, nut holder, blind]
ext_bottom_standoff_pillar = "hex"; //[hex, round]
ext_bottom_standoff_diameter = 5.75; //[2:.01:10]
@@ -251,6 +253,8 @@ ext_bottom_standoff_support_height = 4; //[0:.01:50]
ext_bottom_standoff_insert = false;
ext_bottom_standoff_insert_dia = 4.2; //.01
ext_bottom_standoff_insert_height = 5.1; //.01
/* [Extended Bottom Standoff Individual Settings] */
// extended case bottom - rear left standoff settings
ext_bottom_rear_left_enable = true;
ext_bottom_rear_left_adjust = 0; //[-20:.01:20]
@@ -280,7 +284,7 @@ pcb_bmaxz = sbc_data[s[0]][11][6];
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-stx" || sbc_model == "nano-itx" || sbc_model == "nuc" || sbc_model == "pico-itx" ? pcb_z_orig + standard_motherboard_thickness : pcb_z_orig;
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 = pcb_width+2*(wallthick+gap)+case_offset_x;
depth = pcb_depth+2*(wallthick+gap)+case_offset_y;
top_height = pcb_tmaxz+floorthick+case_offset_tz+pcb_loc_z;
@@ -290,13 +294,10 @@ case_diameter = sqrt(pow(width-wallthick-gap,2)+pow(depth-wallthick-gap,2));
hex_diameter = sqrt(pow(width+2*(wallthick+gap),2)+pow(depth+2*(wallthick+gap),2));
/* [Hidden] */
top_dia = top_standoff_size == "m2" ? 4 : top_standoff_size == "m2.5" ? 4 :
top_standoff_size == "m3" ? 5 : top_standoff_size == "m4" ? 6 : top_standoff_diameter;
top_hole_size = top_standoff_size == "m2" ? 2 : top_standoff_size == "m2.5" ? 2.5 :
top_standoff_size == "m3" ? 3 : top_standoff_size == "m4" ? 4 : top_standoff_hole_size;
top_standoff = [top_dia,
top_standoff = [top_standoff_size,
top_standoff_diameter,
18,
top_hole_size,
top_standoff_hole_size,
top_standoff_support_size,
top_standoff_support_height,
top_standoff_type,
@@ -306,13 +307,11 @@ top_standoff = [top_dia,
top_standoff_insert,
top_standoff_insert_dia,
top_standoff_insert_height];
bottom_dia = bottom_standoff_size == "m2" ? 4 : bottom_standoff_size == "m2.5" ? 4 :
bottom_standoff_size == "m3" ? 5 : bottom_standoff_size == "m4" ? 6 : bottom_standoff_diameter;
bottom_hole_size = bottom_standoff_size == "m2" ? 2 : bottom_standoff_size == "m2.5" ? 2.5 :
bottom_standoff_size == "m3" ? 3 : bottom_standoff_size == "m4" ? 4 : bottom_standoff_hole_size;
bottom_standoff = [bottom_dia,
bottom_standoff = [bottom_standoff_size,
bottom_standoff_diameter,
6,
bottom_hole_size,
bottom_standoff_hole_size,
bottom_standoff_support_size,
bottom_standoff_support_height,
bottom_standoff_type,
@@ -322,7 +321,8 @@ bottom_standoff = [bottom_dia,
bottom_standoff_insert,
bottom_standoff_insert_dia,
bottom_standoff_insert_height];
ext_top_standoff = [ext_top_standoff_diameter,
ext_top_standoff = [ext_top_standoff_size,
ext_top_standoff_diameter,
18,
ext_top_standoff_hole_size,
ext_top_standoff_support_size,
@@ -334,7 +334,8 @@ ext_top_standoff = [ext_top_standoff_diameter,
ext_top_standoff_insert,
ext_top_standoff_insert_dia,
ext_top_standoff_insert_height];
ext_bottom_standoff = [ext_bottom_standoff_diameter,
ext_bottom_standoff = [ext_bottom_standoff_size,
ext_bottom_standoff_diameter,
6,
ext_bottom_standoff_hole_size,
ext_bottom_standoff_support_size,
@@ -397,7 +398,7 @@ if (view == "platter") {
case_bottom(case_design);
translate([0,(2*depth)+20,case_z+floorthick]) rotate([180,0,0]) case_top(case_design);
}
if(case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
if(case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
color("dimgrey",1) case_adapter(case_design);
color("dimgrey",1) translate([-180, 0, 4]) rotate([270,0,0]) io_shield();
}
@@ -710,13 +711,13 @@ if (view == "model") {
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, false);
}
}
if(case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
if(case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
color("dimgrey",1) case_adapter(case_design);
if(sbc_off == false) {
translate([pcb_loc_x ,pcb_loc_y,bottom_height-case_offset_bz-pcb_z+pcb_loc_z])
sbc(sbc_model, cooling, fan_size, gpio_opening, uart_opening, false);
}
if(case_design == "adapter_mini-stx") {
if(case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx") {
color("dimgrey",1) translate([-1.2,-4.5,-2]) io_shield();
}
else {
@@ -818,7 +819,7 @@ if (view == "part") {
}
}
if(individual_part == "bottom") {
if(case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
if(case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
case_adapter(case_design);
}
else {
@@ -856,7 +857,7 @@ if (view == "part") {
}
}
if(individual_part == "io_shield") {
if(case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
if(case_design == "adapter_mini-stx_thin" || case_design == "adapter_mini-stx" || case_design == "adapter_mini-itx_thin" || case_design == "adapter_mini-itx" || case_design == "adapter_flex-atx" || case_design == "adapter_mini-dtx" || case_design == "adapter_dtx" || case_design == "adapter_micro-atx" || case_design == "adapter_atx" || case_design == "adapter_ssi-ceb" || case_design == "adapter_ssi-eeb") {
translate([0, 0, 4]) rotate([270,0,0]) io_shield();
}
}

View File

@@ -175,8 +175,8 @@ accessory_data = [
["c4_tray_boombox",
"sub","vent",44,59,12,"bottom",[0,0,0],["case",false,true,false],[2,10,4],[1,10,"vertical",1],[false,10,2,"default"],
"add2","standoff",28.5,3.5,0,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[[5.75,13,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",28.5,56.25,0,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[[5.75,13,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",28.5,3.5,0,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[["custom",5.75,13,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",28.5,56.25,0,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[["custom",5.75,13,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","hk_boom_speaker_holder",16.75,54.6,17.5,"bottom",[90,0,180],["case",false,true,false],[0,0,0],["friction",0],[false,10,2,"default"],
"add2","hk_boom_speaker_holder",108.25,54.6,17.5,"bottom",[90,0,180],["case",false,true,false],[0,0,0],["friction",0],[false,10,2,"default"],
"add2","hk_boom_grill",16.75,59,17.5,"bottom",[90,0,180],["case",false,true,false],[0,0,0],["dome"],[false,10,2,"default"],
@@ -200,18 +200,6 @@ accessory_data = [
"add1","keyhole",40,30,0,"bottom",[0,0,0],["case",false,false,false],[0,0,0],[[7,3.2,6,2]],[true,10,2,"default"]],
// Odroid-HC4
["hc4_tray_drivebox2.5",
"add2","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
"model","hk_hc4_oled",20,82,2,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
"suball","vent",72,87,27,"bottom",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
"model","fan",24.25,35,3,"bottom",[0,0,0],["sbc",true,true,false],[40,0,3],["box40x10"],[false,10,2,"default"],
"add2","hd_holder",10,-24,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
"model","hd25",10,-24,2,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,17,2,"both"],
"model","hd25",10,-24,20,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,17,2,"default"],
"model","fan",37,10,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["box40x10"],[true,10,15,"fan_open"],
"model","fan_cover",37,-4,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_1"],[false,10,2,"default"],
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
["hc4_shell_drivebox2.5",
"add2","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
"model","hk_hc4_oled",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
@@ -261,6 +249,18 @@ accessory_data = [
"model","fan",5.25,10,7.5,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["box40x10"],[true,10,2,"fan_open"],
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
["hc4_tray_drivebox2.5",
"add2","hk_hc4_oled_holder",20,82,1.99,"bottom",[0,0,0],["case",false,true,false],[0,0,2],[0],[true,10,2,"default"],
"model","hk_hc4_oled",20,82,2,"bottom",[0,0,0],["case",false,true,false],[0,0,0],[0],[false,10,2,"default"],
"suball","vent",72,87,27,"bottom",[0,0,0],["case",false,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
"model","fan",24.25,35,3,"bottom",[0,0,0],["sbc",true,true,false],[40,0,3],["box40x10"],[false,10,2,"default"],
"add2","hd_holder",10,-24,1.99,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[2.5,"portrait"],[false,10,2,"default"],
"model","hd25",10,-24,2,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,17,2,"both"],
"model","hd25",10,-24,20,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,17,2,"default"],
"model","fan",37,10,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["box40x10"],[true,10,2,"fan_open"],
"model","fan_cover",37,-4,7,"bottom",[90,0,0],["case",true,false,false],[40,0,3],["fan_1"],[false,10,2,"default"],
"platter","fan_cover",-50,50,0,"bottom",[0,0,0],["case",false,false,false],[40,0,3],["fan_1"],[false,10,2,"default"]],
// Odroid-M1S
["m1s_shell_nvme",
"sub","vent_hex",37,5,-1,"bottom",[0,0,0],["sbc",false,false,false],[11,3,5],[5,1.5,"horizontal",1],[false,10,2,"default"],
@@ -275,10 +275,10 @@ accessory_data = [
["m1s_shell_ups",
"sub","vent_hex",0,5,17,"top",[0,0,0],["case",false,false,true],[9,21,8],[5,1.5,"horizontal",1],[false,10,2,"default"],
"model","hk_m1s_ups",-1,122.5,5,"bottom",[0,0,270],["sbc",false,false,false],[0,0,0],[0],[true,10,2,"default"],
"add2","standoff",2.5,11,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",27.5,11,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",2.5,119,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",27.5,119,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",2.5,11,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",27.5,11,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",2.5,119,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",27.5,119,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","button",2,33.5,21.2,"top",[0,0,0],["sbc-case_z",false,false,true],[10,0,23.5],["recess"],[true,10,2,"default"],
"model","button_assembly",2,33.5,21.2,"top",[0,0,0],["sbc-case_z",false,false,true],[10,0,23.5],["recess"],[false,10,2,"default"],
"platter","button_assembly",-20,0,0,"top",[0,0,0],["case",false,false,false],[10,0,23.5],["recess"],[false,10,2,"default"],
@@ -306,10 +306,10 @@ accessory_data = [
"sub","vent",-3.75,30,9,"bottom",[0,0,90],["case",false,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
"sub","vent",93,30,9,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
"model","fan",10,1,25,"top",[0,0,0],["case",true,true,true],[0,0,0],["box60x10"],[true,10,2,"fan_hex"],
"add2","standoff",22,36,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",22,112.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",83.5,36,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",83.5,112.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",22,36,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",22,112.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",83.5,36,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",83.5,112.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"model","hd25",18,22,5,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait",15],[true,10,2,"bottom"]],
["m1_fitted_pizzabox3.5",
@@ -317,12 +317,12 @@ accessory_data = [
"sub","vent",92,60,9,"bottom",[0,0,90],["case",true,false,false],[2,10,4],[1,17,"vertical",1],[false,10,2,"default"],
"suball","vent",-89,126,15,"bottom",[0,0,0],["case",true,true,false],[2,13,4],[1,4,"vertical",1],[false,10,2,"default"],
"model","fan",-100,63,25,"top",[0,0,0],["case",true,true,true],[0,0,0],["box60x10"],[true,10,2,"fan_hex"],
"add2","standoff",-8.75,14.25,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",-8.75,58.75,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",-8.75,90.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",86.5,14.25,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",86.5,58.75,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",86.5,90.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",-8.75,14.25,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",-8.75,58.75,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",-8.75,90.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",86.5,14.25,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",86.5,58.75,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",86.5,90.5,0,"bottom",[0,0,0],["case",true,true,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"model","hd35",-12,-27,5,"bottom",[0,0,0],["case",true,true,false],[0,0,0],["portrait"],[true,10,2,"bottom"]],
// Odroid-H3
@@ -491,10 +491,10 @@ accessory_data = [
["adapter_mini-stx_m1s",
"add2","standoff",5,100,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",5,125,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",113,100,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",113,125,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[[5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",5,100,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",5,125,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",113,100,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"add2","standoff",113,125,0,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[["custom",5.75,5,3.6,10,4,"countersunk","hex",false,false,4.5,5.1]],[true,10,2,"default"],
"model","hk_m1s_ups",2,97,5,"bottom",[0,0,0],["sbc",false,false,false],[0,0,0],[0],[true,110,2,"default"]],
];