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.
|
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
|
### 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
|
## Accuracy
|
||||||
|
|||||||
@@ -21,20 +21,20 @@
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
NAME: fan_cover
|
NAME: m_insert
|
||||||
DESCRIPTION: creates fan covers for fan openings
|
DESCRIPTION: creates brass inserts for models
|
||||||
TODO: none
|
TODO: none
|
||||||
|
|
||||||
USAGE: m_insert(type="M3", icolor = "#ebdc8b")
|
USAGE: m_insert(type="m3", icolor = "#ebdc8b")
|
||||||
|
|
||||||
type = "M3"
|
type = "m3"
|
||||||
icolor = color of insert
|
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;
|
odiam = type == "m3" ? 4.2 : 3.5;
|
||||||
idiam = type == "M3" ? 3 : 2.5;
|
idiam = type == "m3" ? 3 : 2.5;
|
||||||
iheight = 4;
|
iheight = 4;
|
||||||
|
|
||||||
difference() {
|
difference() {
|
||||||
@@ -46,3 +46,36 @@ module m_insert(type="M3", icolor = "#ebdc8b") { //#f4e6c3, #ebdc8b
|
|||||||
cube([.5, .5, 1.5]);
|
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);
|
slab([width-(2*wallthick),depth-(2*wallthick),2+adj],corner_fillet);
|
||||||
translate([-gap-wallthick-adj,-gap-wallthick,case_z-floorthick])
|
translate([-gap-wallthick-adj,-gap-wallthick,case_z-floorthick])
|
||||||
slab([width,depth+adj,20],corner_fillet);
|
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
|
// additive accessories
|
||||||
if(accessory_name != "none") {
|
if(accessory_name != "none") {
|
||||||
for (i=[1:11:len(accessory_data[a[0]])-1]) {
|
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]
|
individual_part = "bottom"; // [top, bottom, right, left, front, rear, io_shield, accessories]
|
||||||
// section individual parts for panel cases
|
// section individual parts for panel cases
|
||||||
section_part = false; // [true,false]
|
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 Cover] */
|
||||||
fan_style = "fan_hex"; // ["fan_open", "fan_1", "fan_2", "fan_hex"]
|
fan_style = "fan_hex"; // ["fan_open", "fan_1", "fan_2", "fan_hex"]
|
||||||
@@ -39,14 +48,13 @@
|
|||||||
grommet_id = 6; // [2 : .25 : 20]
|
grommet_id = 6; // [2 : .25 : 20]
|
||||||
installation_wall_thickness = 2; // [2 : .25 : 5]
|
installation_wall_thickness = 2; // [2 : .25 : 5]
|
||||||
|
|
||||||
/* [2.5" HD Holder] */
|
/* [Washer] */
|
||||||
holder_length = 110; // [110, 145]
|
washer_style = "flat"; // ["flat", "shouldered"]
|
||||||
holder_width = 101.6; // [101.6 : .1 : 150]
|
washer_od = 5; // [3 : .25 : 20]
|
||||||
|
washer_id = 3; // [2 : .25 : 20]
|
||||||
/* [1U Rack Stand] */
|
washer_thickness = 2; // [1 : .25 : 8]
|
||||||
rack_width = 19; // [10, 19]
|
shoulder_height = 3; // [1 : .25 : 4]
|
||||||
rack_1u = 4; // [1 : 4]
|
shoulder_countersunk = false; // [true,false]
|
||||||
rack_fasteners = "nut"; // ["none", "nut", "insert"]
|
|
||||||
|
|
||||||
/* [Hidden] */
|
/* [Hidden] */
|
||||||
mask = [true, 10, 2, "default"];
|
mask = [true, 10, 2, "default"];
|
||||||
@@ -58,23 +66,32 @@
|
|||||||
|
|
||||||
// model view
|
// model view
|
||||||
if (view == "model") {
|
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") {
|
if(accessory == "fan cover") {
|
||||||
fan_cover(fan_size, fan_cover_thickness, fan_style);
|
fan_cover(fan_size, fan_cover_thickness, fan_style);
|
||||||
}
|
}
|
||||||
if(accessory == "grommet") {
|
if(accessory == "grommet") {
|
||||||
grommet("front", grommet_style, grommet_od, grommet_id, installation_wall_thickness, true, nmask);
|
grommet("front", grommet_style, grommet_od, grommet_id, installation_wall_thickness, true, nmask);
|
||||||
}
|
}
|
||||||
if(accessory == "hd25 holder") {
|
if(accessory == "washer") {
|
||||||
hd35_25holder(holder_length, holder_width);
|
washer(washer_style, washer_id, washer_od, washer_thickness, shoulder_height, shoulder_countersunk, "silver");;
|
||||||
}
|
|
||||||
if(accessory == "1u rack stand") {
|
|
||||||
rack_stand(rack_1u);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// platter view
|
// platter view
|
||||||
if (view == "platter") {
|
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") {
|
if(accessory == "fan cover") {
|
||||||
fan_cover(fan_size, fan_cover_thickness, fan_style);
|
fan_cover(fan_size, fan_cover_thickness, fan_style);
|
||||||
}
|
}
|
||||||
@@ -90,10 +107,8 @@
|
|||||||
translate([0,-20,0])
|
translate([0,-20,0])
|
||||||
grommet_clip(grommet_style, grommet_od, grommet_id, installation_wall_thickness);
|
grommet_clip(grommet_style, grommet_od, grommet_id, installation_wall_thickness);
|
||||||
}
|
}
|
||||||
if(accessory == "hd25 holder") {
|
if(accessory == "washer") {
|
||||||
hd35_25holder(holder_length, holder_width);
|
washer(washer_style, washer_id, washer_od, washer_thickness,
|
||||||
}
|
shoulder_height, shoulder_countersunk, "silver");
|
||||||
if(accessory == "1u rack stand") {
|
|
||||||
rotate([0,270,0]) rack_stand(rack_1u);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user