add angle bracket mounting system
@ -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.
|
- [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.
|
- [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.
|
- [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
|
## Rack Mount Catalog
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
7
rack-mount/angle-bracket/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
# Angle Bracket System
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Please see [entry.scad](./entry.scad) for config and building. Make sure the correct rack profile is configured in [rackFrame.scad](../../config/rackFrame.scad).
|
||||||
BIN
rack-mount/angle-bracket/animate.gif
Normal file
|
After Width: | Height: | Size: 94 KiB |
24
rack-mount/angle-bracket/animate.scad
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
36
rack-mount/angle-bracket/entry.scad
Normal 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();
|
||||||
@ -9,4 +9,4 @@ Please see [entry.scad](./entry.scad) for config and building. Make sure the cor
|
|||||||
- This system comprises three parts: two side rails, and a front plate.
|
- This system comprises three parts: two side rails, and a front plate.
|
||||||
- This system is useful for mounting heavier box-shaped things. It works by first sliding in the box inside the side rails (which secures `x`, `z`, and one half of the `y` axis), and then mounting the front plate along the main rails (fully securing the `y` axis).
|
- This system is useful for mounting heavier box-shaped things. It works by first sliding in the box inside the side rails (which secures `x`, `z`, and one half of the `y` axis), and then mounting the front plate along the main rails (fully securing the `y` axis).
|
||||||
- Side rails will most likely require supports to print.
|
- Side rails will most likely require supports to print.
|
||||||
- For wider boxes (nearing the `maxUnitWidth` of the rack), you will have to set `recessSideRail` to true. This is so the side rails do not collide with the main rack rails.
|
- For wider boxes (nearing the `maxUnitWidth` of the rack), you will have to set `recessSideRail` to true. This is so the side rails do not collide with the main rack rails.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 173 KiB |
@ -21,7 +21,7 @@ visualize = false,
|
|||||||
zOrientation = "middle", // ["middle" | "bottom"]
|
zOrientation = "middle", // ["middle" | "bottom"]
|
||||||
recessSideRail = false,
|
recessSideRail = false,
|
||||||
|
|
||||||
boxWidth = 200,
|
boxWidth = 160,
|
||||||
boxHeight = 27,
|
boxHeight = 27,
|
||||||
boxDepth = 120,
|
boxDepth = 120,
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
include <../common.scad>
|
include <../common.scad>
|
||||||
include <./helper.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;
|
mountBlockDepth = 10;
|
||||||
screwMountGlobalDz = screwDiff / 2.0; // vertical distance between local origin and main rail screw mount
|
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]);
|
cube(size = [sideRailBaseWidth, railLength, railBaseThickness]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sideVent) {
|
||||||
union() {
|
union() {
|
||||||
distanceFromSeparator = 3;
|
distanceFromSeparator = 3;
|
||||||
r = 4;
|
r = 4;
|
||||||
@ -136,6 +136,7 @@ module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, suppo
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||