update on slide nut-only design

This commit is contained in:
zhao
2023-06-05 23:27:04 -04:00
parent e14a986e9e
commit cab6d8b13e
20 changed files with 772837 additions and 310030 deletions

View File

@ -66,6 +66,8 @@ module connectorPositive(on, to) {
onYBarToXBarPositive();
} else if (on == "yBar" && to == "basePlate") {
onYBarBasePlateConnectorPositive();
} else if (on == "xBar" && to == "yBar") {
onXBarToYBarPositive();
} else if (on == "mainRail" && to == "yBar") {
onMainRailYBarConnectorPositive();
}

View File

@ -12,7 +12,7 @@ include <../config.scad>
// On xBar
module onXBarToYBarNegative() {
y = 27;
z = 6;
z = 8;
slack = xBarYBarDovetailSlack;
translate(v=[-slack,14,0])
@ -35,18 +35,40 @@ module onXBarToYBarNegative() {
translate(v = [-xBarSideThickness, y, z])
rotate(a = [0, -90, 0])
counterSunkHead_N(rackFrameScrewType, screwExtension=inf10, headExtension=inf10);
// lugs for snap fit and hold in place
translate(v=[-0.1,3,13.5])
lug();
translate(v=[-0.1,26,13.5])
lug();
}
module onXBarToYBarPositive() {
// lugs for snap fit and hold in place
translate(v=[-0.1,3,2])
lug();
translate(v=[-0.1,26,2])
lug();
}
// On yBar
module onYBarToXBarNegative() {
y = 27;
z = 6;
z = 8;
translate(v = [-5, y, z])
rotate(a = [180, 0, 0])
rotate(a = [0, 90, 0])
hexNutPocket_N("m3", openSide=false, backSpace=5);
// lugs for snap fit and hold in place
translate(v=[-0.1,3,2])
lug();
translate(v=[-0.1,26,2])
lug();
}
module onYBarToXBarPositive() {
@ -65,8 +87,26 @@ module onYBarToXBarPositive() {
backFaceLength = 5,
backFaceScale = 1.2
);
// lugs for snap fit and hold in place
translate(v=[-0.1,3,13.5])
lug();
translate(v=[-0.1,26,13.5])
lug();
}
xBarConnectorToYBarConnectorTrans = mirror(v=[1,0,0]);
yBarConnectorToXBarConnectorTrans = mirror(v=[-1,0,0]);
yBarConnectorToXBarConnectorTrans = mirror(v=[-1,0,0]);
module lug() {
hull() {
sphere(r=0.5);
translate(v=[0,2,0])
sphere(r=0.5);
}
}

35
rack/print/eval_P.scad Normal file
View File

@ -0,0 +1,35 @@
include <../xBar.scad>
include <../yBar.scad>
include <../mainRail.scad>
// Evaluation print for slack config
intersection() {
yBar();
halfspace(vpos=[0,-1,0], p=[0,joinCornerDepth,0]);
}
translate(v=[35,0,0])
intersection() {
translate(v=[0,-xBarX + xBarSideThickness + 5,0])
xBar();
halfspace(vpos=[0,1,0], p=[0,0,0]);
}
translate(v=[60,20,0])
rotate(a=[0,0,90])
intersection() {
multmatrix(mainRailPrintOrientation)
mainRail();
halfspace(vpos=[-1,0,0], p=[19,0,0]);
mainRailPrintOrientation = [
[cos(-90), 0, sin(-90), railTotalHeight],
[0, 1, 0, 0],
[-sin(-90), 0, cos(-90), 0],
[0, 0, 0, 1]
];
}

View File

@ -59,7 +59,7 @@ xBarX = maxUnitWidth - 2*railSlotToInnerYEdge;
xBarY = 32;
xBarHeight = 15;
xBarWallThickness = 2;
xBarWallThickness = 3;
xBarSideThickness = 8;
xBarRoundness = baseRoundness;

View File

@ -21,7 +21,7 @@ module xBar() {
cylindricalFiletEdge(xBarY, xBarX, xBarHeight, xBarRoundness);
translate(v = [xBarWallThickness, xBarSideThickness, xBarWallThickness])
cylindricalFiletEdge(xBarY, xBarX-2*xBarSideThickness, xBarHeight, xBarRoundness);
cylindricalFiletEdge(xBarY, xBarX-2*xBarSideThickness, xBarHeight, xBarRoundness-xBarWallThickness);
}
// Shave off bottom corners to reduce elephant's foot at where xBar and YBar join

View File

@ -27,7 +27,7 @@ module yBar() {
sphericalFiletEdge(yBarWidth, yBarDepth, yBarHeight, yBarRoundness);
translate(v = [yBarWallThickness, joinCornerDepth, yBarWallThickness])
cylindricalFiletEdge(yBarWidth, yBarDepth-2*joinCornerDepth, yBarHeight, yBarRoundness);
cylindricalFiletEdge(yBarWidth, yBarDepth-2*joinCornerDepth, yBarHeight, yBarRoundness-yBarWallThickness);
}
halfspace(vpos=[-1, 0, 1], p=[yBarWidth-1, 0,0]);