New version
This commit is contained in:
BIN
server_rack/images/fan_plate.png
Normal file
BIN
server_rack/images/fan_plate.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
BIN
server_rack/images/rack.png
Normal file
BIN
server_rack/images/rack.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
server_rack/images/ssd_plate.png
Normal file
BIN
server_rack/images/ssd_plate.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
@@ -15,20 +15,20 @@ module pilar() {
|
||||
}
|
||||
}
|
||||
// holes_positions
|
||||
* color("red") {
|
||||
color("red") {
|
||||
translate([-60,0,b_height-.5]) ycyl(l=200, d=1);
|
||||
translate([60,0,b_height-.5]) ycyl(l=200, d=1);
|
||||
}
|
||||
|
||||
// sample side attach
|
||||
* difference() {
|
||||
difference() {
|
||||
translate([0, 0, 0]) zcyl(l=5, d=18, rounding2=1);
|
||||
nutcatch_parallel("M4", clh=0.1);
|
||||
translate([0,0,10]) hole_through(name="M4", l=10+5, cld=0.1, h=0, hcld=0.4);
|
||||
}
|
||||
|
||||
// base plate
|
||||
difference() {
|
||||
!difference() {
|
||||
union() {
|
||||
rect_tube(b_height+1, base_l, wall=base_e, rounding=base_e, irounding=base_e/2, center=true) {
|
||||
attach(BOT) rect_tube(base_e, base_l, wall=base_e*4, rounding=base_e, irounding=base_e/2, center=true);
|
||||
|
||||
18
server_rack/scad/fan_mount.scad
Normal file
18
server_rack/scad/fan_mount.scad
Normal file
@@ -0,0 +1,18 @@
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
module fan_mount() {
|
||||
difference() {
|
||||
union() {
|
||||
rotate([0,0,45]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
rotate([0,0,-45]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
tube(od=172.5, id=138.5, l=3);
|
||||
}
|
||||
// fan_holes
|
||||
translate([52.5,52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([52.5,-52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([-52.5,52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([-52.5,-52.5,0]) zcyl(l=10, d=4.5);
|
||||
}
|
||||
}
|
||||
|
||||
*fan_mount();
|
||||
133
server_rack/scad/rack.scad
Normal file
133
server_rack/scad/rack.scad
Normal file
@@ -0,0 +1,133 @@
|
||||
$fn=60;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
include <boltsos_0.4.1/BOLTS.scad>
|
||||
include <nutsnbolts/cyl_head_bolt.scad>;
|
||||
include <triple_ssd_mount.scad>
|
||||
include <fan_mount.scad>
|
||||
|
||||
base_l=190;
|
||||
base_e=3;
|
||||
b_height=5;
|
||||
r_height=200;
|
||||
|
||||
module screw(x) {
|
||||
translate([0,-5,0]) rotate([90,90,0]) {
|
||||
nutcatch_parallel("M4", clh=0.1);
|
||||
hole_through(name="M4", l=x, cld=0.1, h=0, hcld=0.4);
|
||||
}
|
||||
}
|
||||
|
||||
module base_plate() {
|
||||
/*[front]*/
|
||||
translate([0,0,13]) {
|
||||
union() {
|
||||
translate([-90,-97,0]) corner();
|
||||
translate([90,-97,0]) mirror([1,0,0]) corner();
|
||||
}
|
||||
union() {
|
||||
translate([-90,97,0]) corner();
|
||||
translate([90,97,0]) mirror([1,0,0]) corner();
|
||||
}
|
||||
}
|
||||
/*[plate]*/
|
||||
translate([0,0,3]) rect_tube(7, size=[base_l,base_l+7], wall=base_e, center=true) {
|
||||
attach(BOT) rect_tube(base_e, size=[base_l,base_l+7], wall=base_e*5, irounding=10, center=true);
|
||||
}
|
||||
}
|
||||
|
||||
module rail(h) {
|
||||
difference() {
|
||||
color("grey") cuboid([10,10,h], rounding=1);
|
||||
color("red") for(i=[-90 : 20 : 90]) translate([0,0,i]) screw(10.5);
|
||||
}
|
||||
}
|
||||
|
||||
module rail2(h) {
|
||||
difference() {
|
||||
color("grey") cuboid([20,10,h], rounding=1);
|
||||
color("red") for(i=[-90 : 20 : 90]) {
|
||||
translate([5,0,i]) screw(10.5);
|
||||
translate([-5,0,i]) screw(10.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module corner() {
|
||||
difference() {
|
||||
union() {
|
||||
cuboid([30,3,30], rounding=3, edges=[LEFT+TOP,LEFT+BOT]);
|
||||
translate([50,0,-10]) cuboid([100,3,10]);
|
||||
}
|
||||
translate([15,0,15]) ycyl(l=3.5, d=40);
|
||||
translate([-10,0,10]) screw(10.5);
|
||||
translate([-10,0,-10]) screw(10.5);
|
||||
translate([30,0,-10]) screw(10.5);
|
||||
}
|
||||
}
|
||||
|
||||
module connector() {
|
||||
mirror ([0,0,1]) difference() {
|
||||
union() {
|
||||
cuboid([33,16,30], rounding=1);
|
||||
translate([50,0,-10]) cuboid([100,16,10], rounding=1);
|
||||
}
|
||||
translate([20,0,15]) ycyl(l=16.5, d=40, rounding=-1.5);
|
||||
translate([-12,0,0]) cuboid([12,11,30], rounding=-1);
|
||||
translate([-3,0,10]) rotate([0,0,90]) screw(20);
|
||||
translate([-11,0,5]) ycyl(l=20, d=2);
|
||||
translate([-11,0,-5]) ycyl(l=20, d=2);
|
||||
}
|
||||
*difference() {
|
||||
translate([-5,0,10]) rotate([0,90,0]) nutcatch_parallel("M4", clh=0.1);
|
||||
translate([-3,0,10]) rotate([0,0,90]) screw(20);
|
||||
}
|
||||
}
|
||||
|
||||
module walls() {
|
||||
difference() {
|
||||
union() {
|
||||
translate([0,0,19]) cuboid([3,85,38], rounding=3, edges=[TOP+FRONT,TOP+BACK]);
|
||||
for(i=[2:13:28]) translate([-1.5,0,i]) ycyl(l=85, d=3);
|
||||
}
|
||||
for(i=[7:13:33]) {
|
||||
translate([0,-38.5,i]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,i]) xcyl(l=3, d=3.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// holes_positions
|
||||
color("red") {
|
||||
translate([-60,0,-10]) ycyl(l=220, d=1);
|
||||
translate([60,0,-10]) ycyl(l=220, d=1);
|
||||
translate([-100,0,-10]) ycyl(l=220, d=1);
|
||||
translate([100,0,-10]) ycyl(l=220, d=1);
|
||||
}
|
||||
|
||||
/*[rails]*/
|
||||
translate([-105,-90,0]) mirror([0,1,0]) rail2(200);
|
||||
translate([-105,90,0]) rail2(200);
|
||||
translate([100,-90,0]) mirror([0,1,0]) rail(200);
|
||||
translate([100,90,0]) rail(200);
|
||||
// 1U
|
||||
translate([120,90,-40]) rail(120);
|
||||
|
||||
/*connectors*/
|
||||
color("green") translate([0,0,-80]) rotate([0,0,90]) {
|
||||
translate([-79,-100,0]) connector();
|
||||
translate([79,-100,0]) mirror([1,0,0]) connector();
|
||||
}
|
||||
|
||||
color("cyan") {
|
||||
/*[plates_and_accessories]*/
|
||||
translate([0,0,7]) {
|
||||
base_plate();
|
||||
rotate([0,0,90]) ssd_mount();
|
||||
}
|
||||
translate([0,0,-53]) {
|
||||
base_plate();
|
||||
translate([0,0,-0.5]) rotate([0,0,90])fan_mount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
$fn=60;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
include <nutsnbolts/cyl_head_bolt.scad>
|
||||
|
||||
* import("../stl/dual_2.5_ssd_shelf.stl");
|
||||
|
||||
module wall() {
|
||||
difference() {
|
||||
union() {
|
||||
translate([0,0,19]) cuboid([3,85,38], rounding=3, edges=[TOP+FRONT,TOP+BACK]);
|
||||
translate([-1.5,0,2.5]) ycyl(l=85, d=3);
|
||||
translate([-1.5,0,15.5]) ycyl(l=85, d=3);
|
||||
translate([-1.5,0,28.5]) ycyl(l=85, d=3);
|
||||
}
|
||||
translate([0,-38.5,7]) xcyl(l=3, d=3.5);
|
||||
translate([0,-38.5,20]) xcyl(l=3, d=3.5);
|
||||
translate([0,-38.5,33]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,7]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,20]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,33]) xcyl(l=3, d=3.5);
|
||||
}
|
||||
}
|
||||
|
||||
color("red") {
|
||||
rect_tube(h=3, size=[76,85], wall=7);
|
||||
* cuboid([76,85,3]);
|
||||
translate([36.5,0,0]) wall();
|
||||
translate([-36.5,0,0]) mirror([1,0,0]) wall();
|
||||
}
|
||||
@@ -1,37 +1,33 @@
|
||||
$fn=60;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
|
||||
module wall() {
|
||||
module walls() {
|
||||
difference() {
|
||||
union() {
|
||||
translate([0,0,19]) cuboid([3,85,38], rounding=3, edges=[TOP+FRONT,TOP+BACK]);
|
||||
translate([-1.5,0,2]) ycyl(l=85, d=3);
|
||||
translate([-1.5,0,15]) ycyl(l=85, d=3);
|
||||
translate([-1.5,0,28]) ycyl(l=85, d=3);
|
||||
}
|
||||
translate([0,-38.5,7]) xcyl(l=3, d=3.5);
|
||||
translate([0,-38.5,20]) xcyl(l=3, d=3.5);
|
||||
translate([0,-38.5,33]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,7]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,20]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,33]) xcyl(l=3, d=3.5);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
rect_tube(h=3, size=[85,85], wall=10, center=true, anchor=TOP)
|
||||
translate([36.5,0,0]) wall();
|
||||
translate([-36.5,0,0]) mirror([1,0,0]) wall();
|
||||
rotate([0,0,41]) cuboid([170,10,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
rotate([0,0,-41]) cuboid([170,10,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
tube(od=135, id=125, l=3);
|
||||
for(i=[2:13:28]) translate([-1.5,0,i]) ycyl(l=85, d=3);
|
||||
}
|
||||
* cuboid([66,75,8]);
|
||||
translate([60,52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([60,-52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([-60,52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([-60,-52.5,0]) zcyl(l=10, d=4.5);
|
||||
for(i=[7:13:33]) {
|
||||
translate([0,-38.5,i]) xcyl(l=3, d=3.5);
|
||||
translate([0,38.5,i]) xcyl(l=3, d=3.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module ssd_mount() {
|
||||
difference() {
|
||||
union() {
|
||||
rect_tube(h=3, size=[85,85], wall=10, center=true);
|
||||
translate([36.5,0,0]) walls();
|
||||
translate([-36.5,0,0]) mirror([1,0,0]) walls();
|
||||
rotate([0,0,41]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
rotate([0,0,-41]) cuboid([250,15,3], rounding=5, edges=[FWD+RIGHT,FWD+LEFT,BACK+RIGHT,BACK+LEFT]);
|
||||
tube(od=172.5, id=147.5, l=3);
|
||||
}
|
||||
translate([60,52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([60,-52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([-60,52.5,0]) zcyl(l=10, d=4.5);
|
||||
translate([-60,-52.5,0]) zcyl(l=10, d=4.5);
|
||||
}
|
||||
}
|
||||
|
||||
*ssd_mount();
|
||||
|
||||
BIN
server_rack/stl/connector.stl
Normal file
BIN
server_rack/stl/connector.stl
Normal file
Binary file not shown.
BIN
server_rack/stl/fan_plate.stl
Normal file
BIN
server_rack/stl/fan_plate.stl
Normal file
Binary file not shown.
BIN
server_rack/stl/front_plate.stl
Normal file
BIN
server_rack/stl/front_plate.stl
Normal file
Binary file not shown.
BIN
server_rack/stl/rail.stl
Normal file
BIN
server_rack/stl/rail.stl
Normal file
Binary file not shown.
BIN
server_rack/stl/rail2.stl
Normal file
BIN
server_rack/stl/rail2.stl
Normal file
Binary file not shown.
BIN
server_rack/stl/rail_1U.stl
Normal file
BIN
server_rack/stl/rail_1U.stl
Normal file
Binary file not shown.
BIN
server_rack/stl/triple_ssd_plus_fan_plate.stl
Normal file
BIN
server_rack/stl/triple_ssd_plus_fan_plate.stl
Normal file
Binary file not shown.
Reference in New Issue
Block a user