added sidewall support selection per standoff in gui and more work on top and bottom control
This commit is contained in:
@@ -21,14 +21,15 @@
|
|||||||
|
|
||||||
USAGE: standoff(stand_off)
|
USAGE: standoff(stand_off)
|
||||||
|
|
||||||
stand_off[radius, height, supportsize, supportheight, sink, style, reverse, insert_e, i_dia, i_depth])
|
stand_off[radius, height, supportsize, supportheight, sink, pillarstyle, pillarsupport, reverse, insert_e, i_dia, i_depth])
|
||||||
radius = pillar radius
|
radius = pillar radius
|
||||||
height = total height
|
height = total height
|
||||||
holesize = hole diameter
|
holesize = hole diameter
|
||||||
supportsize = support size for sink
|
supportsize = support size for sink
|
||||||
supportheight = height of support
|
supportheight = height of support for sink
|
||||||
sink = none, countersunk, recessed, nut holder, blind
|
sink = none, countersunk, recessed, nut holder, blind
|
||||||
style = hex, round style of pillar
|
pillarstyle = hex, round style of pillar
|
||||||
|
pillarsupport = left, rear, front, right
|
||||||
reverse = true or false
|
reverse = true or false
|
||||||
insert_e = true or false
|
insert_e = true or false
|
||||||
i_dia = insert diameter
|
i_dia = insert diameter
|
||||||
@@ -44,26 +45,27 @@ module standoff(stand_off){
|
|||||||
supportsize = stand_off[3];
|
supportsize = stand_off[3];
|
||||||
supportheight = stand_off[4];
|
supportheight = stand_off[4];
|
||||||
sink = stand_off[5];
|
sink = stand_off[5];
|
||||||
style = stand_off[6];
|
pillarstyle = stand_off[6];
|
||||||
reverse = stand_off[7];
|
pillarsupport = stand_off[7];
|
||||||
insert_e = stand_off[8];
|
reverse = stand_off[8];
|
||||||
i_dia = stand_off[9];
|
insert_e = stand_off[9];
|
||||||
i_depth = stand_off[10];
|
i_dia = stand_off[10];
|
||||||
|
i_depth = stand_off[11];
|
||||||
|
|
||||||
adj = 0.1;
|
adj = 0.1;
|
||||||
|
|
||||||
difference (){
|
difference (){
|
||||||
union () {
|
union () {
|
||||||
if(style != "none" && reverse == false) {
|
if(pillarstyle == "hex" && reverse == false) {
|
||||||
rotate([0,0,30]) cylinder(d=radius*2/sqrt(3),h=height,$fn=6);
|
rotate([0,0,30]) cylinder(d=radius*2/sqrt(3),h=height,$fn=6);
|
||||||
}
|
}
|
||||||
if(style != "none" && reverse == true) {
|
if(pillarstyle == "hex" && reverse == true) {
|
||||||
translate([0,0,-height]) rotate([0,0,30]) cylinder(d=radius*2/sqrt(3),h=height,$fn=6);
|
translate([0,0,-height]) rotate([0,0,30]) cylinder(d=radius*2/sqrt(3),h=height,$fn=6);
|
||||||
}
|
}
|
||||||
if(style == "countersunk" && reverse == false) {
|
if(pillarstyle == "round" && reverse == false) {
|
||||||
cylinder(d=radius,h=height,$fn=90);
|
cylinder(d=radius,h=height,$fn=90);
|
||||||
}
|
}
|
||||||
if(style == "countersunk" && reverse == true) {
|
if(pillarstyle == "round" && reverse == true) {
|
||||||
translate([0,0,-height]) cylinder(d=radius,h=height,$fn=90);
|
translate([0,0,-height]) cylinder(d=radius,h=height,$fn=90);
|
||||||
}
|
}
|
||||||
if(reverse == true) {
|
if(reverse == true) {
|
||||||
@@ -89,10 +91,10 @@ module standoff(stand_off){
|
|||||||
}
|
}
|
||||||
// recessed hole
|
// recessed hole
|
||||||
if(sink == "recessed" && reverse == false) {
|
if(sink == "recessed" && reverse == false) {
|
||||||
translate([0,0,-adj]) cylinder(d=6.5, h=3);
|
translate([0,0,-adj]) cylinder(d=6.5, h=supportheight-2);
|
||||||
}
|
}
|
||||||
if(sink == "recessed" && reverse == true) {
|
if(sink == "recessed" && reverse == true) {
|
||||||
translate([0,0,+adj-3]) cylinder(d=6.5, h=3);
|
translate([0,0,+adj-supportheight+2]) cylinder(d=6.5, h=supportheight-2);
|
||||||
}
|
}
|
||||||
// nut holder
|
// nut holder
|
||||||
if(sink == "nut holder" && reverse == false) {
|
if(sink == "nut holder" && reverse == false) {
|
||||||
|
|||||||
@@ -395,10 +395,11 @@ module case_bottom(case_design) {
|
|||||||
bottom_standoff[4],
|
bottom_standoff[4],
|
||||||
bottom_standoff[5],
|
bottom_standoff[5],
|
||||||
bottom_standoff[6],
|
bottom_standoff[6],
|
||||||
bottom_standoff[7],
|
bottom_rear_left_support,
|
||||||
bottom_standoff[8],
|
bottom_standoff[8],
|
||||||
bottom_standoff[9],
|
bottom_standoff[9],
|
||||||
bottom_standoff[10]];
|
bottom_standoff[10],
|
||||||
|
bottom_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
if (pcbhole_pos == "left_front") {
|
if (pcbhole_pos == "left_front") {
|
||||||
@@ -409,10 +410,11 @@ module case_bottom(case_design) {
|
|||||||
bottom_standoff[4],
|
bottom_standoff[4],
|
||||||
bottom_standoff[5],
|
bottom_standoff[5],
|
||||||
bottom_standoff[6],
|
bottom_standoff[6],
|
||||||
bottom_standoff[7],
|
bottom_front_left_support,
|
||||||
bottom_standoff[8],
|
bottom_standoff[8],
|
||||||
bottom_standoff[9],
|
bottom_standoff[9],
|
||||||
bottom_standoff[10]];
|
bottom_standoff[10],
|
||||||
|
bottom_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
if (pcbhole_pos == "right_rear") {
|
if (pcbhole_pos == "right_rear") {
|
||||||
@@ -423,10 +425,11 @@ module case_bottom(case_design) {
|
|||||||
bottom_standoff[4],
|
bottom_standoff[4],
|
||||||
bottom_standoff[5],
|
bottom_standoff[5],
|
||||||
bottom_standoff[6],
|
bottom_standoff[6],
|
||||||
bottom_standoff[7],
|
bottom_rear_right_support,
|
||||||
bottom_standoff[8],
|
bottom_standoff[8],
|
||||||
bottom_standoff[9],
|
bottom_standoff[9],
|
||||||
bottom_standoff[10]];
|
bottom_standoff[10],
|
||||||
|
bottom_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
if (pcbhole_pos == "right_front") {
|
if (pcbhole_pos == "right_front") {
|
||||||
@@ -437,10 +440,11 @@ module case_bottom(case_design) {
|
|||||||
bottom_standoff[4],
|
bottom_standoff[4],
|
||||||
bottom_standoff[5],
|
bottom_standoff[5],
|
||||||
bottom_standoff[6],
|
bottom_standoff[6],
|
||||||
bottom_standoff[7],
|
bottom_front_right_support,
|
||||||
bottom_standoff[8],
|
bottom_standoff[8],
|
||||||
bottom_standoff[9],
|
bottom_standoff[9],
|
||||||
bottom_standoff[10]];
|
bottom_standoff[10],
|
||||||
|
bottom_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,0]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -335,10 +335,11 @@ module case_top(case_design) {
|
|||||||
top_standoff[4],
|
top_standoff[4],
|
||||||
top_standoff[5],
|
top_standoff[5],
|
||||||
top_standoff[6],
|
top_standoff[6],
|
||||||
top_standoff[7],
|
top_rear_left_support,
|
||||||
top_standoff[8],
|
top_standoff[8],
|
||||||
top_standoff[9],
|
top_standoff[9],
|
||||||
top_standoff[10]];
|
top_standoff[10],
|
||||||
|
top_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
if (pcbhole_pos == "left_front") {
|
if (pcbhole_pos == "left_front") {
|
||||||
@@ -349,10 +350,11 @@ module case_top(case_design) {
|
|||||||
top_standoff[4],
|
top_standoff[4],
|
||||||
top_standoff[5],
|
top_standoff[5],
|
||||||
top_standoff[6],
|
top_standoff[6],
|
||||||
top_standoff[7],
|
top_front_left_support,
|
||||||
top_standoff[8],
|
top_standoff[8],
|
||||||
top_standoff[9],
|
top_standoff[9],
|
||||||
top_standoff[10]];
|
top_standoff[10],
|
||||||
|
top_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
if (pcbhole_pos == "right_rear") {
|
if (pcbhole_pos == "right_rear") {
|
||||||
@@ -363,10 +365,11 @@ module case_top(case_design) {
|
|||||||
top_standoff[4],
|
top_standoff[4],
|
||||||
top_standoff[5],
|
top_standoff[5],
|
||||||
top_standoff[6],
|
top_standoff[6],
|
||||||
top_standoff[7],
|
top_rear_right_support,
|
||||||
top_standoff[8],
|
top_standoff[8],
|
||||||
top_standoff[9],
|
top_standoff[9],
|
||||||
top_standoff[10]];
|
top_standoff[10],
|
||||||
|
top_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
if (pcbhole_pos == "right_front") {
|
if (pcbhole_pos == "right_front") {
|
||||||
@@ -377,10 +380,11 @@ module case_top(case_design) {
|
|||||||
top_standoff[4],
|
top_standoff[4],
|
||||||
top_standoff[5],
|
top_standoff[5],
|
||||||
top_standoff[6],
|
top_standoff[6],
|
||||||
top_standoff[7],
|
top_front_right_support,
|
||||||
top_standoff[8],
|
top_standoff[8],
|
||||||
top_standoff[9],
|
top_standoff[9],
|
||||||
top_standoff[10]];
|
top_standoff[10],
|
||||||
|
top_standoff[11]];
|
||||||
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
translate([pcbhole_x,pcbhole_y,case_z]) standoff(normal_standoff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5757,7 +5757,7 @@
|
|||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2"
|
||||||
},
|
},
|
||||||
"m1_panel": {
|
"m1_panel": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
"accessory_highlight": "false",
|
"accessory_highlight": "false",
|
||||||
"accessory_name": "m1_panel",
|
"accessory_name": "m1_panel",
|
||||||
@@ -26921,7 +26921,7 @@
|
|||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2"
|
||||||
},
|
},
|
||||||
"visionfive2q_shell": {
|
"visionfive2q_shell": {
|
||||||
"$fn": "90",
|
"$fn": "90",
|
||||||
"accessory_highlight": "false",
|
"accessory_highlight": "false",
|
||||||
"accessory_name": "visonfive2q_shell",
|
"accessory_name": "visonfive2q_shell",
|
||||||
@@ -27326,6 +27326,85 @@
|
|||||||
"view": "model",
|
"view": "model",
|
||||||
"vu_rotation": "[15, 0, 0]",
|
"vu_rotation": "[15, 0, 0]",
|
||||||
"wallthick": "2"
|
"wallthick": "2"
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"$fn": "90",
|
||||||
|
"accessory_highlight": "false",
|
||||||
|
"accessory_name": "none",
|
||||||
|
"adj": "0.01",
|
||||||
|
"bottom_ext_standoff": "[5.75, 5, 3.6, 10, 4, 1, 0, 0, 0, 4.5, 5.1]",
|
||||||
|
"bottom_front_left": "0",
|
||||||
|
"bottom_front_right": "0",
|
||||||
|
"bottom_rear_left": "0",
|
||||||
|
"bottom_rear_right": "0",
|
||||||
|
"bottom_sidewall_support": "true",
|
||||||
|
"bottom_standoff_diameter": "5.75",
|
||||||
|
"bottom_standoff_hole_size": "3.4",
|
||||||
|
"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",
|
||||||
|
"c_fillet": "3",
|
||||||
|
"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",
|
||||||
|
"exhaust_vents": "vent",
|
||||||
|
"fan_size": "0",
|
||||||
|
"fillet": "0",
|
||||||
|
"floorthick": "2",
|
||||||
|
"gap": "1",
|
||||||
|
"gpio_opening": "default",
|
||||||
|
"indents": "true",
|
||||||
|
"individual_part": "bottom",
|
||||||
|
"lip": "5",
|
||||||
|
"lower_bottom": "0",
|
||||||
|
"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": "0",
|
||||||
|
"top_front_right": "0",
|
||||||
|
"top_rear_left": "0",
|
||||||
|
"top_rear_right": "0",
|
||||||
|
"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"
|
"fileFormatVersion": "1"
|
||||||
|
|||||||
@@ -103,12 +103,16 @@ top_sidewall_support = true;
|
|||||||
|
|
||||||
// case top - lower left standoff
|
// case top - lower left standoff
|
||||||
top_rear_left = 0; //[-20:.01:20]
|
top_rear_left = 0; //[-20:.01:20]
|
||||||
|
top_rear_left_support = "rear"; //[left,rear,front,right]
|
||||||
// case top - upper left standoff
|
// case top - upper left standoff
|
||||||
top_front_left = 0; //[-20:.01:20]
|
top_front_left = 0; //[-20:.01:20]
|
||||||
|
top_front_left_support = "front"; //[left,rear,front,right]
|
||||||
// case top - lower right standoff
|
// case top - lower right standoff
|
||||||
top_rear_right = 0; //[-20:.01:20]
|
top_rear_right = 0; //[-20:.01:20]
|
||||||
|
top_rear_right_support = "rear"; //[left,rear,front,right]
|
||||||
// case top - upper right standoff
|
// case top - upper right standoff
|
||||||
top_front_right = 0; //[-20:.01:20]
|
top_front_right = 0; //[-20:.01:20]
|
||||||
|
top_front_right_support = "front"; //[left,rear,front,right]
|
||||||
|
|
||||||
/* [Bottom Standoffs] */
|
/* [Bottom Standoffs] */
|
||||||
// enable case bottom standoffs
|
// enable case bottom standoffs
|
||||||
@@ -128,12 +132,16 @@ bottom_sidewall_support = true;
|
|||||||
|
|
||||||
// case bottom - rear left standoff
|
// case bottom - rear left standoff
|
||||||
bottom_rear_left = 0; //[-20:.01:20]
|
bottom_rear_left = 0; //[-20:.01:20]
|
||||||
|
bottom_rear_left_support = "rear"; //[left,rear,front,right]
|
||||||
// case bottom - upper left standoff
|
// case bottom - upper left standoff
|
||||||
bottom_front_left = 0; //[-20:.01:20]
|
bottom_front_left = 0; //[-20:.01:20]
|
||||||
|
bottom_front_left_support = "front"; //[left,rear,front,right]
|
||||||
// case bottom - lower right standoff
|
// case bottom - lower right standoff
|
||||||
bottom_rear_right = 0; //[-20:.01:20]
|
bottom_rear_right = 0; //[-20:.01:20]
|
||||||
|
bottom_rear_right_support = "rear"; //[left,rear,front,right]
|
||||||
// case bottom - upper right standoff
|
// case bottom - upper right standoff
|
||||||
bottom_front_right = 0; //[-20:.01:20]
|
bottom_front_right = 0; //[-20:.01:20]
|
||||||
|
bottom_front_right_support = "front"; //[left,rear,front,right]
|
||||||
|
|
||||||
/* [Extended Standoffs] */
|
/* [Extended Standoffs] */
|
||||||
// enable case extended standoffs
|
// enable case extended standoffs
|
||||||
@@ -193,18 +201,37 @@ 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));
|
hex_diameter = sqrt(pow(width+2*(wallthick+gap),2)+pow(depth+2*(wallthick+gap),2));
|
||||||
|
|
||||||
/* [Hidden] */
|
/* [Hidden] */
|
||||||
adj = .01;
|
// top case 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]
|
||||||
$fn=90;
|
top_standoff = [top_standoff_diameter,
|
||||||
|
18,
|
||||||
|
top_standoff_hole_size,
|
||||||
|
top_standoff_support_size,
|
||||||
|
top_standoff_support_height,
|
||||||
|
top_standoff_type,
|
||||||
|
top_standoff_pillar,
|
||||||
|
top_rear_left_support,
|
||||||
|
top_standoff_reverse,
|
||||||
|
top_standoff_insert,
|
||||||
|
top_standoff_insert_dia,
|
||||||
|
top_standoff_insert_height];
|
||||||
|
bottom_standoff = [bottom_standoff_diameter,
|
||||||
|
6,
|
||||||
|
bottom_standoff_hole_size,
|
||||||
|
bottom_standoff_support_size,
|
||||||
|
bottom_standoff_support_height,
|
||||||
|
bottom_standoff_type,
|
||||||
|
bottom_standoff_pillar,
|
||||||
|
bottom_rear_left_support,
|
||||||
|
bottom_standoff_reverse,
|
||||||
|
bottom_standoff_insert,
|
||||||
|
bottom_standoff_insert_dia,
|
||||||
|
bottom_standoff_insert_height];
|
||||||
case_fn = 360; // circle segments for round cases
|
case_fn = 360; // circle segments for round cases
|
||||||
case_ffn = 90; // circle segments for fillet of round cases
|
case_ffn = 90; // circle segments for fillet of round cases
|
||||||
lip = 5;
|
lip = 5;
|
||||||
vu_rotation = [15,0,0];
|
vu_rotation = [15,0,0];
|
||||||
// top case 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]
|
adj = .01;
|
||||||
top_standoff = [top_standoff_diameter,18, top_standoff_hole_size, top_standoff_support_size, top_standoff_support_height, top_standoff_type,
|
$fn=90;
|
||||||
top_standoff_pillar, top_standoff_reverse, top_standoff_insert, top_standoff_insert_dia, top_standoff_insert_height];
|
|
||||||
bottom_standoff = [bottom_standoff_diameter, 6, bottom_standoff_hole_size, bottom_standoff_support_size, bottom_standoff_support_height,
|
|
||||||
bottom_standoff_type, bottom_standoff_pillar, bottom_standoff_reverse, bottom_standoff_insert, bottom_standoff_insert_dia,
|
|
||||||
bottom_standoff_insert_height];
|
|
||||||
|
|
||||||
// platter view
|
// platter view
|
||||||
if (view == "platter") {
|
if (view == "platter") {
|
||||||
|
|||||||
Reference in New Issue
Block a user