revert yBar changes, also WIP on side connectors and side wall

This commit is contained in:
zhao
2023-01-21 23:03:49 -05:00
parent 75dbf032ef
commit 8e39e45514
8 changed files with 128 additions and 29 deletions

View File

@ -4,8 +4,17 @@ include <./math.scad>
include <./common.scad>
module halfspace(vpos, p) {
// TODO: clean up
ref = [0,0,-1];
if (cross(ref, vpos) == [0,0,0]) {
translate(p)
align(a=[0,0,-1], b=vpos)
translate(v=[0,0, (ref*vpos) * -inf/2])
cube(size=[inf, inf, inf], center=true);
} else {
translate(p)
align(a=ref, b = vpos)
translate(v = [0, 0, -inf/2])
cube(size = [inf, inf, inf], center = true);
}
}

View File

@ -18,11 +18,11 @@ module align(a,b) {
echo("b", b);
rot_axis = cross(a,b);
if (rot_axis == 0) {
if (rot_axis == [0,0,0]) {
error("Can't align - provided vectors are parallel");
}
echo("rot_axis", rot_axis);
//echo("rot_axis", rot_axis);
angle = acos(a*b/(norm(a)*norm(b)));
echo("angle", angle)

View File

@ -64,6 +64,8 @@ function screwRadiusSlacked(screwType) =
module counterSunkHead_N(screwType, screwExtension=0, headExtension=0) {
if (screwType == "m3") {
translate(v=[0,0,-m3CounterSunkHeadLength])
union() {
cylinder(r1 = m3RadiusSlacked, r2 = m3CounterSunkHeadRadius, h = m3CounterSunkHeadLength);
translate(v = [0, 0, -screwExtension])
@ -71,7 +73,7 @@ module counterSunkHead_N(screwType, screwExtension=0, headExtension=0) {
translate(v = [0, 0, m3CounterSunkHeadLength])
cylinder(r = m3CounterSunkHeadRadius, h = headExtension);
}
} else {
error("Unsupported screw type");
}

View File

@ -1,6 +0,0 @@
// Config file for derived variables. These variables are calculated from profile variables and are used by
// multiple components.
// TODO
include <./config.scad>

View File

@ -14,7 +14,7 @@ railSideMountThickness = 2.5;
// Distance between the middle of a screw mount and the rail's vertical edges
railScrewHoleToInnerEdge = 5;
railScrewHoleToOuterEdge = 9;
railScrewHoleToOuterEdge = 7;
// Distance between the midpoint of the rail screw holes.
rackMountScrewWidth = maxUnitWidth + 2 * railScrewHoleToInnerEdge;

56
rack/sideWall.scad Normal file
View File

@ -0,0 +1,56 @@
include <../helper/math.scad>
include <../helper/halfspace.scad>
include <../misc/magnet.scad>
include <./config.scad>
include <./yBar.scad>
include <./sideWallConnector.scad>
sideWallZ = 110;
sideWallY = 110;
sideWallX = 12;
sideWallThickness = 2.5;
module sideWall() {
sideWallBase();
module sideWallBase() {
module roundThingHelper(x,y,z,r) {
translate(v=[r, r, 0])
minkowski() {
cube(size = [x-r, y - 2*r, z]);
sphere(r = r);
}
}
intersection() {
difference() {
roundThingHelper(sideWallX,sideWallY,sideWallZ, baseRoundness);
translate(v=[sideWallThickness, sideWallThickness,0])
roundThingHelper(sideWallX,sideWallY - 2*sideWallThickness,sideWallZ, baseRoundness);
}
halfspace(vpos=[-1,0,0], p=[sideWallX,0,0]);
halfspace(vpos=[0,0,-1], p=[0,0,sideWallZ]);
halfspace(vpos=[0,0,1], p=[0,0,0]);
}
}
module applyHingeConnector() {
}
module applyMagnetConnector() {
}
module applyEpicVentilation() {
}
}
*sideWall();

View File

@ -2,19 +2,57 @@ include <./config.scad>
include <../helper/screws.scad>
sideWallConnectorSlotWidth = 7;
sideWallConnW = 7;
sideWallConnD = 20;
sideWallConnLugDepression = 2;
yBarScrewHoleToOuterYEdge = 3.5;
yBarScrewHoleToFrontXEdge = 16;
module sideWallConnector_N() {
translate(v = [0, 0, -sideWallConnLugDepression])
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
lugW = 7;
lugD = 20;
lugH = 2;
insertDw = lugW/2;
insertDd = lugD-4;
translate(v = [0, 0, -lugH])
cube(size = [lugW, lugD, lugH]);
translate(v = [insertDw, insertDd, -(m3HeatSetInsertSlotHeightSlacked+lugH)])
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, -(m3HeatSetInsertSlotHeightSlacked+sideWallConnLugDepression)])
heatSetInsertSlot_N(rackFrameScrewType);
}
module sideWallConnectorMagnet() {
difference() {
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, sideWallConnLugDepression])
counterSunkHead_N(rackFrameScrewType, headExtension=eps,screwExtension=inf10);
}
translate(v = [0, 5, 6])
rotate(a = [0, 90, 0])
difference() {
hull() {
cylinder(r = magnetRSlacked + 1, h = magnetHSlacked+1);
translate(v=[5,0,(magnetHSlacked+1)/2])
cube(size=[eps, 2*(magnetRSlacked+1),magnetHSlacked+1], center=true);
}
translate(v=[0,0,1])
cylinder(r = magnetRSlacked, h = magnetHSlacked);
}
//cylinder(r = magnetRSlacked, h = magnetHSlacked);
}
module sideWallConnectorHinge() {
}
module sideWallConnectorHinge_N() {
}
*sideWallConnector_N();
sideWallConnectorMagnet();
//counterSunkHead_N(rackFrameScrewType,screwExtension=10);

View File

@ -15,7 +15,7 @@ include <./yBarBasePlateConnector.scad>
railSlotToInnerYEdge = 2;
railSlotToXZ = 3;
railSlotToSideWallSlot = 0;
railSlotToSideWallSlot = 2;
sideWallSlotToOuterYEdge = 3;
sideWallSlotToXZ = 3;