112 lines
3.7 KiB
OpenSCAD
112 lines
3.7 KiB
OpenSCAD
include <../config/common.scad>
|
|
|
|
// 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;
|
|
|
|
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;
|
|
|