refactor
This commit is contained in:
132
patch-panel.scad
Normal file
132
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();
|
||||
Reference in New Issue
Block a user