reorganize old files, and update readme with banner image
This commit is contained in:
85
rack/open-frame.scad
Normal file
85
rack/open-frame.scad
Normal 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
132
rack/patch-panel.scad
Normal 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
22
rack/risers.scad
Normal 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();
|
||||
|
||||
Reference in New Issue
Block a user