This commit is contained in:
zhao
2023-08-19 01:16:45 -04:00
parent 8e91643506
commit fc2aa23c4d
55 changed files with 79 additions and 70 deletions

View File

@ -4,10 +4,8 @@
- Finish refactoring files to use the application style, like in `yBar.scad`
- Figure out why sidewall build is so slow
- Standardize meaning of `U`
- Standardize negative naming convention
- Clean up `sharedVariables.scad`!!!
- Implement instruction generation with rbuild.
- Parallel builds with cli tool.
### Ideas
- Start using matrices for transformations. Enforce strict local/global hierarchy of matrix transformations.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 84 KiB

BIN
bee-1.stl

Binary file not shown.

BIN
bee-2.stl

Binary file not shown.

5
helper/test.txt Normal file
View File

@ -0,0 +1,5 @@
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;

BIN
pi-1.stl

Binary file not shown.

BIN
pi-2.stl

Binary file not shown.

View File

@ -1,5 +1,8 @@
include <../../helper/common.scad>
include <../../config/common.scad>
include <../sharedVariables.scad>
include <../side/sideWallVariables.scad>
include <../connector/connectors.scad>
use <../mainRail.scad>
use <../yBar.scad>
use <../xBar.scad>

View File

@ -2,6 +2,8 @@ include <../../helper/common.scad>
include <../../config/common.scad>
include <../sharedVariables.scad>
connectorTopThickness = screwRadiusSlacked(rackFrameScrewType)+0.5;
module onYBarBasePlateConnectorPositive() {
translate(v=[0,0,yBarWallThickness])
intersection() {
@ -19,7 +21,7 @@ module onYBarBasePlateConnectorNegative() {
hull() {
// This has always been a pretty annoying to fit part. Increasing slack to 2*radiusXYSlack to compensate. TODO fix
translate(v = [basePlateYBarSlideNutDx, basePlateYBarSlideNutDy, plateBlockBaseConnRecession+overhangSlack])
roundCutSlice(radius = heatSetInsertSlotRadiusSlacked(rackFrameScrewType)+2*radiusXYSlack);
roundCutSlice(radius = connectorTopThickness+2*radiusXYSlack);
translate(v = [basePlateYBarSlideNutDx, basePlateYBarSlideNutDy, 0])
roundCutSlice(radius = plateBlockBaseConnY/2 + 2*radiusXYSlack);
@ -27,6 +29,40 @@ module onYBarBasePlateConnectorNegative() {
}
module onBasePlateToYBarConnectorPositive() {
union() {
translate(v=[basePlateConnPosX, basePlateConnPosY, 0])
yBarConnector();
translate(v=[basePlateConnPosX, basePlateConnPosY+xyPlateConnDy, 0])
yBarConnector();
translate(v=[basePlateConnPosX+xyPlateConnDx, basePlateConnPosY, 0])
rotate(a=[0,0,180])
yBarConnector();
translate(v=[basePlateConnPosX+xyPlateConnDx, basePlateConnPosY+xyPlateConnDy, 0])
rotate(a=[0,0,180])
yBarConnector();
}
module yBarConnector() {
difference() {
hull() {
translate(v=[0,0,plateBlockBaseConnRecession])
roundCutSlice(radius = connectorTopThickness, length=5);
roundCutSlice(radius = plateBlockBaseConnY/2, length=15);
}
mirror(v=[0,0,1])
counterSunkHead_N(rackFrameScrewType, headExtension = eps, screwExtension = inf10);
}
}
}
module roundCutSlice(radius, length=inf50) {
hull() {

View File

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

View File

@ -3,7 +3,7 @@ include <../config/common.scad>
include <./sharedVariables.scad>
include <./connector/connectors.scad>
*mainRail();
mainRail();
module mainRail() {

View File

@ -3,8 +3,8 @@ use <../xBar.scad>
use <../yBar.scad>
use <../mainRail.scad>
// Evaluation print for slack config, please see slack.scad
// to configure tolerances
// Evaluation print for slack config, please see rackstack/config/slack.scad to configure tolerances
// Too tight -> increase slacks values. Too loose -> decrease values
intersection() {
yBar();

View File

@ -1,4 +1,7 @@
include <../sharedVariables.scad>
use <../stackEnds.scad>
// Oriented for 3d printing. No supports required.
rotate(a=[90-feetProtrusionAngle,0,0])
rackFeet();

View File

@ -1,5 +1,4 @@
use <../stackEnds.scad>
// Oriented for 3d printing. No supports required, but it's reccommended to print this with a brim.
// Adding a brim will require some post-processing in the form of trimming the bottom.
// Oriented for 3d printing. No supports required, but it's recommended to print this with a brim.
rackJoiner();

View File

@ -2,4 +2,5 @@ use <../side/sideWallLeft.scad>
// Oriented for 3d printing.
// Supports generally not required (? need to print to test), but a brim is recommended
// Depending on the type of filament you use, you could also print this with the outer wall side facing down.
sideWallLeft();

View File

@ -2,4 +2,5 @@ use <../side/sideWallRight.scad>
// Oriented for 3d printing.
// Supports generally not required (? need to print to test), but a brim is recommended
// Depending on the type of filament you use, you could also print this with the outer wall side facing down.
sideWallRight();

View File

@ -85,6 +85,12 @@ 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
@ -109,3 +115,4 @@ stackConnectorDx = rackTotalWidth - 2*(connectorXEdgeToYBarXEdge + connectorRect
stackConnectorDy = rackTotalDepth - 2*(connectorYEdgeToYBarYEdge + connectorRectDepth/2);
stackConnectorDualSpacing = 0.5;
feetProtrusionAngle = 40;

View File

@ -3,8 +3,7 @@ include <../../config/common.scad>
include <../sharedVariables.scad>
include <./sideWallVariables.scad>
translate(v=[10,20,-2 - sideWallZHingeTotalClearance])
*hingeModule();
hingeModule();
module hingeModule() {

View File

@ -3,8 +3,8 @@ include <../../config/common.scad>
include <../sharedVariables.scad>
include <./sideWallVariables.scad>
translate(v=[10,-5,-(2+sideWallZHingeTotalClearance)])
*magnetModule();
magnetModule();
module magnetModule() {

View File

@ -3,8 +3,8 @@ include <../../config/common.scad>
include <../sharedVariables.scad>
include <./sideWallMagnetMount.scad>
include <./sideWallVariables.scad>
include <./magnetModule.scad>
include <./hingeModule.scad>
use <./magnetModule.scad>
use <./hingeModule.scad>
//translate(v = [hingePoleDx ,hingePoleDy, 10])
//rotate(a=[0,0,-120])

View File

@ -1,6 +1,6 @@
include <./sideWallBase.scad>
*sideWallLeft();
sideWallLeft();
module sideWallLeft() {

View File

@ -1,6 +1,6 @@
include <./sideWallBase.scad>
*sideWallRight();
sideWallRight();
module sideWallRight() {

View File

@ -18,7 +18,6 @@ module rackFeet() {
bandThickness = 2;
height = 18;
protrusionAngle = 30;
translate(v = [stackConnectorDx/2, 0, 2])
mirror(v=[0,0,1]) {
@ -34,7 +33,6 @@ module rackFeet() {
}
module band() {
intersection() {
translate(v=[0,0,2])
difference() {
@ -44,9 +42,10 @@ module rackFeet() {
roundedCube(rackTotalWidth-6, inf50, height-6, 3, center = true);
}
halfspace(vpos=[0,1,-0.8],p=[0,-8,2]);
halfspace(vpos=[0,-1,0.75],p=[0,6,2]);
halfspace(vpos=[0,1,-tan(feetProtrusionAngle)],p=[0,-8,2]);
halfspace(vpos=[0,-1, tan(feetProtrusionAngle)],p=[0,6,2]);
// TODO make these edge deburrings more parametric
halfspace(vpos=[0,-1,0],p=[0,16,2]);
halfspace(vpos=[0,1,0],p=[0,-5,2]);
}

View File

@ -3,7 +3,7 @@ include <../config/common.scad>
include <./sharedVariables.scad>
include <./connector/connectors.scad>
*xBar();
xBar();
module xBar() {

View File

@ -1,21 +1,15 @@
include <../helper/common.scad>
include <./connector/connectors.scad>
*xyPlate();
xyPlate();
module xyPlate() {
translate(v=-[connPosX,connPosY,0]) // center around one of the YBarConnector holes
translate(v=-[basePlateConnPosX,basePlateConnPosY,0]) // center around one of the YBarConnector holes
applyVentilation()
applyYBarConnectors()
applyConnector(on="basePlate", to="yBar")
plateBody();
connYBarCornerDx = yBarWidth; // distance from a plate body corner and the nearest yBar corner
connYBarCornerDy = xBarY; // distance from a plate body corner and the nearest yBar corner
connPosX = basePlateScrewMountToYBarYZFace - connYBarCornerDx; // distance between plateBody corner at (0,0,0) and the related corner
connPosY = basePlateScrewMountToYBarXZFace - connYBarCornerDy;
module plateBody() {
plateBodyX = xBarX - 2*plateGap;
plateBodyY = (yBarDepth - 2*xBarY) - 2*plateGap;
@ -57,42 +51,4 @@ module xyPlate() {
}
}
module applyYBarConnectors() {
apply_p() {
union() {
translate(v=[connPosX, connPosY, 0])
yBarConnector();
translate(v=[connPosX, connPosY+xyPlateConnDy, 0])
yBarConnector();
translate(v=[connPosX+xyPlateConnDx, connPosY, 0])
rotate(a=[0,0,180])
yBarConnector();
translate(v=[connPosX+xyPlateConnDx, connPosY+xyPlateConnDy, 0])
rotate(a=[0,0,180])
yBarConnector();
}
children(0);
}
module yBarConnector() {
difference() {
hull() {
// TODO: we don't need to heatset insert values anymore
translate(v=[0,0,plateBlockBaseConnRecession])
roundCutSlice(radius = heatSetInsertSlotRadiusSlacked(rackFrameScrewType), length=5);
roundCutSlice(radius = plateBlockBaseConnY/2, length=15);
}
mirror(v=[0,0,1])
counterSunkHead_N(rackFrameScrewType, headExtension = eps, screwExtension = inf10);
}
}
}
}

View File

@ -3,7 +3,7 @@ include <../config/common.scad>
include <./connector/connectors.scad>
include <./sharedVariables.scad>
*yBar();
yBar();
module yBar() {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.