added washer to accessory tool, added holes to bottom of rack case for feet, updated readme.md
This commit is contained in:
16
README.md
16
README.md
@@ -2319,7 +2319,21 @@ This area covers specific build notes for specific cases. Hardware used or othe
|
||||
The panel_nas design can be CNC cut or 3D printed. By changing the top and bottom standoff type to "none" in the *SBC Standoff Global Settings* tabs respectively, only a hole is generated for CNC cutting support. Panels can be exported in DXF or SVG by selecting the *part" view under the *view* tab, then the indivual part and select the *section part* checkbox. After the projection has been generated render it by pressing F7 or by selecting render from the user interface. Exported DXF and SVG file formats are available under the File->Export menu.
|
||||
|
||||
### rack Case Design
|
||||
This case is divided into 3 pieces for the 19" cases and 2 pieces for the 10" cases. They can be selected in the *part* view for STL export under the *view* tab by selecting the left, bottom or right individual part. The peices are held together using M2x8mm screws and nuts. The 10 inch cases requires 5 sets of screws and nuts and the 19" rack case takes 10 sets.
|
||||
This case is divided into 3 pieces for the 19" cases and 2 pieces for the 10" cases. They can be selected in the *part* view for STL export under the *view* tab by selecting the left, bottom or right individual part. The peices are held together using M2x8mm screws and nuts.
|
||||
|
||||
10” rack case Qty 5 - M2x8mm screws cap or countersunk with nuts.
|
||||
19” rack case Qty 10 - M2x8mm screws cap or countersunk with nuts.
|
||||
Appropriate fasteners for all SBC.
|
||||
|
||||
For a better fit, prep the edges of the case pieces prior to assembly. Use sand paper or a file to remove any imperfections and true the edge.
|
||||
|
||||
Using 2mm thickness for the floor and walls provides for an adequate case in most enclosed applications but a 3mm floor or better is recommended for removable and open front cases.
|
||||
|
||||
There are 3mm holes on the left, center and right, both front and rear, to use for feet when deployed as a single bench top case. If using the rack stands, the holes can be used to mount an external standoff to support the rear of a heavy case.
|
||||
|
||||
All case bodies can be printed without the use of support. Only the removable bay tray needs support for printing. SBC placement so as to bisect a SBC opening with a case divide, will require print supports.
|
||||
|
||||
Varies accessories (1u rack stand, grommets, fan covers, 2.5” drive holder, washers, etc) are available from sbccb_accessory_tool.scad. The table top rack stand is comprised of two interchangeable brackets that can hold 1U-4U rack cases.
|
||||
|
||||
|
||||
## Accuracy
|
||||
|
||||
@@ -21,20 +21,20 @@
|
||||
|
||||
|
||||
/*
|
||||
NAME: fan_cover
|
||||
DESCRIPTION: creates fan covers for fan openings
|
||||
NAME: m_insert
|
||||
DESCRIPTION: creates brass inserts for models
|
||||
TODO: none
|
||||
|
||||
USAGE: m_insert(type="M3", icolor = "#ebdc8b")
|
||||
USAGE: m_insert(type="m3", icolor = "#ebdc8b")
|
||||
|
||||
type = "M3"
|
||||
type = "m3"
|
||||
icolor = color of insert
|
||||
*/
|
||||
|
||||
module m_insert(type="M3", icolor = "#ebdc8b") { //#f4e6c3, #ebdc8b
|
||||
module m_insert(type="m3", icolor = "#ebdc8b") { //#f4e6c3, #ebdc8b
|
||||
|
||||
odiam = type == "M3" ? 4.2 : 3.5;
|
||||
idiam = type == "M3" ? 3 : 2.5;
|
||||
odiam = type == "m3" ? 4.2 : 3.5;
|
||||
idiam = type == "m3" ? 3 : 2.5;
|
||||
iheight = 4;
|
||||
|
||||
difference() {
|
||||
@@ -46,3 +46,36 @@ module m_insert(type="M3", icolor = "#ebdc8b") { //#f4e6c3, #ebdc8b
|
||||
cube([.5, .5, 1.5]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
NAME: washer
|
||||
DESCRIPTION: creates washers
|
||||
TODO: none
|
||||
|
||||
USAGE: washer(type="round", id=3, od=6, iheight=2, sheight=2, countersunk, icolor = "#ebdc8b")
|
||||
|
||||
type = "round", "shouldered"
|
||||
id = inside diameter
|
||||
od = outside diameter
|
||||
iheight = washer thickness
|
||||
sheight = shoulder height
|
||||
countersunk = true
|
||||
icolor = color of washer
|
||||
*/
|
||||
|
||||
module washer(type="round", id=3, od=6, iheight=2, sheight=2, countersunk = false, icolor = "#ebdc8b") { //#f4e6c3, #ebdc8b
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
color(icolor,.6) cylinder(d=od, h=iheight);
|
||||
if(type == "shouldered") {
|
||||
color(icolor,.6) cylinder(d=od+4, h=sheight);
|
||||
}
|
||||
}
|
||||
color(icolor,.6) translate([0,0,-1]) cylinder(d=id, h=od+sheight+2);
|
||||
if(type == "shouldered" && countersunk == true) {
|
||||
color(icolor,.6) translate([0,0,-.01]) cylinder(d2=id, d1=6, h=sheight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -723,7 +723,16 @@ if(case_design == "rack" && side == "bottom") {
|
||||
slab([width-(2*wallthick),depth-(2*wallthick),2+adj],corner_fillet);
|
||||
translate([-gap-wallthick-adj,-gap-wallthick,case_z-floorthick])
|
||||
slab([width,depth+adj,20],corner_fillet);
|
||||
|
||||
// case exterior support holes
|
||||
translate([-gap-wallthick+10,depth-2*(wallthick+gap)-5,-adj]) cylinder(d=3, h=floorthick+(2*adj));
|
||||
translate([450/2-gap-wallthick,depth-2*(wallthick+gap)-5,-adj]) cylinder(d=3, h=floorthick+(2*adj));
|
||||
translate([450-gap-wallthick-10,depth-2*(wallthick+gap)-5,-adj]) cylinder(d=3, h=floorthick+(2*adj));
|
||||
translate([-gap-wallthick+10,5,-adj]) cylinder(d=3, h=floorthick+(2*adj));
|
||||
translate([450/2-gap-wallthick,5,-adj]) cylinder(d=3, h=floorthick+(2*adj));
|
||||
translate([450-gap-wallthick-10,5,-adj]) cylinder(d=3, h=floorthick+(2*adj));
|
||||
}
|
||||
|
||||
// additive accessories
|
||||
if(accessory_name != "none") {
|
||||
for (i=[1:11:len(accessory_data[a[0]])-1]) {
|
||||
|
||||
@@ -26,7 +26,16 @@
|
||||
individual_part = "bottom"; // [top, bottom, right, left, front, rear, io_shield, accessories]
|
||||
// section individual parts for panel cases
|
||||
section_part = false; // [true,false]
|
||||
accessory = "grommet"; // ["fan cover", "grommet", "hd25 holder", "1u rack stand"]
|
||||
accessory = "grommet"; // ["1u rack stand", "2.5 drive holder", "fan cover", "grommet", "washer"]
|
||||
|
||||
/* [1U Rack Stand] */
|
||||
rack_width = 19; // [10, 19]
|
||||
rack_1u = 4; // [1 : 4]
|
||||
rack_fasteners = "nut"; // ["none", "nut", "insert"]
|
||||
|
||||
/* [2.5" Drive Holder] */
|
||||
holder_length = 110; // [110, 145]
|
||||
holder_width = 101.6; // [101.6 : .1 : 150]
|
||||
|
||||
/* [Fan Cover] */
|
||||
fan_style = "fan_hex"; // ["fan_open", "fan_1", "fan_2", "fan_hex"]
|
||||
@@ -39,14 +48,13 @@
|
||||
grommet_id = 6; // [2 : .25 : 20]
|
||||
installation_wall_thickness = 2; // [2 : .25 : 5]
|
||||
|
||||
/* [2.5" HD Holder] */
|
||||
holder_length = 110; // [110, 145]
|
||||
holder_width = 101.6; // [101.6 : .1 : 150]
|
||||
|
||||
/* [1U Rack Stand] */
|
||||
rack_width = 19; // [10, 19]
|
||||
rack_1u = 4; // [1 : 4]
|
||||
rack_fasteners = "nut"; // ["none", "nut", "insert"]
|
||||
/* [Washer] */
|
||||
washer_style = "flat"; // ["flat", "shouldered"]
|
||||
washer_od = 5; // [3 : .25 : 20]
|
||||
washer_id = 3; // [2 : .25 : 20]
|
||||
washer_thickness = 2; // [1 : .25 : 8]
|
||||
shoulder_height = 3; // [1 : .25 : 4]
|
||||
shoulder_countersunk = false; // [true,false]
|
||||
|
||||
/* [Hidden] */
|
||||
mask = [true, 10, 2, "default"];
|
||||
@@ -58,23 +66,32 @@
|
||||
|
||||
// model view
|
||||
if (view == "model") {
|
||||
if(accessory == "1u rack stand") {
|
||||
rack_stand(rack_1u);
|
||||
}
|
||||
if(accessory == "2.5 drive holder") {
|
||||
hd35_25holder(holder_length, holder_width);
|
||||
}
|
||||
if(accessory == "fan cover") {
|
||||
fan_cover(fan_size, fan_cover_thickness, fan_style);
|
||||
}
|
||||
if(accessory == "grommet") {
|
||||
grommet("front", grommet_style, grommet_od, grommet_id, installation_wall_thickness, true, nmask);
|
||||
}
|
||||
if(accessory == "hd25 holder") {
|
||||
hd35_25holder(holder_length, holder_width);
|
||||
}
|
||||
if(accessory == "1u rack stand") {
|
||||
rack_stand(rack_1u);
|
||||
if(accessory == "washer") {
|
||||
washer(washer_style, washer_id, washer_od, washer_thickness, shoulder_height, shoulder_countersunk, "silver");;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// platter view
|
||||
if (view == "platter") {
|
||||
if(accessory == "1u rack stand") {
|
||||
rotate([0,270,0]) rack_stand(rack_1u);
|
||||
}
|
||||
if(accessory == "2.5 drive holder") {
|
||||
hd35_25holder(holder_length, holder_width);
|
||||
}
|
||||
if(accessory == "fan cover") {
|
||||
fan_cover(fan_size, fan_cover_thickness, fan_style);
|
||||
}
|
||||
@@ -90,10 +107,8 @@
|
||||
translate([0,-20,0])
|
||||
grommet_clip(grommet_style, grommet_od, grommet_id, installation_wall_thickness);
|
||||
}
|
||||
if(accessory == "hd25 holder") {
|
||||
hd35_25holder(holder_length, holder_width);
|
||||
}
|
||||
if(accessory == "1u rack stand") {
|
||||
rotate([0,270,0]) rack_stand(rack_1u);
|
||||
if(accessory == "washer") {
|
||||
washer(washer_style, washer_id, washer_od, washer_thickness,
|
||||
shoulder_height, shoulder_countersunk, "silver");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user