update rack-mount items
This commit is contained in:
1
TODO.md
1
TODO.md
@ -7,6 +7,7 @@
|
||||
- Start working on actual cases
|
||||
- Figure out why sidewall build is so slow
|
||||
- Tidy up imports
|
||||
- Standardize meaning of `U`
|
||||
|
||||
### Ideas
|
||||
- Clean up `sharedVariables.scad`!!!
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
|
||||
include <../config/slack.scad>
|
||||
|
||||
// rj45 slot-to-slot keystone jack model and negative
|
||||
keystoneMainBodyWidth = 15.0;
|
||||
keystoneMainBodyHeight = 16.90;
|
||||
@ -17,20 +19,21 @@ frontToSideLugFront = 10.63;
|
||||
|
||||
module rj45Keystone() {
|
||||
// main keystone body (no hooks or lugs)
|
||||
cube(size=[keystoneMainBodyWidth, keystoneMainBodyDepth, keystoneMainBodyHeight]);
|
||||
cube(size=[keystoneMainBodyWidth + xySlack, keystoneMainBodyDepth + xySlack, keystoneMainBodyHeight]);
|
||||
|
||||
// slot for top hook
|
||||
translate(v=[0,frontToHookCatch,0])
|
||||
cube(size=[keystoneMainBodyWidth, keystoneMainBodyDepth -frontToHookCatch, heightWithHookBody]);
|
||||
cube(size=[keystoneMainBodyWidth, frontToHookCatch, heightWithHookCatch]);
|
||||
cube(size=[keystoneMainBodyWidth + xySlack, keystoneMainBodyDepth-frontToHookCatch + xySlack, heightWithHookBody]);
|
||||
|
||||
cube(size=[keystoneMainBodyWidth + xySlack, frontToHookCatch + xySlack, heightWithHookCatch]);
|
||||
|
||||
// slots for side lugs
|
||||
translate(v=[-sideLugWidth, frontToSideLugFront,0])
|
||||
cube(size=[widthWithSideLugs, keystoneMainBodyDepth-frontToSideLugFront, keystoneMainBodyHeight]);
|
||||
cube(size=[widthWithSideLugs + xySlack, keystoneMainBodyDepth-frontToSideLugFront + xySlack, keystoneMainBodyHeight]);
|
||||
|
||||
// slots for bottom lugs
|
||||
translate(v=[0,0,-(heightWithBottomLug-keystoneMainBodyHeight)])
|
||||
cube(size=[keystoneMainBodyWidth, frontToBottomLugBack, keystoneMainBodyHeight]);
|
||||
cube(size=[keystoneMainBodyWidth + xySlack, frontToBottomLugBack + xySlack, keystoneMainBodyHeight]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Some misc math-y utils
|
||||
|
||||
$fn=64;
|
||||
eps=0.0001;
|
||||
eps=0.001;
|
||||
inf10 = 10;
|
||||
inf50 = 50;
|
||||
inf1000 = 1000;
|
||||
|
||||
10
rack-mount/frontBoxHolder.scad
Normal file
10
rack-mount/frontBoxHolder.scad
Normal file
@ -0,0 +1,10 @@
|
||||
// To be used with closed sideRails to fully encapsulate a box
|
||||
|
||||
include <../config/common.scad>
|
||||
include <../helper/common.scad>
|
||||
use <./plateBase.scad>
|
||||
|
||||
module frontBoxHolder(plateThickness=3, plate) {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
include <../config/common.scad>
|
||||
include <../helper/common.scad>
|
||||
include <../rack/sharedVariables.scad>
|
||||
use <./plateBase.scad>
|
||||
|
||||
|
||||
patchPanel(slots=2);
|
||||
|
||||
module patchPanel (slots=8) {
|
||||
difference() {
|
||||
plateThickness = 3;
|
||||
keystoneSpacing = 19;
|
||||
supportPlateThickness = 5.9;
|
||||
supportPlateHeight = 29;
|
||||
supportPlateEdgeSpacing = 3;
|
||||
supportPlateWidth = slots * keystoneSpacing + supportPlateEdgeSpacing;
|
||||
|
||||
leftRailScrewToSupportDx = railScrewHoleToInnerEdge+4;
|
||||
railScrewToEdge = 4.5;
|
||||
|
||||
union() {
|
||||
plateBase(U = 2, plateThickness = plateThickness, screwType = mainRailScrewType, screwToXEdge=railScrewToEdge, screwToYEdge=railScrewToEdge, filletR = 2);
|
||||
translate(v = [leftRailScrewToSupportDx, - railScrewToEdge, - supportPlateThickness])
|
||||
cube(size = [supportPlateWidth, supportPlateHeight, supportPlateThickness]);
|
||||
}
|
||||
|
||||
union() {
|
||||
for (i = [0:slots-1]) {
|
||||
translate(v = [leftRailScrewToSupportDx+supportPlateEdgeSpacing + i*keystoneSpacing, 0, eps])
|
||||
rotate(a = [-90, 0, 0])
|
||||
rj45KeystoneJack_N();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ include <./common.scad>
|
||||
|
||||
plateBase(U=2, plateThickness=3, screwType="m4", filletR=2);
|
||||
|
||||
module plateBase(U, plateThickness, screwType, screwToXEdge=4, screwToYEdge=4, filletR=2) {
|
||||
module plateBase(U, plateThickness, screwType, screwToXEdge=4.5, screwToYEdge=4.5, filletR=2) {
|
||||
|
||||
assert(floor(U) == U && U > 0)
|
||||
assert(plateThickness > 0);
|
||||
@ -14,11 +14,12 @@ module plateBase(U, plateThickness, screwType, screwToXEdge=4, screwToYEdge=4, f
|
||||
plateLength = screwDx + 2*screwToXEdge;
|
||||
plateHeight = screwDy + 2*screwToYEdge;
|
||||
|
||||
translate(v=[0,0,-plateThickness]) // easier to work with
|
||||
translate(v=[-screwToXEdge,-screwToYEdge,-plateThickness]) // easier to work with
|
||||
difference() {
|
||||
base();
|
||||
|
||||
mirror4XY(p=[screwToXEdge, screwToYEdge], dx=screwDx, dy=screwDy)
|
||||
translate(v=[0,0,plateThickness])
|
||||
cylinder(r=screwRadiusSlacked(screwType), h=plateThickness*2, center=true);
|
||||
}
|
||||
|
||||
@ -26,7 +27,6 @@ module plateBase(U, plateThickness, screwType, screwToXEdge=4, screwToYEdge=4, f
|
||||
minkowski() {
|
||||
translate(v=[filletR, filletR, 0])
|
||||
cube(size = [plateLength-2*filletR, plateHeight-2*filletR, plateThickness]);
|
||||
|
||||
cylinder(r=filletR, h=eps);
|
||||
}
|
||||
}
|
||||
|
||||
3
rack-mount/print/patchPanel_P.scad
Normal file
3
rack-mount/print/patchPanel_P.scad
Normal file
@ -0,0 +1,3 @@
|
||||
use <../patchPanel.scad>
|
||||
|
||||
patchPanel(slots=8);
|
||||
@ -8,7 +8,7 @@ sideSupportRailBase(u=2, double=true, top=true, baseThickness=1.5, sideThickness
|
||||
// distance between front and back main rail screw mounts
|
||||
sideRailScrewMountDist = yBarDepth - 2*(frontScrewSpacing + railFrontThickness + railSlotToXZ);
|
||||
|
||||
module sideSupportRailBase(u=2, double=true, top=true, baseThickness=2, sideThickness=2, backThickness=2, supportedZ=26.5, supportedY=101.5, supportedX=159) {
|
||||
module sideSupportRailBase(u=2, double=true, top=true, baseThickness=2, sideThickness=2, backThickness=2, supportedZ=27.5, supportedY=101.5, supportedX=159) {
|
||||
|
||||
mountBlockHeight = 10;
|
||||
mountBlockDepth = 10;
|
||||
|
||||
27
rbuild.py
27
rbuild.py
@ -3,8 +3,9 @@
|
||||
import argparse
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
||||
PATH_TO_OPENSCAD = '/Applications/OpenSCAD.app/Contents/MacOS/OpenSCAD'
|
||||
PATH_TO_OPENSCAD_NIGHTLY = 'path/to/nightly/build'
|
||||
|
||||
# For actual dimensions, please see profiles.scad.
|
||||
class BuildSizeConfig:
|
||||
@ -23,9 +24,9 @@ RACK_MOUNT_BUILD_TARGET_SUB_DIR = 'rack-mount'
|
||||
|
||||
|
||||
def main():
|
||||
if not assert_os():
|
||||
print("Linux Required for OpenSCAD CLI")
|
||||
return
|
||||
|
||||
if not assertOpenscadExists():
|
||||
print("Could not find OpenSCAD binary. Please make sure it's configured in rbuild.py. Currently only Darwin and Linux have been tested to work.")
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog='rbuild',
|
||||
@ -75,6 +76,10 @@ def main():
|
||||
def run_build(args):
|
||||
|
||||
build_var = args.b
|
||||
|
||||
if build_var is None:
|
||||
print("Please provide the build (-b) variable") # TODO redundant
|
||||
|
||||
config_var = args.c
|
||||
target_var = args.t
|
||||
dz = args.dz
|
||||
@ -166,9 +171,9 @@ def find_scad_file(directory, filename):
|
||||
def run_openscad(options, nightly):
|
||||
|
||||
if nightly:
|
||||
command = ['openscad-nightly', '--enable', 'all']
|
||||
command = [PATH_TO_OPENSCAD_NIGHTLY, '--enable', 'all']
|
||||
else:
|
||||
command = ['openscad']
|
||||
command = [PATH_TO_OPENSCAD]
|
||||
|
||||
command += ['--export-format', 'binstl'] + options
|
||||
try:
|
||||
@ -178,14 +183,8 @@ def run_openscad(options, nightly):
|
||||
print('OpenSCAD command not found! '
|
||||
'Please make sure that you have OpenSCAD installed and can run OpenSCAD CLI commands. '
|
||||
'(Currently needs Linux for this)')
|
||||
|
||||
|
||||
def assert_os():
|
||||
if sys.platform == 'linux':
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def assertOpenscadExists():
|
||||
return os.path.exists(PATH_TO_OPENSCAD)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
BIN
stl/micro/rack-mount/patchPanel_P.stl
Normal file
BIN
stl/micro/rack-mount/patchPanel_P.stl
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user