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

@ -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();

View File

@ -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.
- 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.

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;
@ -136,6 +136,7 @@ module sideSupportRailBase(top=true, recess=false, supportedZ, supportedY, suppo
}
}
}
}
}