split sideWallConnector into parts
This commit is contained in:
44
rack/side/hingeModule.scad
Normal file
44
rack/side/hingeModule.scad
Normal file
@ -0,0 +1,44 @@
|
||||
include <../config.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
include <../sharedVariables.scad>
|
||||
include <../../helper/halfspace.scad>
|
||||
|
||||
|
||||
module hingeModule() {
|
||||
|
||||
applyHingePole()
|
||||
applyYBarScrewMount()
|
||||
base();
|
||||
|
||||
module base() {
|
||||
intersection() {
|
||||
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
|
||||
|
||||
// TODO: pattern for this? beef up mirror4XY?
|
||||
cVal = 0.5;
|
||||
halfspace(p=[0,cVal,0], vpos=[0,1,1]);
|
||||
halfspace(p=[cVal,0,0], vpos=[1,0,1]);
|
||||
halfspace(p=[sideWallConnW-cVal,0,0], vpos=[-1,0,1]);
|
||||
halfspace(p=[0,sideWallConnD-cVal,0], vpos=[0,-1,1]);
|
||||
}
|
||||
}
|
||||
|
||||
module applyHingePole() {
|
||||
apply_p() {
|
||||
translate(v = [sideWallConnW-hingePoleR, hingePoleR, sideWallConnH])
|
||||
cylinder(r = hingePoleR, h = hingePoleH);
|
||||
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module applyYBarScrewMount() {
|
||||
apply_n() {
|
||||
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, sideWallConnLugDepression])
|
||||
counterSunkHead_N(rackFrameScrewType, headExtension = eps, screwExtension = inf10);
|
||||
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
69
rack/side/magnetModule.scad
Normal file
69
rack/side/magnetModule.scad
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
include <../config.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
include <../sharedVariables.scad>
|
||||
include <../../helper/halfspace.scad>
|
||||
include <../../misc/magnet.scad>
|
||||
|
||||
module magnetModule() {
|
||||
|
||||
applyYBarScrewMount()
|
||||
applyMagnetMount()
|
||||
base();
|
||||
|
||||
module base() {
|
||||
intersection() {
|
||||
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
|
||||
|
||||
// TODO: pattern for this? beef up mirror4XY?
|
||||
cVal = 0.5;
|
||||
halfspace(p=[0,cVal,0], vpos=[0,1,1]);
|
||||
halfspace(p=[cVal,0,0], vpos=[1,0,1]);
|
||||
halfspace(p=[sideWallConnW-cVal,0,0], vpos=[-1,0,1]);
|
||||
halfspace(p=[0,sideWallConnD-cVal,0], vpos=[0,-1,1]);
|
||||
}
|
||||
}
|
||||
|
||||
module applyYBarScrewMount() {
|
||||
apply_n() {
|
||||
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, sideWallConnLugDepression])
|
||||
counterSunkHead_N(rackFrameScrewType, headExtension = eps, screwExtension = inf10);
|
||||
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
|
||||
module applyMagnetMount() {
|
||||
|
||||
magnetMountDx = magnetMountShellRadius;
|
||||
magnetMountDy = magnetMountToYBarFront - sideWallSlotToXZ;
|
||||
magnetMountDz = magnetMountToYBarTop + sideWallConnLugDepression;
|
||||
|
||||
apply_pn() {
|
||||
magnetMountShell();
|
||||
magnetMountHole();
|
||||
children(0);
|
||||
}
|
||||
|
||||
module magnetMountShell() {
|
||||
hull() {
|
||||
translate(v = [0, magnetMountDy, magnetMountDz])
|
||||
rotate(a = [0, 90, 0])
|
||||
cylinder(r = magnetMountShellRadius, h = sideWallConnW-magnetFaceToSideWallConnOuterYEdge);
|
||||
|
||||
translate(v = [0, 2, sideWallConnH])
|
||||
cube(size = [sideWallConnW-magnetFaceToSideWallConnOuterYEdge, 2*magnetMountShellRadius, eps]);
|
||||
}
|
||||
}
|
||||
|
||||
module magnetMountHole() {
|
||||
translate(v = [sideWallConnW-(magnetFaceToSideWallConnOuterYEdge+magnetHSlacked),
|
||||
magnetMountDy,
|
||||
magnetMountDz])
|
||||
rotate(a = [0, 90, 0])
|
||||
cylinder(r = magnetRSlacked, h = magnetHSlacked);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
16
rack/side/sideWallMagnetMount.scad
Normal file
16
rack/side/sideWallMagnetMount.scad
Normal file
@ -0,0 +1,16 @@
|
||||
|
||||
include <../config.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
include <../sharedVariables.scad>
|
||||
include <../../helper/halfspace.scad>
|
||||
include <../../misc/magnet.scad>
|
||||
|
||||
module sideWallMagnetMount() {
|
||||
// oriented so that the xy face is the side wall's inner face
|
||||
difference() {
|
||||
cylinder(r1 = magnetMountShellRadius+0.5, r2 = magnetMountShellRadius, h = innerSideWallToYBarMagnetConn);
|
||||
|
||||
translate(v=[0, 0, innerSideWallToYBarMagnetConn-magnetHSlacked])
|
||||
cylinder(r = magnetRSlacked, h = magnetHSlacked);
|
||||
}
|
||||
}
|
||||
27
rack/side/sideWallVariables.scad
Normal file
27
rack/side/sideWallVariables.scad
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
include <../config.scad>
|
||||
include <../sharedVariables.scad>
|
||||
|
||||
|
||||
sideWallConnW = 7;
|
||||
sideWallConnD = 20;
|
||||
sideWallConnH = 2;
|
||||
sideWallConnLugDepression = sideWallConnH;
|
||||
|
||||
yBarScrewHoleToOuterYEdge = 3.5;
|
||||
yBarScrewHoleToFrontXEdge = 16;
|
||||
|
||||
magnetFaceToSideWallConnOuterYEdge = 2;
|
||||
magnetMountShellRadius = magnetRSlacked + 1;
|
||||
|
||||
innerSideWallToYBarMagnetConn = magnetFaceToSideWallConnOuterYEdge + sideWallSlotToOuterYEdge - sideWallThickness;
|
||||
|
||||
magnetMountToYBarTop = magnetMountShellRadius + 1;
|
||||
magnetMountToYBarFront = magnetMountShellRadius + sideWallSlotToXZ + 2;
|
||||
|
||||
hingePoleR = 2;
|
||||
hingePoleH = 5;
|
||||
hingeHoleR = hingePoleR + 0.2;
|
||||
|
||||
hingePoleToConnectorOuterYZFace = hingePoleR/2;
|
||||
hingePoleToConnectorOuterXZFace = hingePoleR/2;
|
||||
13
rack/side/yBarSideWallConnector.scad
Normal file
13
rack/side/yBarSideWallConnector.scad
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
include <../config.scad>
|
||||
include <./sideWallVariables.scad>
|
||||
include <../sharedVariables.scad>
|
||||
|
||||
|
||||
module yBarSideWallConnector_N() {
|
||||
translate(v = [0, 0, -sideWallConnLugDepression])
|
||||
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
|
||||
|
||||
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, -(m3HeatSetInsertSlotHeightSlacked+sideWallConnLugDepression)])
|
||||
heatSetInsertSlot_N(rackFrameScrewType);
|
||||
}
|
||||
@ -3,10 +3,11 @@ include <../helper/halfspace.scad>
|
||||
include <../misc/magnet.scad>
|
||||
include <./config.scad>
|
||||
include <./mainRail.scad>
|
||||
|
||||
include <./side/sideWallMagnetMount.scad>
|
||||
include <./sharedVariables.scad>
|
||||
|
||||
include <./sideWallConnector.scad>
|
||||
include <./side/magnetModule.scad>
|
||||
include <./side/hingeModule.scad>
|
||||
|
||||
|
||||
sideWallZGapClearance = 0.2;
|
||||
@ -97,19 +98,19 @@ module sideWall() {
|
||||
apply_p() {
|
||||
union() {
|
||||
translate(v = [sideWallThickness, magnetMountToYBarFront, magnetMountToYBarTop])
|
||||
sideMagnetMount();
|
||||
sideWallMagnetMountRotated();
|
||||
|
||||
translate(v = [sideWallThickness, magnetMountToYBarFront, sideWallZ - magnetMountToYBarTop])
|
||||
sideMagnetMount();
|
||||
sideWallMagnetMountRotated();
|
||||
}
|
||||
|
||||
children(0);
|
||||
}
|
||||
|
||||
|
||||
module sideMagnetMount() {
|
||||
module sideWallMagnetMountRotated() {
|
||||
rotate(a=[0,90,0])
|
||||
sideWallConnectorMagnetSide();
|
||||
sideWallMagnetMount();
|
||||
}
|
||||
}
|
||||
|
||||
@ -127,8 +128,8 @@ sideWall();
|
||||
|
||||
translate(v=[10,sideWallSlotToXZ,-2])
|
||||
mirror(v=[1,0,0])
|
||||
sideWallConnectorMagnet();
|
||||
magnetModule();
|
||||
|
||||
translate(v=[3,100,0])
|
||||
mirror(v=[0,1,0])
|
||||
sideWallConnectorHinge();
|
||||
hingeModule();
|
||||
|
||||
@ -1,156 +0,0 @@
|
||||
include <./config.scad>
|
||||
include <../helper/screws.scad>
|
||||
include <../helper/halfspace.scad>
|
||||
include <../misc/magnet.scad>
|
||||
include <./sharedVariables.scad>
|
||||
|
||||
|
||||
sideWallConnW = 7;
|
||||
sideWallConnD = 20;
|
||||
sideWallConnH = 2;
|
||||
sideWallConnLugDepression = sideWallConnH;
|
||||
|
||||
yBarScrewHoleToOuterYEdge = 3.5;
|
||||
yBarScrewHoleToFrontXEdge = 16;
|
||||
|
||||
magnetFaceToSideWallConnOuterYEdge = 2;
|
||||
magnetMountShellRadius = magnetRSlacked + 1;
|
||||
|
||||
innerSideWallToYBarMagnetConn = magnetFaceToSideWallConnOuterYEdge + sideWallSlotToOuterYEdge - sideWallThickness;
|
||||
|
||||
magnetMountToYBarTop = magnetMountShellRadius + 1;
|
||||
magnetMountToYBarFront = magnetMountShellRadius + sideWallSlotToXZ + 2;
|
||||
|
||||
hingePoleR = 2;
|
||||
hingePoleH = 5;
|
||||
hingeHoleR = hingePoleR + 0.2;
|
||||
|
||||
hingePoleToConnectorOuterYZFace = hingePoleR/2;
|
||||
hingePoleToConnectorOuterXZFace = hingePoleR/2;
|
||||
|
||||
*sideWallConnector_N();
|
||||
*sideWallConnectorMagnet();
|
||||
*sideWallConnectorMagnetSide();
|
||||
*sideWallConnectorHinge();
|
||||
|
||||
module sideWallConnector_N() {
|
||||
translate(v = [0, 0, -sideWallConnLugDepression])
|
||||
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
|
||||
|
||||
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, -(m3HeatSetInsertSlotHeightSlacked+sideWallConnLugDepression)])
|
||||
heatSetInsertSlot_N(rackFrameScrewType);
|
||||
}
|
||||
|
||||
module sideWallConnectorMagnet() {
|
||||
|
||||
applyYBarScrewMount()
|
||||
applyMagnetMount()
|
||||
base();
|
||||
|
||||
module base() {
|
||||
intersection() {
|
||||
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
|
||||
|
||||
// TODO: pattern for this? beef up mirror4XY?
|
||||
cVal = 0.5;
|
||||
halfspace(p=[0,cVal,0], vpos=[0,1,1]);
|
||||
halfspace(p=[cVal,0,0], vpos=[1,0,1]);
|
||||
halfspace(p=[sideWallConnW-cVal,0,0], vpos=[-1,0,1]);
|
||||
halfspace(p=[0,sideWallConnD-cVal,0], vpos=[0,-1,1]);
|
||||
}
|
||||
}
|
||||
|
||||
module applyYBarScrewMount() {
|
||||
apply_n() {
|
||||
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, sideWallConnLugDepression])
|
||||
counterSunkHead_N(rackFrameScrewType, headExtension = eps, screwExtension = inf10);
|
||||
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
|
||||
module applyMagnetMount() {
|
||||
|
||||
magnetMountDx = magnetMountShellRadius;
|
||||
magnetMountDy = magnetMountToYBarFront - sideWallSlotToXZ;
|
||||
magnetMountDz = magnetMountToYBarTop + sideWallConnLugDepression;
|
||||
|
||||
apply_pn() {
|
||||
magnetMountShell();
|
||||
magnetMountHole();
|
||||
children(0);
|
||||
}
|
||||
|
||||
module magnetMountShell() {
|
||||
hull() {
|
||||
translate(v = [0, magnetMountDy, magnetMountDz])
|
||||
rotate(a = [0, 90, 0])
|
||||
cylinder(r = magnetMountShellRadius, h = sideWallConnW-magnetFaceToSideWallConnOuterYEdge);
|
||||
|
||||
translate(v = [0, 2, sideWallConnH])
|
||||
cube(size = [sideWallConnW-magnetFaceToSideWallConnOuterYEdge, 2*magnetMountShellRadius, eps]);
|
||||
}
|
||||
}
|
||||
|
||||
module magnetMountHole() {
|
||||
translate(v = [sideWallConnW-(magnetFaceToSideWallConnOuterYEdge+magnetHSlacked),
|
||||
magnetMountDy,
|
||||
magnetMountDz])
|
||||
rotate(a = [0, 90, 0])
|
||||
cylinder(r = magnetRSlacked, h = magnetHSlacked);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module sideWallConnectorHinge() {
|
||||
|
||||
applyHingePole()
|
||||
applyYBarScrewMount()
|
||||
base();
|
||||
|
||||
module base() {
|
||||
intersection() {
|
||||
cube(size = [sideWallConnW, sideWallConnD, sideWallConnLugDepression]);
|
||||
|
||||
// TODO: pattern for this? beef up mirror4XY?
|
||||
cVal = 0.5;
|
||||
halfspace(p=[0,cVal,0], vpos=[0,1,1]);
|
||||
halfspace(p=[cVal,0,0], vpos=[1,0,1]);
|
||||
halfspace(p=[sideWallConnW-cVal,0,0], vpos=[-1,0,1]);
|
||||
halfspace(p=[0,sideWallConnD-cVal,0], vpos=[0,-1,1]);
|
||||
}
|
||||
}
|
||||
|
||||
module applyHingePole() {
|
||||
apply_p() {
|
||||
translate(v = [sideWallConnW-hingePoleR, hingePoleR, sideWallConnH])
|
||||
cylinder(r = hingePoleR, h = hingePoleH);
|
||||
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module applyYBarScrewMount() {
|
||||
apply_n() {
|
||||
translate(v = [yBarScrewHoleToOuterYEdge, yBarScrewHoleToFrontXEdge, sideWallConnLugDepression])
|
||||
counterSunkHead_N(rackFrameScrewType, headExtension = eps, screwExtension = inf10);
|
||||
|
||||
children(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO: better naming
|
||||
module sideWallConnectorMagnetSide() {
|
||||
// oriented so that the xy face is the side wall's inner face
|
||||
difference() {
|
||||
cylinder(r1 = magnetMountShellRadius+0.5, r2 = magnetMountShellRadius, h = innerSideWallToYBarMagnetConn);
|
||||
|
||||
translate(v=[0, 0, innerSideWallToYBarMagnetConn-magnetHSlacked])
|
||||
cylinder(r = magnetRSlacked, h = magnetHSlacked);
|
||||
}
|
||||
}
|
||||
@ -9,9 +9,8 @@ include <./mainRail.scad>
|
||||
// Connectors
|
||||
include <./stackConnector.scad>
|
||||
include <./xyBarConnector.scad>
|
||||
include <./sideWallConnector.scad>
|
||||
include <./yBarBasePlateConnector.scad>
|
||||
|
||||
include <./side/yBarSideWallConnector.scad>
|
||||
include <./sharedVariables.scad>
|
||||
|
||||
|
||||
@ -73,7 +72,7 @@ module yBar() {
|
||||
apply_n() {
|
||||
mirrorOtherCorner()
|
||||
translate(v = [yBarWidth-(railTotalWidth+railSlotToInnerYEdge+railSlotToSideWallSlot+sideWallConnectorSlotWidth), sideWallSlotToXZ, yBarHeight])
|
||||
sideWallConnector_N();
|
||||
yBarSideWallConnector_N();
|
||||
|
||||
children(0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user