diff --git a/README.md b/README.md index 19e0355..b7f513f 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif b/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif index 4cfc954..687072a 100644 Binary files a/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif and b/assembly-guide/gifs/attachSideConnectorModulesToYBars.gif differ diff --git a/assembly-guide/gifs/attachXBarWithYBar.gif b/assembly-guide/gifs/attachXBarWithYBar.gif index 21abc13..db2b18b 100644 Binary files a/assembly-guide/gifs/attachXBarWithYBar.gif and b/assembly-guide/gifs/attachXBarWithYBar.gif differ diff --git a/assembly-guide/gifs/attachXYPlates.gif b/assembly-guide/gifs/attachXYPlates.gif index 93a9ae3..b49f1bd 100644 Binary files a/assembly-guide/gifs/attachXYPlates.gif and b/assembly-guide/gifs/attachXYPlates.gif differ diff --git a/assembly-guide/gifs/attachXYTrays.gif b/assembly-guide/gifs/attachXYTrays.gif index 4b74db6..928d459 100644 Binary files a/assembly-guide/gifs/attachXYTrays.gif and b/assembly-guide/gifs/attachXYTrays.gif differ diff --git a/assembly-guide/gifs/connectXYTrayWithMainRails.gif b/assembly-guide/gifs/connectXYTrayWithMainRails.gif index 158f47f..e4da785 100644 Binary files a/assembly-guide/gifs/connectXYTrayWithMainRails.gif and b/assembly-guide/gifs/connectXYTrayWithMainRails.gif differ diff --git a/assembly-guide/gifs/insertFeet.gif b/assembly-guide/gifs/insertFeet.gif index fbe248c..81b9ac9 100644 Binary files a/assembly-guide/gifs/insertFeet.gif and b/assembly-guide/gifs/insertFeet.gif differ diff --git a/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif b/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif index f748a27..e8c8eb3 100644 Binary files a/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif and b/assembly-guide/gifs/propUpBottomXYTraywithSideWalls.gif differ diff --git a/assembly-guide/gifs/screwFeet.gif b/assembly-guide/gifs/screwFeet.gif index 2d99980..539a303 100644 Binary files a/assembly-guide/gifs/screwFeet.gif and b/assembly-guide/gifs/screwFeet.gif differ diff --git a/assembly-guide/gifs/screwXBarAndYBar.gif b/assembly-guide/gifs/screwXBarAndYBar.gif index 54004a8..b6eb72f 100644 Binary files a/assembly-guide/gifs/screwXBarAndYBar.gif and b/assembly-guide/gifs/screwXBarAndYBar.gif differ diff --git a/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif b/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif index dc3e5df..122ede2 100644 Binary files a/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif and b/assembly-guide/gifs/slideHexNutsIntoYBarXYPlate.gif differ diff --git a/rack-mount/angle-bracket/README.md b/rack-mount/angle-bracket/README.md new file mode 100644 index 0000000..bcc53fc --- /dev/null +++ b/rack-mount/angle-bracket/README.md @@ -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). diff --git a/rack-mount/angle-bracket/animate.gif b/rack-mount/angle-bracket/animate.gif new file mode 100644 index 0000000..ef78c03 Binary files /dev/null and b/rack-mount/angle-bracket/animate.gif differ diff --git a/rack-mount/angle-bracket/animate.scad b/rack-mount/angle-bracket/animate.scad new file mode 100644 index 0000000..28f5f7c --- /dev/null +++ b/rack-mount/angle-bracket/animate.scad @@ -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); + +} + + diff --git a/rack-mount/angle-bracket/entry.scad b/rack-mount/angle-bracket/entry.scad new file mode 100644 index 0000000..1904b92 --- /dev/null +++ b/rack-mount/angle-bracket/entry.scad @@ -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(); diff --git a/rack-mount/enclosed-box/README.md b/rack-mount/enclosed-box/README.md index bffc74b..82fdc20 100644 --- a/rack-mount/enclosed-box/README.md +++ b/rack-mount/enclosed-box/README.md @@ -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 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. -- 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. \ No newline at end of file +- 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. diff --git a/rack-mount/enclosed-box/animate.gif b/rack-mount/enclosed-box/animate.gif index 75c01de..42e74a6 100644 Binary files a/rack-mount/enclosed-box/animate.gif and b/rack-mount/enclosed-box/animate.gif differ diff --git a/rack-mount/enclosed-box/entry.scad b/rack-mount/enclosed-box/entry.scad index 3fba17a..b19ba71 100644 --- a/rack-mount/enclosed-box/entry.scad +++ b/rack-mount/enclosed-box/entry.scad @@ -21,7 +21,7 @@ visualize = false, zOrientation = "middle", // ["middle" | "bottom"] recessSideRail = false, -boxWidth = 200, +boxWidth = 160, boxHeight = 27, boxDepth = 120, diff --git a/rack-mount/enclosed-box/sideRail.scad b/rack-mount/enclosed-box/sideRail.scad index 10b3c17..9d3e38a 100644 --- a/rack-mount/enclosed-box/sideRail.scad +++ b/rack-mount/enclosed-box/sideRail.scad @@ -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; @@ -136,6 +136,7 @@ module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, suppo } } + } } } diff --git a/rbuild.py b/rbuild.py index 9e171bb..6e298e6 100644 --- a/rbuild.py +++ b/rbuild.py @@ -81,7 +81,8 @@ ASSEMBLY_STEPS = [ MOUNT_ANIMATIONS = [ ('enclosed-box', 32), ('tray', 32), - ('patch-panel', 32) + ('patch-panel', 32), + ('angle-bracket', 32) ] def main():