reorganize old files, and update readme with banner image

This commit is contained in:
zhao
2023-01-08 19:00:04 -05:00
parent 407090507d
commit 43c2aceba5
12 changed files with 6 additions and 11293 deletions

85
rack/open-frame.scad Normal file
View File

@ -0,0 +1,85 @@
$fn=64;
include <./math.scad>
eps=0.1;
module leg() {
mainLength = 80;
upperDim = 20;
innerDim = 10;
translate(v=[0,0,mainLength/2]) {
cube(size=[upperDim, upperDim, mainLength], center=true);
translate(v=[0,0,mainLength/2 + innerDim/8-0.3])
cube(size=[innerDim, innerDim, innerDim/4-0.5], center=true);
}
}
module base() {
difference() {
union() {
cube(size=[200,200,4], center=true);
// legs
for (i=mirror4XY(midpoint=[0,0,-2], offsetX=90, offsetY=90)) {
translate(v=i)
leg();
}
// base support
translate(v=[0,0,4.5])
cube(size=[200,5,5], center=true);
rotate(a=[0,0,90])
translate(v=[0,0,4.5])
cube(size=[200,5,5], center=true);
translate(v=[0,-98,4.5])
cube(size=[200,4,5], center=true);
rotate(a=[0,0,90])
translate(v=[0,-98,4.5])
cube(size=[200,4,5], center=true);
rotate(a=[0,0,180])
translate(v=[0,-98,4.5])
cube(size=[200,4,5], center=true);
rotate(a=[0,0,270])
translate(v=[0,-98,4.5])
cube(size=[200,4,5], center=true);
}
union() {
// lug holes
for (i=mirror4XY(midpoint=[0,0,0], offsetX=50, offsetY=50)) {
for (j=mirror4XY(midpoint=i, offsetX=40, offsetY=40)) {
translate(v=j)
cube(size=[10+0.3,10+0.3,140], center=true);
}
}
// decorative perforations
for (i=mirror4XY(midpoint=[0,0,0], offsetX=50, offsetY=50)) {
translate(v=i)
minkowski() {
cube(size=[30,30,50], center=true);
cylinder(r=20, h=10);
}
}
}
}
}
base();

132
rack/patch-panel.scad Normal file
View File

@ -0,0 +1,132 @@
include <./common.scad>
include <./rack/screws.scad>
vU = 2;
uHeight = 10;
plateScrewDiffV = uHeight*vU;
plateScrewDiffH = 180;
plateScrewToHEdge = 4.5;
plateScrewToVEdge = 5.5;
frontPlateThickness = 3;
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
plateScrewToBoxMin = 6;
module _frontPlateBody() {
translate(v=[-plateScrewToVEdge,0,-plateScrewToHEdge])
cube(size=[frontPlateH,frontPlateThickness,frontPlateV]);
}
module _plateHole() {
rotate(a=[90,0,0])
cylinder(r=m4RadiusSlacked, h=inf, center=true);
}
module frontPlate() {
difference() {
_frontPlateBody();
union() {
// TODO: introduce helper modules for this pattern
_plateHole();
translate(v=[plateScrewDiffH,0,0])
_plateHole();
translate(v=[0,0,plateScrewDiffV])
_plateHole();
translate(v=[plateScrewDiffH,0,plateScrewDiffV])
_plateHole();
}
}
}
// keystone stuff
// a lot of these variables are useless, after a couple of design iterations
keystoneMainBodyWidth = 15.0;
keystoneMainBodyHeight = 16.90;
keystoneMainBodyDepth = 32.90;
heightWithHookBody = 20.2;
heightWithHookCatch = 21.30;
widthWithSideLugs = 15.96;
sideLugWidth = (widthWithSideLugs - keystoneMainBodyWidth) / 2.0;
heightWithBottomLug = 17.5;
frontToHookCatch = 8.35; // not sure about this
frontToBottomLugBack = 8.23;
frontToSideLugFront = 10.63;
module keystoneSlot_N() {
// main keystone body (no hooks or lugs)
cube(size=[keystoneMainBodyWidth, keystoneMainBodyDepth, keystoneMainBodyHeight]);
// slot for top hook
translate(v=[0,frontToHookCatch,0])
cube(size=[keystoneMainBodyWidth, keystoneMainBodyDepth -frontToHookCatch, heightWithHookBody]);
cube(size=[keystoneMainBodyWidth, frontToHookCatch, heightWithHookCatch]);
// slots for side lugs
translate(v=[-sideLugWidth, frontToSideLugFront,0])
cube(size=[widthWithSideLugs, keystoneMainBodyDepth-frontToSideLugFront, keystoneMainBodyHeight]);
// slots for bottom lugs
translate(v=[0,0,-(heightWithBottomLug-keystoneMainBodyHeight)])
cube(size=[keystoneMainBodyWidth, frontToBottomLugBack, keystoneMainBodyHeight]);
}
module keystoneJack_N() {
translate(v=[0,-4,0.5])
intersection() {
translate(v=[-2.5,4,-4])
cube(size=[20,6,28]);
keystoneSlot_N();
}
}
//keystoneJack_N();
module patchPanel_P() {
frontPlate();
for (i = [0:7]) {
translate(v=[(i*20+12.5)-2.5,0,-4.5])
cube(size=[20,6,29]);
}
}
module patchPanel() {
difference() {
patchPanel_P();
for (i = [0:7]) {
translate(v=[i*18 + 12.5,0,-2])
keystoneJack_N();
}
}
}
patchPanel();

22
rack/risers.scad Normal file
View File

@ -0,0 +1,22 @@
include <./common.scad>
include <./rack/screws.scad>
include <./rockpro/rockpro.scad>
module screwRiser(innerD, outerD, height) {
difference() {
cylinder(d=outerD, h=height, $fn=64);
cylinder(d=innerD, h=height, $fn=64);
}
}
module rockProScrewMounts() {
for (i=[0:3]) {
p = mountPoints[i];
translate(v=[p[0], p[1], p[2]])
screwRiser(innerD=2.8, outerD=8, height=7);
}
}
//rockProScrewMounts();