Files
rackstack/rack/sharedVariables.scad
2023-08-19 18:31:24 -04:00

120 lines
4.2 KiB
OpenSCAD

include <../config/common.scad>
// TODO: This rather unweildy config file is the result of multiple lazy and forgetful refactors. Clean it up.
// Main rail variables:
/* Small horizontal planes at the top and bottom of the main rails. Used so we can fasten the rail to the frame
Note that this value is also used for a depression at the bottom/top of the frame for aligning the rail */
railFootThickness = 3;
railTotalHeight = screwDiff * (numRailScrews + 1) + 2 * railFootThickness;
railFrontThickness = 8; // Make sure that the nuts for the chosen screw type can slot within the front face
railSideMountThickness = 2.5;
// Distance between the middle of a screw mount and the rail's vertical edges
railScrewHoleToInnerEdge = 5;
railScrewHoleToOuterEdge = 7;
// Distance between the midpoint of the rail screw holes.
rackMountScrewWidth = maxUnitWidth + 2 * railScrewHoleToInnerEdge;
// Extra spacing for screws.
frontScrewSpacing = 15;
sideSupportScrewHoleToBackEdge = 4;
sideSupportDepth = sideSupportScrewHoleToBackEdge + frontScrewSpacing;
frontFaceWidth = railScrewHoleToInnerEdge + railScrewHoleToOuterEdge;
railTotalWidth = frontFaceWidth;
railTotalDepth = railFrontThickness+sideSupportDepth;
// Side Wall variables, cannot put in sideWallVariables due to dependency by ybar
sideWallThickness = 2.5;
sideWallSlotToOuterYEdge = 3;
sideWallSlotToOuterXEdge = 3; // TODO rename to variables found in ybar
sideWallConnectorSlotWidth = 7;
// Y Bar variables:
railSlotToXZ = 3;
sideWallSlotToXZ = 3;
railSlotToInnerYEdge = 2;
railSlotToSideWallSlot = 2;
yBarWidth = railSlotToInnerYEdge + railTotalWidth+ railSlotToSideWallSlot
+ sideWallSlotToOuterYEdge + sideWallConnectorSlotWidth;
yBarDepth = maxUnitDepth + 2*railSlotToInnerYEdge;
yBarHeight = 15;
yBarWallThickness = 3;
yBarRoundness = baseRoundness;
joinCornerDepth = 32;
// It's actually the railSlotToInnerYEdge of the yBar, it'll be nice to be able to refer to it like yBar.railSlotToInnerYEdge
xBarX = maxUnitWidth - 2*railSlotToInnerYEdge;
xBarY = 32;
xBarHeight = 15;
xBarWallThickness = 3;
xBarSideThickness = 8;
xBarRoundness = baseRoundness;
rackTotalWidth = 2*yBarWidth + xBarX;
rackTotalDepth = yBarDepth;
// Dimensions for the connector block, applied to y-bar
yBarXYPlateBlockX = 12;
yBarXYPlateBlockY = 14;
yBarXYPlateBlockZ = 10;
// Needed for y bar to align this connector to its inner Y edge
yBarBasePlateConnectorWidth = yBarXYPlateBlockX;
// x and y faces of the yBarBasePlateMount_P block
plateBlockInnerXFaceToScrew = 6;
plateBlockInnerYFaceToScrew = 8;
plateBlockBaseConnRecession = 3;
plateBlockBaseConnY = 8;
basePlateYBarSlideNutDx = yBarXYPlateBlockX - plateBlockInnerXFaceToScrew;
basePlateYBarSlideNutDy = yBarXYPlateBlockY - plateBlockInnerYFaceToScrew;
basePlateScrewMountToYBarXZFace = basePlateYBarSlideNutDy + joinCornerDepth; // Distance to the nearest YBar XZ face
basePlateScrewMountToYBarYZFace = (yBarWidth+basePlateYBarSlideNutDx) - yBarBasePlateConnectorWidth;
basePlateConnYBarCornerDx = yBarWidth; // distance from a plate body corner and the nearest yBar corner
basePlateConnYBarCornerDy = xBarY; // distance from a plate body corner and the nearest yBar corner
basePlateConnPosX = basePlateScrewMountToYBarYZFace - basePlateConnYBarCornerDx; // distance between plateBody corner at (0,0,0) and the related corner
basePlateConnPosY = basePlateScrewMountToYBarXZFace - basePlateConnYBarCornerDy;
xyPlateConnDx = xBarX + 2*basePlateYBarSlideNutDx; // X distance between connectors
xyPlateConnDy = yBarDepth - 2*basePlateScrewMountToYBarXZFace; // Y distance between connectors
plateGap = 1; // distance between edge of xy plate and other parts
assert(plateGap >= xySlack);
connectorYEdgeToYBarYEdge = 5;
connectorXEdgeToYBarXEdge = 5;
connectorRectWidth = 10;
connectorRectDepth = 10;
connectorTotalHeight = 10;
connectorSocketMagnetExtrudeHeight = 1;
connectorTaperStartHeight = 3;
connectorTopR = 3;
connectorRectPlugSlack = -0.2;
connectorRectSocketSlack = 0.2;
connectorBottomToScrew = 6;
// Distance from midpoint of stack connectors to each other
stackConnectorDx = rackTotalWidth - 2*(connectorXEdgeToYBarXEdge + connectorRectWidth/2);
stackConnectorDy = rackTotalDepth - 2*(connectorYEdgeToYBarYEdge + connectorRectDepth/2);
stackConnectorDualSpacing = 0.5;
feetProtrusionAngle = 40;