standoff sidewall support moved to standoff module, top and bottom standoffui changes
This commit is contained in:
@@ -29,7 +29,7 @@
|
||||
supportheight = height of support for sink
|
||||
sink = none, countersunk, recessed, nut holder, blind
|
||||
pillarstyle = hex, round style of pillar
|
||||
pillarsupport = left, rear, front, right
|
||||
pillarsupport = none, left, rear, front, right
|
||||
reverse = true or false
|
||||
insert_e = true or false
|
||||
i_dia = insert diameter
|
||||
@@ -74,6 +74,30 @@ module standoff(stand_off){
|
||||
else {
|
||||
cylinder(d=(supportsize),h=supportheight,$fn=60);
|
||||
}
|
||||
if(pillarsupport == "rear" && reverse == true) {
|
||||
translate([-1,-supportsize/2,-height]) cube([2,supportsize/2,height]);
|
||||
}
|
||||
if(pillarsupport == "rear" && reverse == false) {
|
||||
translate([-1,-supportsize/2,0]) cube([2,supportsize/2,height]);
|
||||
}
|
||||
if(pillarsupport == "front" && reverse == true) {
|
||||
translate([-1,0,-height]) cube([2,supportsize/2,height]);
|
||||
}
|
||||
if(pillarsupport == "front" && reverse == false) {
|
||||
translate([-1,0,0]) cube([2,supportsize/2,height]);
|
||||
}
|
||||
if(pillarsupport == "left" && reverse == true) {
|
||||
translate([-supportsize/2,-1,-height]) cube([supportsize/2,2,height]);
|
||||
}
|
||||
if(pillarsupport == "left" && reverse == false) {
|
||||
translate([-supportsize/2,-1,0]) cube([supportsize/2,2,height]);
|
||||
}
|
||||
if(pillarsupport == "right" && reverse == true) {
|
||||
translate([0,-1,-height]) cube([supportsize/2,2,height]);
|
||||
}
|
||||
if(pillarsupport == "right" && reverse == false) {
|
||||
translate([0,-1,0]) cube([supportsize/2,2,height]);
|
||||
}
|
||||
}
|
||||
// hole
|
||||
if(sink != "blind" && reverse == false) {
|
||||
|
||||
@@ -34,13 +34,13 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,bottom_height/2])
|
||||
cube_fillet_inside([width,depth,bottom_height],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,
|
||||
(depth/2)-wallthick-gap,(bottom_height/2)+floorthick])
|
||||
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),bottom_height],
|
||||
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);
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
}
|
||||
}
|
||||
if(case_design == "panel") {
|
||||
@@ -60,7 +60,7 @@ module case_bottom(case_design) {
|
||||
if(case_design == "stacked") {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick/2])
|
||||
cube_fillet_inside([width-(2*wallthick),depth-(2*wallthick),floorthick],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
if(case_design == "tray") {
|
||||
@@ -68,10 +68,10 @@ module case_bottom(case_design) {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(bottom_height)/2])
|
||||
cube_fillet_inside([width,depth,bottom_height],
|
||||
vertical=[0,0,0,0], top=[0,0,0,0],
|
||||
bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(bottom_height/2)+floorthick])
|
||||
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),bottom_height+adj],
|
||||
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0],bottom=[2,2,2,2], $fn=90);
|
||||
}
|
||||
// right side nut
|
||||
@@ -123,10 +123,10 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=bottom_height, r=case_diameter/2,
|
||||
top=0, bottom=fillet, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
top=0, bottom=edge_fillet, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+floorthick]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=bottom_height+adj, r=(case_diameter/2)-lip/2,
|
||||
top=0, bottom=fillet-1, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
top=0, bottom=edge_fillet-1, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,30])
|
||||
cylinder(h=lip+adj, r=(case_diameter/2)+1, $fn=case_fn);
|
||||
@@ -137,7 +137,7 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+2*floorthick]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=bottom_height+adj+floorthick+lip,
|
||||
r=(case_diameter/2)-lip/2,top=0,bottom=fillet-1, $fn=case_fn,
|
||||
r=(case_diameter/2)-lip/2,top=0,bottom=edge_fillet-1, $fn=case_fn,
|
||||
fillet_fn=case_ffn, center=true);
|
||||
if(width/depth >= 1.4 && sbc_model != "vim1" && sbc_model != "vim2" &&
|
||||
sbc_model != "vim3l" && sbc_model != "vim3" && sbc_model != "vim4" &&
|
||||
@@ -162,10 +162,10 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=bottom_height, r=case_diameter/2,
|
||||
top=0, bottom=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,30])
|
||||
cylinder_fillet_inside(h=bottom_height+adj,r=(case_diameter/2)-lip/2,top=0,
|
||||
bottom=fillet-1,$fn=6,fillet_fn=case_ffn, center=true);
|
||||
bottom=edge_fillet-1,$fn=6,fillet_fn=case_ffn, center=true);
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,30])
|
||||
cylinder(h=lip+adj,r=(case_diameter/2)+1, $fn=6);
|
||||
@@ -176,7 +176,7 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+2*floorthick]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=bottom_height+adj+floorthick+lip,
|
||||
r=(case_diameter/2)-lip/2,top=0, bottom=fillet-1, $fn=6,
|
||||
r=(case_diameter/2)-lip/2,top=0, bottom=edge_fillet-1, $fn=6,
|
||||
fillet_fn=case_ffn, center=true);
|
||||
translate([-16,(depth/2)-150,-adj])
|
||||
cube([width+10,300,case_z-2*floorthick-2]);
|
||||
@@ -188,10 +188,10 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height/2]) rotate([0,0,0])
|
||||
cylinder_fillet_inside(h=bottom_height, r=hex_diameter/2,
|
||||
top=0, bottom=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])
|
||||
cylinder_fillet_inside(h=bottom_height+adj,r=(hex_diameter/2)-lip/2,top=0,
|
||||
bottom=fillet-1,$fn=6,fillet_fn=case_ffn, center=true);
|
||||
bottom=edge_fillet-1,$fn=6,fillet_fn=case_ffn, center=true);
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height-lip]) rotate([0,0,0])
|
||||
cylinder(h=lip+adj,r=(hex_diameter/2)+1, $fn=6);
|
||||
@@ -202,7 +202,7 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,(bottom_height/2)+2*floorthick]) rotate([0,0,0])
|
||||
cylinder_fillet_inside(h=bottom_height+adj+floorthick+lip,
|
||||
r=(hex_diameter/2)-lip/2,top=0, bottom=fillet-1, $fn=6,
|
||||
r=(hex_diameter/2)-lip/2,top=0, bottom=edge_fillet-1, $fn=6,
|
||||
fillet_fn=case_ffn, center=true);
|
||||
translate([-width/2,0,-adj])
|
||||
cube([300,depth+100,case_z-2*floorthick-2]);
|
||||
@@ -215,12 +215,12 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(floorthick+case_z)/2])
|
||||
cube_fillet_inside([width,depth,floorthick+case_z],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick+(floorthick+case_z)/2])
|
||||
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],
|
||||
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
// snap top indent
|
||||
translate([-gap-wallthick+.75,(depth/2)-(depth*.75)/2-gap-wallthick,case_z-.5])
|
||||
rotate([0,45,0]) cube([4,depth*.75,4]);
|
||||
@@ -232,23 +232,23 @@ module case_bottom(case_design) {
|
||||
difference() {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z/2])
|
||||
cube_fillet_inside([width,depth,case_z],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[0,0,0,0], bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,
|
||||
(depth/2)-wallthick-gap,(case_z/2)+floorthick])
|
||||
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),case_z],
|
||||
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);
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0], bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
difference() {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-lip/2])
|
||||
cube_fillet_inside([width+adj,depth+adj,lip+adj],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0],bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-lip/2])
|
||||
cube_fillet_inside([width-wallthick,depth-wallthick,lip+adj],
|
||||
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);
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],top=[0,0,0,0],
|
||||
bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -350,20 +350,20 @@ module case_bottom(case_design) {
|
||||
if(case_ext_standoffs == true) {
|
||||
// right-rear standoff
|
||||
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
||||
translate([width-(2*(wallthick+gap))-(c_fillet/2),(c_fillet/2),-1]) cylinder(d=6.5, h=bottom_height);
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2),(corner_fillet/2),-1]) cylinder(d=6.5, h=bottom_height);
|
||||
}
|
||||
// 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) {
|
||||
translate([width-(c_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap)),-1]) cylinder(d=6.5, h=bottom_height);
|
||||
translate([width-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap)),-1]) cylinder(d=6.5, h=bottom_height);
|
||||
}
|
||||
// left-rear standoff
|
||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||
translate([(c_fillet/2),(c_fillet/2),-1]) cylinder(d=6.5, h=bottom_height);
|
||||
translate([(corner_fillet/2),(corner_fillet/2),-1]) cylinder(d=6.5, h=bottom_height);
|
||||
}
|
||||
// left-front standoff
|
||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||
translate([(c_fillet/2),depth-(c_fillet/2)-(2*(wallthick+gap)),-1])
|
||||
translate([(corner_fillet/2),depth-(corner_fillet/2)-(2*(wallthick+gap)),-1])
|
||||
cylinder(d=6.5, h=bottom_height);
|
||||
}
|
||||
}
|
||||
@@ -380,11 +380,10 @@ module case_bottom(case_design) {
|
||||
pcbhole_size = sbc_data[s[0]][i+9][0];
|
||||
pcbhole_pos = sbc_data[s[0]][i+10][4];
|
||||
|
||||
if(class == "pcbhole" && id == pcb_id && (pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" ||
|
||||
pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
|
||||
if(class == "pcbhole" && id == pcb_id && (pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" || pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
|
||||
if (pcbhole_pos == "left_rear") {
|
||||
normal_standoff = [bottom_standoff[0],
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_rear_left,
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_rear_left_adjust,
|
||||
bottom_standoff[2],
|
||||
bottom_standoff[3],
|
||||
bottom_standoff[4],
|
||||
@@ -399,7 +398,7 @@ module case_bottom(case_design) {
|
||||
}
|
||||
if (pcbhole_pos == "left_front") {
|
||||
normal_standoff = [bottom_standoff[0],
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_front_left,
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_front_left_adjust,
|
||||
bottom_standoff[2],
|
||||
bottom_standoff[3],
|
||||
bottom_standoff[4],
|
||||
@@ -414,7 +413,7 @@ module case_bottom(case_design) {
|
||||
}
|
||||
if (pcbhole_pos == "right_rear") {
|
||||
normal_standoff = [bottom_standoff[0],
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_rear_right,
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_rear_right_adjust,
|
||||
bottom_standoff[2],
|
||||
bottom_standoff[3],
|
||||
bottom_standoff[4],
|
||||
@@ -429,7 +428,7 @@ module case_bottom(case_design) {
|
||||
}
|
||||
if (pcbhole_pos == "right_front") {
|
||||
normal_standoff = [bottom_standoff[0],
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_front_right,
|
||||
bottom_height-pcb_z+pcb_loc_z+bottom_front_right_adjust,
|
||||
bottom_standoff[2],
|
||||
bottom_standoff[3],
|
||||
bottom_standoff[4],
|
||||
@@ -450,86 +449,46 @@ module case_bottom(case_design) {
|
||||
if(case_ext_standoffs == true) {
|
||||
// right-rear standoff
|
||||
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
||||
translate([width-(2*(wallthick+gap))-(c_fillet/2),(c_fillet/2),0]) standoff(bottom_ext_standoff);
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2),(corner_fillet/2),0]) standoff(bottom_ext_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) {
|
||||
translate([width-(c_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap)),0]) standoff(bottom_ext_standoff);
|
||||
translate([width-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap)),0]) standoff(bottom_ext_standoff);
|
||||
}
|
||||
// left-rear standoff
|
||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||
translate([(c_fillet/2),(c_fillet/2),0]) standoff(bottom_ext_standoff);
|
||||
translate([(corner_fillet/2),(corner_fillet/2),0]) standoff(bottom_ext_standoff);
|
||||
}
|
||||
// left-front standoff
|
||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||
translate([(c_fillet/2),depth-(c_fillet/2)-(2*(wallthick+gap)),0])
|
||||
translate([(corner_fillet/2),depth-(corner_fillet/2)-(2*(wallthick+gap)),0])
|
||||
standoff(bottom_ext_standoff);
|
||||
}
|
||||
}
|
||||
// standoff sidewall support
|
||||
if(bottom_sidewall_support == true && sbc_top_standoffs == true) {
|
||||
for (i=[1:11:len(sbc_data[s[0]])-2]) {
|
||||
class = sbc_data[s[0]][i+1];
|
||||
type = sbc_data[s[0]][i+2];
|
||||
id = sbc_data[s[0]][i+3];
|
||||
pcbhole_x = sbc_data[s[0]][i+4]+pcb_loc_x;
|
||||
pcbhole_y = sbc_data[s[0]][i+5]+pcb_loc_y;
|
||||
pcbhole_z = sbc_data[s[0]][i+6];
|
||||
pcbhole_size = sbc_data[s[0]][i+9][0];
|
||||
pcb_side_pos = sbc_data[s[0]][i+10][2];
|
||||
pcbhole_pos = sbc_data[s[0]][i+10][4];
|
||||
ex_stand = 0;
|
||||
|
||||
if (class == "pcbhole" && id == pcb_id && (pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" ||
|
||||
pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
|
||||
ex_stand = pcbhole_pos == "left_rear" ? bottom_rear_left :
|
||||
pcbhole_pos == "left_front" ? bottom_front_left :
|
||||
pcbhole_pos == "right_rear" ? bottom_rear_right :
|
||||
pcbhole_pos == "right_front" ? bottom_front_right : 0;
|
||||
|
||||
if(pcb_side_pos == "rear") {
|
||||
translate([pcbhole_x-1, pcbhole_y-(bottom_standoff[0]/2)-(gap-adj)-1.4, 0])
|
||||
cube([2,gap+1.6,bottom_height-pcb_z+pcb_loc_z+ex_stand]);
|
||||
}
|
||||
if(pcb_side_pos == "front") {
|
||||
translate([pcbhole_x-1, pcbhole_y+(bottom_standoff[0]/2)-.6+adj,0])
|
||||
cube([2,gap+1.6,bottom_height-pcb_z+pcb_loc_z+ex_stand]);
|
||||
}
|
||||
if(pcb_side_pos == "left") {
|
||||
translate([pcbhole_x-(bottom_standoff[0]/2)-2.4+adj,pcbhole_y-1,0])
|
||||
cube([gap+1.6,2,bottom_height-pcb_z+pcb_loc_z+ex_stand]);
|
||||
}
|
||||
if(pcb_side_pos == "right") {
|
||||
translate([pcbhole_x+(bottom_standoff[0]/2)-.6+adj,pcbhole_y-1,0])
|
||||
cube([gap+1.6,2,bottom_height-pcb_z+pcb_loc_z+ex_stand]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// extended standoff sidewall support
|
||||
if(case_ext_standoffs == true && bottom_sidewall_support == true) {
|
||||
// right-rear standoff
|
||||
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]) cube([gap+adj+2,2,bottom_ext_standoff[1]]);
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2)+(bottom_ext_standoff[0]/2)-.5,
|
||||
(corner_fillet/2)-1,0]) cube([gap+adj+2,2,bottom_ext_standoff[1]]);
|
||||
}
|
||||
// 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) {
|
||||
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(bottom_ext_standoff[0]/2)-.5,
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap))-1,0])
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2)+(bottom_ext_standoff[0]/2)-.5,
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap))-1,0])
|
||||
cube([gap+adj+2,2,bottom_ext_standoff[1]]);
|
||||
}
|
||||
// left-rear standoff
|
||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||
translate([(c_fillet/2)-(wallthick+gap)-(bottom_ext_standoff[0]/2)+.6,
|
||||
(c_fillet/2)-1,0]) cube([gap+adj+2,2,bottom_ext_standoff[1]]);
|
||||
translate([(corner_fillet/2)-(wallthick+gap)-(bottom_ext_standoff[0]/2)+.6,
|
||||
(corner_fillet/2)-1,0]) cube([gap+adj+2,2,bottom_ext_standoff[1]]);
|
||||
}
|
||||
// left-front standoff
|
||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||
translate([(c_fillet/2)-(wallthick+gap)-(bottom_ext_standoff[0]/2)+.6,
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap))-1,0])
|
||||
translate([(corner_fillet/2)-(wallthick+gap)-(bottom_ext_standoff[0]/2)+.6,
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap))-1,0])
|
||||
cube([gap+adj+2,2,bottom_ext_standoff[1]]);
|
||||
}
|
||||
}
|
||||
@@ -665,8 +624,8 @@ module case_bottom(case_design) {
|
||||
if(case_design == "shell") {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,bottom_height/2])
|
||||
cube_negative_fillet([width,depth,bottom_height], radius=-1,
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet], top=[0,0,0,0],
|
||||
bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet], top=[0,0,0,0],
|
||||
bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
}
|
||||
}
|
||||
// additive accessories
|
||||
|
||||
@@ -35,14 +35,14 @@ module case_top(case_design) {
|
||||
translate([(width/2)-wallthick-gap,
|
||||
(depth/2)-wallthick-gap,bottom_height+(top_height/2)])
|
||||
cube_fillet_inside([width,depth,top_height],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[fillet,fillet,fillet,fillet,fillet],
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet],
|
||||
bottom=[0,0,0,0], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,
|
||||
bottom_height+(top_height/2)-floorthick])
|
||||
cube_fillet_inside([width-(wallthick*2),depth-(wallthick*2),top_height],
|
||||
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
||||
top=[fillet,fillet,fillet,fillet,fillet],
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet],
|
||||
bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
}
|
||||
@@ -68,7 +68,7 @@ module case_top(case_design) {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,
|
||||
case_z-(floorthick/2)])
|
||||
cube_fillet_inside([width-(2*wallthick),depth-(2*wallthick),floorthick],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0], bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
if(case_design == "tray" && (case_style == "vu5" || case_style == "vu7" || case_style == "sides")) {
|
||||
@@ -81,11 +81,11 @@ module case_top(case_design) {
|
||||
difference() {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z/2])
|
||||
cube_fillet_inside([width+2*wallthick+1,depth,case_z],
|
||||
vertical=[0,0,0,0], top=[0,fillet,0,fillet,fillet],
|
||||
vertical=[0,0,0,0], top=[0,edge_fillet,0,edge_fillet,edge_fillet],
|
||||
bottom=[0,0,0,0], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,(case_z/2)-floorthick+.25])
|
||||
cube_fillet_inside([width+1,depth+(wallthick*2),case_z],
|
||||
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[0,0,0,0],bottom=[0,0,0,0], $fn=90);
|
||||
// right side bottom attachment hole
|
||||
translate([width-2*(wallthick+gap)-sidethick-adj,wallthick+gap+10,
|
||||
@@ -121,13 +121,13 @@ module case_top(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=top_height+lip, r=case_diameter/2,
|
||||
top=fillet, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
top=edge_fillet, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-floorthick-lip/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-wallthick,
|
||||
top=fillet-1, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
top=edge_fillet-1, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height-adj-lip/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=lip+2*adj, r=(case_diameter/2)-wallthick/2+tol/2,
|
||||
top=fillet-1, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
top=edge_fillet-1, bottom=0, $fn=case_fn, fillet_fn=case_ffn, center=true);
|
||||
// io cutout
|
||||
if(width/depth >= 1.4 && sbc_model != "vim1" && sbc_model != "vim2" &&
|
||||
sbc_model != "vim3l" && sbc_model != "vim3" && sbc_model != "vim4" &&
|
||||
@@ -160,13 +160,13 @@ module case_top(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=top_height+lip, r=case_diameter/2,
|
||||
top=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]) rotate([0,0,30])
|
||||
cylinder_fillet_inside(h=top_height+lip, r=(case_diameter/2)-wallthick,
|
||||
top=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,30])
|
||||
cylinder_fillet_inside(h=lip+2*adj, r=(case_diameter/2)-wallthick/2+tol/2,
|
||||
top=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
|
||||
translate([width,(depth/2)-wallthick-gap,bottom_height-lip+top_height/2-floorthick])
|
||||
cube_fillet_inside([18,depth-2*(wallthick+gap)-1,top_height+lip+2],
|
||||
@@ -177,13 +177,13 @@ module case_top(case_design) {
|
||||
difference() {
|
||||
translate([pcb_width/2,pcb_depth/2,bottom_height+(top_height/2)-lip/2]) rotate([0,0,0])
|
||||
cylinder_fillet_inside(h=top_height+lip, r=hex_diameter/2,
|
||||
top=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])
|
||||
rotate([0,0,0]) cylinder_fillet_inside(h=top_height+lip, r=(hex_diameter/2)-wallthick,
|
||||
top=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])
|
||||
cylinder_fillet_inside(h=lip+2*adj, r=(hex_diameter/2)-wallthick/2+tol/2,
|
||||
top=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
|
||||
translate([(width/2)-wallthick-gap,-23,bottom_height-lip+top_height/2-floorthick])
|
||||
cube_fillet_inside([width-2*(wallthick+gap),40,top_height+lip+2],
|
||||
@@ -204,18 +204,18 @@ module case_top(case_design) {
|
||||
if(case_design == "snap") {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,floorthick*1.5+case_z])
|
||||
cube_fillet_inside([width,depth,floorthick],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0],bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
difference() {
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-adj])
|
||||
cube_fillet_inside([width-2*wallthick-tol,depth-2*wallthick-tol,2*floorthick+1.5],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[0,0,0,0],bottom=[fillet,fillet,fillet,fillet,fillet], $fn=90);
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[0,0,0,0],bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
|
||||
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],
|
||||
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);
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],top=[0,0,0,0],
|
||||
bottom=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet], $fn=90);
|
||||
}
|
||||
// snap top outdent
|
||||
difference() {
|
||||
@@ -236,13 +236,13 @@ module case_top(case_design) {
|
||||
translate([(width/2)-wallthick-gap,
|
||||
(depth/2)-wallthick-gap,case_z+floorthick/2-(lip)/2])
|
||||
cube_fillet_inside([width,depth,lip+floorthick],
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[fillet,fillet,fillet,fillet,fillet],
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet],
|
||||
bottom=[0,0,0,0], $fn=90);
|
||||
translate([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,case_z-floorthick-1])
|
||||
cube_fillet_inside([width-wallthick+tol,depth-wallthick+tol,lip+floorthick],
|
||||
vertical=[c_fillet-1,c_fillet-1,c_fillet-1,c_fillet-1],
|
||||
top=[fillet,fillet,fillet,fillet,fillet],
|
||||
vertical=[corner_fillet-1,corner_fillet-1,corner_fillet-1,corner_fillet-1],
|
||||
top=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet],
|
||||
bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
}
|
||||
@@ -279,7 +279,8 @@ module case_top(case_design) {
|
||||
pcbhole_pos = sbc_data[s[0]][i+10][4];
|
||||
|
||||
if (class == "pcbhole" && id == pcb_id &&
|
||||
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" || pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
|
||||
(pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" ||
|
||||
pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
|
||||
translate([pcbhole_x,pcbhole_y,top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
}
|
||||
@@ -288,21 +289,21 @@ module case_top(case_design) {
|
||||
if(case_ext_standoffs == true) {
|
||||
// right-rear standoff
|
||||
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
||||
translate([width-(2*(wallthick+gap))-(c_fillet/2),(c_fillet/2),top_height+1])
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2),(corner_fillet/2),top_height+1])
|
||||
cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
// 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) {
|
||||
translate([width-(c_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap)),top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
translate([width-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap)),top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
// left-rear standoff
|
||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||
translate([(c_fillet/2),(c_fillet/2),top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
translate([(corner_fillet/2),(corner_fillet/2),top_height+1]) cylinder(d=6.5, h=top_height);
|
||||
}
|
||||
// left-front standoff
|
||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||
translate([+(c_fillet/2),depth-(c_fillet/2)-(2*(wallthick+gap)),
|
||||
translate([+(corner_fillet/2),depth-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
top_height+1]) cylinder(d=6.5, h=top_height+1);
|
||||
}
|
||||
}
|
||||
@@ -324,7 +325,7 @@ 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") {
|
||||
normal_standoff = [top_standoff[0],
|
||||
top_height+pcb_loc_z+top_rear_left,
|
||||
top_height+pcb_loc_z+top_rear_left_adjust,
|
||||
top_standoff[2],
|
||||
top_standoff[3],
|
||||
top_standoff[4],
|
||||
@@ -339,7 +340,7 @@ module case_top(case_design) {
|
||||
}
|
||||
if (pcbhole_pos == "left_front") {
|
||||
normal_standoff = [top_standoff[0],
|
||||
top_height+pcb_loc_z+top_front_left,
|
||||
top_height+pcb_loc_z+top_front_left_adjust,
|
||||
top_standoff[2],
|
||||
top_standoff[3],
|
||||
top_standoff[4],
|
||||
@@ -354,7 +355,7 @@ module case_top(case_design) {
|
||||
}
|
||||
if (pcbhole_pos == "right_rear") {
|
||||
normal_standoff = [top_standoff[0],
|
||||
top_height+pcb_loc_z+top_rear_right,
|
||||
top_height+pcb_loc_z+top_rear_right_adjust,
|
||||
top_standoff[2],
|
||||
top_standoff[3],
|
||||
top_standoff[4],
|
||||
@@ -369,7 +370,7 @@ module case_top(case_design) {
|
||||
}
|
||||
if (pcbhole_pos == "right_front") {
|
||||
normal_standoff = [top_standoff[0],
|
||||
top_height+pcb_loc_z+top_front_right,
|
||||
top_height+pcb_loc_z+top_front_right_adjust,
|
||||
top_standoff[2],
|
||||
top_standoff[3],
|
||||
top_standoff[4],
|
||||
@@ -389,87 +390,48 @@ module case_top(case_design) {
|
||||
if(case_ext_standoffs == true) {
|
||||
// right-rear standoff
|
||||
if(width-pcb_loc_x-pcb_width >= 10 || pcb_loc_y >= 10) {
|
||||
translate([width-(2*(wallthick+gap))-(c_fillet/2),(c_fillet/2),case_z])
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2),(corner_fillet/2),case_z])
|
||||
standoff(top_ext_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) {
|
||||
translate([width-(c_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap)),case_z]) standoff(top_ext_standoff);
|
||||
translate([width-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap)),case_z]) standoff(top_ext_standoff);
|
||||
}
|
||||
// left-rear standoff
|
||||
if(pcb_loc_x >= 10 || pcb_loc_y >= 10) {
|
||||
translate([(c_fillet/2),(c_fillet/2),case_z]) standoff(top_ext_standoff);
|
||||
translate([(corner_fillet/2),(corner_fillet/2),case_z]) standoff(top_ext_standoff);
|
||||
}
|
||||
// left-front standoff
|
||||
if(pcb_loc_x >= 10 || depth-pcb_loc_y-pcb_depth >= 10) {
|
||||
translate([(c_fillet/2),depth-(c_fillet/2)-(2*(wallthick+gap)),
|
||||
translate([(corner_fillet/2),depth-(corner_fillet/2)-(2*(wallthick+gap)),
|
||||
case_z]) standoff(top_ext_standoff);
|
||||
}
|
||||
}
|
||||
// standoff sidewall support
|
||||
if(top_sidewall_support == true && sbc_top_standoffs == true) {
|
||||
for (i=[1:11:len(sbc_data[s[0]])-2]) {
|
||||
class = sbc_data[s[0]][i+1];
|
||||
type = sbc_data[s[0]][i+2];
|
||||
id = sbc_data[s[0]][i+3];
|
||||
pcbhole_x = sbc_data[s[0]][i+4]+pcb_loc_x;
|
||||
pcbhole_y = sbc_data[s[0]][i+5]+pcb_loc_y;
|
||||
pcbhole_z = sbc_data[s[0]][i+6];
|
||||
pcbhole_size = sbc_data[s[0]][i+9][0];
|
||||
pcb_side_pos = sbc_data[s[0]][i+10][2];
|
||||
pcbhole_pos = sbc_data[s[0]][i+10][4];
|
||||
ex_stand = 0;
|
||||
|
||||
if (class == "pcbhole" && id == pcb_id && (pcbhole_pos == "left_rear" || pcbhole_pos == "left_front" ||
|
||||
pcbhole_pos == "right_rear" || pcbhole_pos == "right_front")) {
|
||||
ex_stand = pcbhole_pos == "left_rear" ? top_rear_left :
|
||||
pcbhole_pos == "left_front" ? top_front_left :
|
||||
pcbhole_pos == "right_rear" ? top_rear_right :
|
||||
pcbhole_pos == "right_front" ? top_front_right : 0;
|
||||
if(pcb_side_pos == "rear") {
|
||||
translate([pcbhole_x-1, pcbhole_y-(top_standoff[0]/2)-(gap-adj)-1.4, case_z-top_height-ex_stand])
|
||||
cube([2,gap+1.6,top_height+ex_stand]);
|
||||
}
|
||||
if(pcb_side_pos == "front") {
|
||||
translate([pcbhole_x-1, pcbhole_y+(top_standoff[0]/2)-.6+adj,case_z-top_height-ex_stand])
|
||||
cube([2,gap+1.6,top_height+ex_stand]);
|
||||
}
|
||||
if(pcb_side_pos == "left") {
|
||||
translate([pcbhole_x-(top_standoff[0]/2)-2.4+adj,pcbhole_y-1,case_z-top_height-ex_stand])
|
||||
cube([gap+1.6,2,top_height+ex_stand]);
|
||||
}
|
||||
if(pcb_side_pos == "right") {
|
||||
translate([pcbhole_x+(top_standoff[0]/2)-.6+adj,pcbhole_y-1,case_z-top_height-ex_stand])
|
||||
cube([gap+1.6,2,top_height+ex_stand]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// extended standoff sidewall support
|
||||
if(case_ext_standoffs == true && top_sidewall_support == true) {
|
||||
// right-rear standoff
|
||||
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]) cube([gap+adj+2,2,top_height]);
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2)+(top_ext_standoff[0]/2)-.6,
|
||||
(corner_fillet/2)-1,bottom_height]) cube([gap+adj+2,2,top_height]);
|
||||
}
|
||||
// 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) {
|
||||
translate([width-(2*(wallthick+gap))-(c_fillet/2)+(top_ext_standoff[0]/2)-.6,
|
||||
depth-(c_fillet/2)-(2*(wallthick+gap))-1,bottom_height])
|
||||
translate([width-(2*(wallthick+gap))-(corner_fillet/2)+(top_ext_standoff[0]/2)-.6,
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap))-1,bottom_height])
|
||||
cube([gap+adj+2,2,top_height]);
|
||||
}
|
||||
// left-rear standoff
|
||||
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([(corner_fillet/2)-(wallthick+gap)-(top_ext_standoff[0]/2)+.6,(corner_fillet/2)-1,
|
||||
bottom_height]) cube([gap+adj+2,2,top_height]);
|
||||
}
|
||||
// left-front standoff
|
||||
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, bottom_height])
|
||||
translate([(corner_fillet/2)-(wallthick+gap)-(top_ext_standoff[0]/2)+.6,
|
||||
depth-(corner_fillet/2)-(2*(wallthick+gap))-1, bottom_height])
|
||||
cube([gap+adj+2,2,top_height]);
|
||||
}
|
||||
}
|
||||
@@ -566,8 +528,8 @@ module case_top(case_design) {
|
||||
translate(([(width/2)-wallthick-gap,(depth/2)-wallthick-gap,
|
||||
bottom_height+(top_height/2)]) )
|
||||
cube_negative_fillet([width,depth,top_height], radius=-1,
|
||||
vertical=[c_fillet,c_fillet,c_fillet,c_fillet],
|
||||
top=[fillet,fillet,fillet,fillet,fillet],
|
||||
vertical=[corner_fillet,corner_fillet,corner_fillet,corner_fillet],
|
||||
top=[edge_fillet,edge_fillet,edge_fillet,edge_fillet,edge_fillet],
|
||||
bottom=[0,0,0,0], $fn=90);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27496,6 +27496,97 @@
|
||||
"view": "model",
|
||||
"vu_rotation": "[15, 0, 0]",
|
||||
"wallthick": "2"
|
||||
},
|
||||
"design default values": {
|
||||
"$fn": "90",
|
||||
"accessory_highlight": "false",
|
||||
"accessory_name": "none",
|
||||
"adj": "0.01",
|
||||
"bend_allowance": "1",
|
||||
"bottom_clearence": "3.5",
|
||||
"bottom_ext_standoff": "[5.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]",
|
||||
"bottom_front_left_adjust": "0",
|
||||
"bottom_front_left_support": "front",
|
||||
"bottom_front_right_adjust": "0",
|
||||
"bottom_front_right_support": "front",
|
||||
"bottom_rear_left_adjust": "0",
|
||||
"bottom_rear_left_support": "rear",
|
||||
"bottom_rear_right_adjust": "0",
|
||||
"bottom_rear_right_support": "rear",
|
||||
"bottom_sidewall_support": "true",
|
||||
"bottom_standoff_diameter": "5.75",
|
||||
"bottom_standoff_hole_size": "2.5",
|
||||
"bottom_standoff_insert": "false",
|
||||
"bottom_standoff_insert_dia": "4.5",
|
||||
"bottom_standoff_insert_height": "5",
|
||||
"bottom_standoff_pillar": "hex",
|
||||
"bottom_standoff_reverse": "false",
|
||||
"bottom_standoff_support_height": "4",
|
||||
"bottom_standoff_support_size": "10",
|
||||
"bottom_standoff_type": "countersunk",
|
||||
"case_design": "shell",
|
||||
"case_ext_standoffs": "false",
|
||||
"case_ffn": "90",
|
||||
"case_fn": "360",
|
||||
"case_offset_bz": "0",
|
||||
"case_offset_tz": "0",
|
||||
"case_offset_x": "0",
|
||||
"case_offset_y": "0",
|
||||
"case_style": "none",
|
||||
"cooling": "default",
|
||||
"corner_fillet": "3",
|
||||
"edge_fillet": "0",
|
||||
"exhaust_vents": "vent",
|
||||
"fan_size": "0",
|
||||
"flat_blank_section": "false",
|
||||
"floorthick": "2",
|
||||
"gap": "1",
|
||||
"gpio_opening": "default",
|
||||
"indents": "true",
|
||||
"individual_part": "bottom",
|
||||
"lip": "5",
|
||||
"lower_bottom": "0",
|
||||
"material_thickness": "0.5",
|
||||
"move_front": "0",
|
||||
"move_leftside": "0",
|
||||
"move_rear": "0",
|
||||
"move_rightside": "0",
|
||||
"pcb_loc_x": "0",
|
||||
"pcb_loc_y": "0",
|
||||
"pcb_loc_z": "0",
|
||||
"raise_top": "0",
|
||||
"sata_knockout": "false",
|
||||
"sbc_bottom_standoffs": "true",
|
||||
"sbc_highlight": "false",
|
||||
"sbc_model": "c1+",
|
||||
"sbc_off": "false",
|
||||
"sbc_top_standoffs": "true",
|
||||
"sidethick": "2",
|
||||
"tol": "0.25",
|
||||
"top_ext_standoff": "[5.75, 18, 2.5, 10, 4, 4, 0, 1, 0, 4.5, 5.1]",
|
||||
"top_front_left_adjust": "0",
|
||||
"top_front_left_support": "front",
|
||||
"top_front_right_adjust": "0",
|
||||
"top_front_right_support": "front",
|
||||
"top_rear_left_adjust": "0",
|
||||
"top_rear_left_support": "rear",
|
||||
"top_rear_right_adjust": "0",
|
||||
"top_rear_right_support": "rear",
|
||||
"top_sidewall_support": "true",
|
||||
"top_standoff_diameter": "5.75",
|
||||
"top_standoff_hole_size": "2.5",
|
||||
"top_standoff_insert": "false",
|
||||
"top_standoff_insert_dia": "4.5",
|
||||
"top_standoff_insert_height": "5",
|
||||
"top_standoff_pillar": "hex",
|
||||
"top_standoff_reverse": "true",
|
||||
"top_standoff_support_height": "4",
|
||||
"top_standoff_support_size": "10",
|
||||
"top_standoff_type": "blind",
|
||||
"uart_opening": "default",
|
||||
"view": "platter",
|
||||
"vu_rotation": "[15, 0, 0]",
|
||||
"wallthick": "2"
|
||||
}
|
||||
},
|
||||
"fileFormatVersion": "1"
|
||||
|
||||
@@ -79,21 +79,21 @@ sidethick = 2; //[1:.01:5]
|
||||
// distance between pcb and case
|
||||
gap = 1; //[.5:.01:5]
|
||||
// corner fillets
|
||||
c_fillet = 3; //[0:.5:9]
|
||||
corner_fillet = 3; //[0:.5:9]
|
||||
// edge fillets
|
||||
fillet = 0; //[0:.5:6]
|
||||
edge_fillet = 0; //[0:.5:6]
|
||||
// tolerance for fitted surfaces
|
||||
tol = .25; //[-.5:.0625:.5]
|
||||
|
||||
/* [Top Standoffs] */
|
||||
// enable case top standoffs
|
||||
sbc_top_standoffs = true;
|
||||
top_standoff_diameter = 5.75; //[0:.01:10]
|
||||
top_standoff_hole_size = 2.5; //[0:.01:5]
|
||||
top_standoff_support_size = 10; //[0:.01:15]
|
||||
top_standoff_support_height = 4; //[0:.01:50]
|
||||
top_standoff_type = "blind"; //[none, countersunk, recessed, nut holder, blind]
|
||||
top_standoff_pillar = "hex"; //[hex, round]
|
||||
top_standoff_diameter = 5.75; //[0:.01:10]
|
||||
top_standoff_hole_size = 2.75; //[0:.01:5]
|
||||
top_standoff_support_size = 10; //[0:.01:15]
|
||||
top_standoff_support_height = 4; //[0:.01:50]
|
||||
top_standoff_insert = false;
|
||||
top_standoff_insert_dia = 4.5; //[0:.01:6]
|
||||
top_standoff_insert_height = 5; //[0:.01:10]
|
||||
@@ -101,28 +101,28 @@ top_standoff_reverse = true;
|
||||
// enable wall support for standoffs
|
||||
top_sidewall_support = true;
|
||||
|
||||
// case top - lower left standoff
|
||||
top_rear_left = 0; //[-20:.01:20]
|
||||
top_rear_left_support = "rear"; //[left,rear,front,right]
|
||||
// case top - upper left standoff
|
||||
top_front_left = 0; //[-20:.01:20]
|
||||
top_front_left_support = "front"; //[left,rear,front,right]
|
||||
// case top - lower right standoff
|
||||
top_rear_right = 0; //[-20:.01:20]
|
||||
top_rear_right_support = "rear"; //[left,rear,front,right]
|
||||
// case top - upper right standoff
|
||||
top_front_right = 0; //[-20:.01:20]
|
||||
top_front_right_support = "front"; //[left,rear,front,right]
|
||||
// case top - lower left standoff settings
|
||||
top_rear_left_support = "rear"; //[none,left,rear,front,right]
|
||||
top_rear_left_adjust = 0; //[-20:.01:20]
|
||||
// case top - upper left standoff settings
|
||||
top_front_left_support = "front"; //[none,left,rear,front,right]
|
||||
top_front_left_adjust = 0; //[-20:.01:20]
|
||||
// case top - lower right standoff settings
|
||||
top_rear_right_support = "rear"; //[none,left,rear,front,right]
|
||||
top_rear_right_adjust = 0; //[-20:.01:20]
|
||||
// case top - upper right standoff settings
|
||||
top_front_right_support = "front"; //[none,left,rear,front,right]
|
||||
top_front_right_adjust = 0; //[-20:.01:20]
|
||||
|
||||
/* [Bottom Standoffs] */
|
||||
// enable case bottom standoffs
|
||||
sbc_bottom_standoffs = true;
|
||||
bottom_standoff_diameter = 5.75; //[2:.01:10]
|
||||
bottom_standoff_hole_size = 2.5; //[0:.01:5]
|
||||
bottom_standoff_support_size = 10; //[1:.01:15]
|
||||
bottom_standoff_support_height = 4; //[0:.01:50]
|
||||
bottom_standoff_type = "countersunk"; //[none, countersunk, recessed, nut holder, blind]
|
||||
bottom_standoff_pillar = "hex"; //[hex, round]
|
||||
bottom_standoff_diameter = 5.75; //[2:.01:10]
|
||||
bottom_standoff_hole_size = 3.4; //[0:.01:5]
|
||||
bottom_standoff_support_size = 10; //[1:.01:15]
|
||||
bottom_standoff_support_height = 4; //[0:.01:50]
|
||||
bottom_standoff_insert = false;
|
||||
bottom_standoff_insert_dia = 4.5; //[0:.01:6]
|
||||
bottom_standoff_insert_height = 5; //[0:.01:10]
|
||||
@@ -130,18 +130,18 @@ bottom_standoff_reverse = false;
|
||||
// enable wall support for standoffs
|
||||
bottom_sidewall_support = true;
|
||||
|
||||
// case bottom - rear left standoff
|
||||
bottom_rear_left = 0; //[-20:.01:20]
|
||||
bottom_rear_left_support = "rear"; //[left,rear,front,right]
|
||||
// case bottom - upper left standoff
|
||||
bottom_front_left = 0; //[-20:.01:20]
|
||||
bottom_front_left_support = "front"; //[left,rear,front,right]
|
||||
// case bottom - lower right standoff
|
||||
bottom_rear_right = 0; //[-20:.01:20]
|
||||
bottom_rear_right_support = "rear"; //[left,rear,front,right]
|
||||
// case bottom - upper right standoff
|
||||
bottom_front_right = 0; //[-20:.01:20]
|
||||
bottom_front_right_support = "front"; //[left,rear,front,right]
|
||||
// case bottom - rear left standoff settings
|
||||
bottom_rear_left_support = "rear"; //[none,left,rear,front,right]
|
||||
bottom_rear_left_adjust = 0; //[-20:.01:20]
|
||||
// case bottom - upper left standoff settings
|
||||
bottom_front_left_support = "front"; //[none,left,rear,front,right]
|
||||
bottom_front_left_adjust = 0; //[-20:.01:20]
|
||||
// case bottom - lower right standoff settings
|
||||
bottom_rear_right_support = "rear"; //[none,left,rear,front,right]
|
||||
bottom_rear_right_adjust = 0; //[-20:.01:20]
|
||||
// case bottom - upper right standoff settings
|
||||
bottom_front_right_support = "front"; //[none,left,rear,front,right]
|
||||
bottom_front_right_adjust = 0; //[-20:.01:20]
|
||||
|
||||
/* [Extended Standoffs] */
|
||||
// enable case extended standoffs
|
||||
@@ -152,7 +152,7 @@ top_ext_standoff = [5.75,18,2.5,10,4,4,0,1,0,4.5,5.1];
|
||||
// bottom case extended standoff - [diameter,height(not used),holesize,supportsize,supportheight,type(0=none, 1=countersink, 2=recessed, 3=nut holder, 4=blind),style(0=hex, 1=cylinder),reverse,insert,insert hole dia.,insert depth]
|
||||
bottom_ext_standoff = [5.75,5,3.6,10,4,1,0,0,0,4.5,5.1];
|
||||
|
||||
/* [Folding Case Adjustments] */
|
||||
/* [Folded Case Adjustments] */
|
||||
// material thickness in mm
|
||||
material_thickness = .5; //[.1:.01:3]
|
||||
// bend allowance
|
||||
@@ -226,8 +226,8 @@ bottom_standoff = [bottom_standoff_diameter,
|
||||
bottom_standoff_insert,
|
||||
bottom_standoff_insert_dia,
|
||||
bottom_standoff_insert_height];
|
||||
case_fn = 360; // circle segments for round cases
|
||||
case_ffn = 90; // circle segments for fillet of round cases
|
||||
case_fn = 360; // circle segments for round cases
|
||||
case_ffn = 90; // circle segments for fillet of round cases
|
||||
lip = 5;
|
||||
vu_rotation = [15,0,0];
|
||||
adj = .01;
|
||||
|
||||
Reference in New Issue
Block a user