update
This commit is contained in:
@ -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>
|
||||
|
||||
@ -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() {
|
||||
|
||||
@ -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") {
|
||||
|
||||
@ -3,7 +3,7 @@ include <../config/common.scad>
|
||||
include <./sharedVariables.scad>
|
||||
include <./connector/connectors.scad>
|
||||
|
||||
*mainRail();
|
||||
mainRail();
|
||||
|
||||
module mainRail() {
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
include <../sharedVariables.scad>
|
||||
use <../stackEnds.scad>
|
||||
|
||||
|
||||
// Oriented for 3d printing. No supports required.
|
||||
rotate(a=[90-feetProtrusionAngle,0,0])
|
||||
rackFeet();
|
||||
@ -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();
|
||||
@ -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();
|
||||
@ -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();
|
||||
@ -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;
|
||||
@ -3,8 +3,7 @@ include <../../config/common.scad>
|
||||
include <../sharedVariables.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
|
||||
translate(v=[10,20,-2 - sideWallZHingeTotalClearance])
|
||||
*hingeModule();
|
||||
hingeModule();
|
||||
|
||||
module hingeModule() {
|
||||
|
||||
|
||||
@ -3,8 +3,8 @@ include <../../config/common.scad>
|
||||
include <../sharedVariables.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
|
||||
translate(v=[10,-5,-(2+sideWallZHingeTotalClearance)])
|
||||
*magnetModule();
|
||||
|
||||
magnetModule();
|
||||
|
||||
module magnetModule() {
|
||||
|
||||
|
||||
@ -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])
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
include <./sideWallBase.scad>
|
||||
|
||||
*sideWallLeft();
|
||||
sideWallLeft();
|
||||
|
||||
module sideWallLeft() {
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
include <./sideWallBase.scad>
|
||||
|
||||
*sideWallRight();
|
||||
sideWallRight();
|
||||
|
||||
module sideWallRight() {
|
||||
|
||||
|
||||
@ -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]);
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ include <../config/common.scad>
|
||||
include <./sharedVariables.scad>
|
||||
include <./connector/connectors.scad>
|
||||
|
||||
*xBar();
|
||||
xBar();
|
||||
|
||||
module xBar() {
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ include <../config/common.scad>
|
||||
include <./connector/connectors.scad>
|
||||
include <./sharedVariables.scad>
|
||||
|
||||
*yBar();
|
||||
yBar();
|
||||
|
||||
module yBar() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user