add angle bracket mounting system

This commit is contained in:
jazwa
2024-10-19 17:30:32 -04:00
parent d3da0510ba
commit c1c93a3dd5
20 changed files with 76 additions and 6 deletions

View File

@ -95,6 +95,7 @@ are currently supported:
- [Enclosed Box](./rack-mount/enclosed-box): For mounting box-shaped objects, without the need for any mounting holes on the box.
- [Tray](./rack-mount/tray): Simple tray mounted using only the front rails. Can be configured to have screw mounts at the bottom of the tray.
- [Patch Panel](./rack-mount/patch-panel): Linear patch panel array. Number of keystone slots can be configured.
- [Angle Brackets](./rack-mount/angle-bracket): Simple Angle Bracket mounting system. Derived from the Enclosed Box system.
## Rack Mount Catalog

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

@ -0,0 +1,7 @@
# Angle Bracket System
![demo](./animate.gif)
Please see [entry.scad](./entry.scad) for config and building. Make sure the correct rack profile is configured in [rackFrame.scad](../../config/rackFrame.scad).

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -0,0 +1,24 @@
use <./entry.scad>
$vpt = [120,-30,63];
$vpr = [74,0,25];
$vpd = 550;
$vpf = 22.50;
animateAngleBrackets(at=$t);
module animateAngleBrackets(at=$t) {
x = 150;
y = 70;
dx = abs(lerp(a=-20, b=20, t=at));
dy = abs(lerp(a=-50, b=50, t=at));
u = abs(at - 0.5) > 0.25 ? 3 : 4;
angleBrackets(visualize=true, boxWidth=x+dx, boxDepth=y+dy, u=u);
}

View File

@ -0,0 +1,36 @@
include <../common.scad>
use <../enclosed-box/sideRail.scad>
/*
Simple angle bracket mounting system. Mainly derived the enclosed box system.
*/
module angleBrackets (
// begin config ////////////////////////////////////////////////////////////////////////////////////////////////////////
// Does not affect any part dimensions. Set this to true to visualize how a box would be mounted.
visualize = false,
thickness = 3,
boxWidth = 160,
boxDepth = 120,
sideVent = false,
u = 3
// end config //////////////////////////////////////////////////////////////////////////////////////////////////////////
) {
sideSupportRailBase(top=false, defaultThickness=thickness, railSideThickness=thickness, supportedZ=10*u-2*thickness, supportedY=boxDepth, supportedX=boxWidth, sideVent=sideVent);
rightRailTrans = visualize
? translate(v=[boxWidth,0,0]) * mirror(v=[1,0,0])
: translate(v=[30,0,0]) * mirror(v=[1,0,0]);
multmatrix(rightRailTrans)
sideSupportRailBase(top=false, defaultThickness=thickness, railSideThickness=thickness, supportedZ=10*u-2*thickness, supportedY=boxDepth, supportedX=boxWidth, sideVent=sideVent);
}
angleBrackets();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 173 KiB

View File

@ -21,7 +21,7 @@ visualize = false,
zOrientation = "middle", // ["middle" | "bottom"]
recessSideRail = false,
boxWidth = 200,
boxWidth = 160,
boxHeight = 27,
boxDepth = 120,

View File

@ -1,10 +1,10 @@
include <../common.scad>
include <./helper.scad>
//sideSupportRailBase(top=true, defaultThickness=1.5, supportedZ=27.2, supportedY=101.5, supportedX=159);
// sideSupportRailBase(top=true, defaultThickness=1.5, supportedZ=27.2, supportedY=101.5, supportedX=159);
module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, supportedX, zOrientation="middle", defaultThickness=2, railSideThickness=4) {
module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, supportedX, zOrientation="middle", defaultThickness=2, railSideThickness=4, sideVent=true) {
mountBlockDepth = 10;
screwMountGlobalDz = screwDiff / 2.0; // vertical distance between local origin and main rail screw mount
@ -99,7 +99,7 @@ module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, suppo
cube(size = [sideRailBaseWidth, railLength, railBaseThickness]);
}
}
if (sideVent) {
union() {
distanceFromSeparator = 3;
r = 4;
@ -138,6 +138,7 @@ module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, suppo
}
}
}
}
}

View File

@ -81,7 +81,8 @@ ASSEMBLY_STEPS = [
MOUNT_ANIMATIONS = [
('enclosed-box', 32),
('tray', 32),
('patch-panel', 32)
('patch-panel', 32),
('angle-bracket', 32)
]
def main():