From ac9cd7c96ec8aa9e105829914025c4f40a88d587 Mon Sep 17 00:00:00 2001 From: zhao Date: Fri, 12 May 2023 17:00:47 -0400 Subject: [PATCH] add missing instructions --- helper/common.scad | 2 +- helper/screws.scad | 5 ++ rack/assemblyGuide.scad | 99 ++++++++++++++++++++-- rack/connector/mainRailYBarConnectors.scad | 6 +- rack/side/hingeModule.scad | 2 +- rack/side/magnetModule.scad | 14 ++- rack/side/sideWallBase.scad | 4 +- rack/xyPlate.scad | 4 - 8 files changed, 111 insertions(+), 25 deletions(-) diff --git a/helper/common.scad b/helper/common.scad index 97d399a..81298f8 100644 --- a/helper/common.scad +++ b/helper/common.scad @@ -4,7 +4,7 @@ $fn=64; // TODO move these to math -eps=0.00001; +eps=0.0001; inf10 = 10; inf50 = 50; diff --git a/helper/screws.scad b/helper/screws.scad index 8a5d12a..1123dda 100644 --- a/helper/screws.scad +++ b/helper/screws.scad @@ -58,6 +58,11 @@ function heatSetInsertSlotRadiusSlacked(screwType) = ? m3HeatSetInsertSlotRadiusSlacked : error("Unsupported screw type"); +function heatSetInsertSlotHeightSlacked(screwType) = + (screwType == "m3") + ? m3HeatSetInsertSlotHeightSlacked + : error("Unsupported screw type"); + function screwRadiusSlacked(screwType) = (screwType == "m3") ? m3RadiusSlacked diff --git a/rack/assemblyGuide.scad b/rack/assemblyGuide.scad index 80683c6..ff9b90a 100644 --- a/rack/assemblyGuide.scad +++ b/rack/assemblyGuide.scad @@ -17,6 +17,10 @@ module assemblyInstructions () { // Instruction List (in order) // TODO: add steps to glue magnets and add heatset inserts + //render() + // addHeatSetInsertsYBar(at=$t); + // addMagnetsToMagnetModules(at=$t); + // addMagnetsToSideWall(at=$t); // attachXBarWithYBar(at=$t); // screwXBarAndYBar(at=$t); // attachSideConnectorModulesToYBars(at=$t); @@ -32,16 +36,86 @@ module assemblyInstructions () { // end instructions final(); + + module addHeatSetInsertsYBar(at=0) { + t = lerp(a=10,b=0,t=at); + + yBar(); + + heatSetHeight = heatSetInsertSlotHeightSlacked(rackFrameScrewType) * 0.95; + + function sideModuleHeatSetTrans(t=0) = + translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,t-(heatSetHeight+sideWallConnLugDepression)]) * + yBarSideModuleConnectorTrans; + + function mainRailHeatSetTrans(t=0) = + translate(v=[mainRailHeatSetOnYBarDx,mainRailHeatSetOnYBarDy,t-heatSetHeight]) * + yBarMainRailConnectorTrans; + + function xBarHeatSetTrans(t=0) = + translate(v=[t-heatSetHeight,27,6]) * + yBarXBarConnectorTrans * + rotate(a=[0,90,0]); + + module heatSetInsertsOneCorner(t=0) { + multmatrix(sideModuleHeatSetTrans(t = t)) + heatSetInsert(); + + multmatrix(mainRailHeatSetTrans(t = t)) + heatSetInsert(); + + multmatrix(xBarHeatSetTrans(t = t)) + heatSetInsert(); + } + + heatSetInsertsOneCorner(t=t); + + multmatrix(yBarMirrorOtherCornerTrans) + heatSetInsertsOneCorner(t=t); + + } + + module addMagnetsToMagnetModules(at=0) { + t = lerp(a=8,b=0,t=at); + + magnetModule(); + + function insertMagnetTrans(t=0) = + translate(v=[sideWallConnW-(magnetFaceToSideWallConnOuterYEdge+magnetHSlacked) + t, + magnetModuleMagnetMountDy, + magnetModuleMagnetMountDz]) * + rotate(a=[0,90,0]); + + multmatrix(insertMagnetTrans(t=t)) + magnet(); + } + + module addMagnetsToSideWall(at=0) { + t = lerp(a=8,b=0,t=at); + + sideWallLeft(); + + function insertMagnetTrans(t=0) = + translate(v=[sideWallThickness+t, magnetMountToYBarFront, magnetMountToYBarTop-sideWallZHingeTotalClearance]) * + rotate(a=[0,90,0]); + + multmatrix(insertMagnetTrans(t=t)) + magnet(); + + multmatrix(translate(v=[0,0,sideWallZ - 2*(magnetMountToYBarTop- sideWallZHingeTotalClearance)]) * insertMagnetTrans(t=t)) + magnet(); + } + module attachXBarWithYBar(at=0) { t = lerp(a=20, b=0, t=at); // assemble x-y bar trays multmatrix(translate(v = [0, 0, t])) - yBar(); + addHeatSetInsertsYBar(at=1); multmatrix(translate(v = [0, 0, t])*xBarSpaceToYBarSpace*xBarMirrorOtherCornerTrans*yBarSpaceToXBarSpace) - yBar(); + addHeatSetInsertsYBar(at=1); multmatrix(xBarSpaceToYBarSpace) xBar(); @@ -58,10 +132,10 @@ module assemblyInstructions () { translate(v=[27,xBarSideThickness + extension,6]) * rotate(a=[270,0,0]); // screw to connect x and y bars - yBar(); + addHeatSetInsertsYBar(at=1); multmatrix(xBarSpaceToYBarSpace*xBarMirrorOtherCornerTrans*yBarSpaceToXBarSpace) - yBar(); + addHeatSetInsertsYBar(at=1); multmatrix(xBarSpaceToYBarSpace) union() { @@ -99,7 +173,7 @@ module assemblyInstructions () { multmatrix(sideModuleTrans(elevation)) union() { - magnetModule(); + addMagnetsToMagnetModules(at=1); translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation]) caseScrewA(); @@ -107,7 +181,7 @@ module assemblyInstructions () { multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideModuleTrans(elevation)) union() { - magnetModule(); + addMagnetsToMagnetModules(at=1); translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation]) caseScrewA(); @@ -164,7 +238,7 @@ module assemblyInstructions () { hingeHoleH = hingePoleH-sideWallConnLugDepression; - sideWallLeft(); + addMagnetsToSideWall(at=1); translate(v=[hingePoleDx,hingePoleDy, (sideWallZ-hingeHoleH) + t]) hingeDowel(); @@ -374,6 +448,17 @@ module assemblyInstructions () { cylinder(h=dowelPinH, r=dowelPinR); } + module heatSetInsert() { + color([1,0,1]) + scale(v=[0.95,0.95,0.95]) + heatSetInsertSlot_N(screwType=rackFrameScrewType, topExtension=0); + } + + module magnet() { + color([1,0,1]) + cylinder(r=magnetR, h=magnetH); + } + module arrow(length) { color([1,0,1]) { translate(v = [0, 0, length-2]) diff --git a/rack/connector/mainRailYBarConnectors.scad b/rack/connector/mainRailYBarConnectors.scad index c543327..1209834 100644 --- a/rack/connector/mainRailYBarConnectors.scad +++ b/rack/connector/mainRailYBarConnectors.scad @@ -9,6 +9,8 @@ include <../sharedVariables.scad> include <../config.scad> +mainRailHeatSetOnYBarDx = railSideMountThickness + 5; +mainRailHeatSetOnYBarDy = railFrontThickness + 4; module onYBarToMainRailNegative() { slotSlack = xySlack; @@ -18,7 +20,7 @@ module onYBarToMainRailNegative() { translate(v=[-slotZSlack/2, -slotSlack/2,0]) cube(size = [railTotalWidth+slotZSlack, railTotalDepth + slotSlack, railFootThickness]); - translate(v = [railSideMountThickness + 5, railFrontThickness + 4 , -m3HeatSetInsertSlotHeightSlacked]) + translate(v = [mainRailHeatSetOnYBarDx, mainRailHeatSetOnYBarDy, -m3HeatSetInsertSlotHeightSlacked]) heatSetInsertSlot_N(rackFrameScrewType); } } @@ -32,6 +34,6 @@ module onMainRailYBarConnectorPositive() { module onMainRailYBarConnectorNegative() { - translate(v = [5+railSideMountThickness, 4+railFrontThickness, railFootThickness]) + translate(v = [mainRailHeatSetOnYBarDx, mainRailHeatSetOnYBarDy, railFootThickness]) counterSunkHead_N(rackFrameScrewType, screwExtension=inf10, headExtension=inf10); } \ No newline at end of file diff --git a/rack/side/hingeModule.scad b/rack/side/hingeModule.scad index e167fce..ca99927 100644 --- a/rack/side/hingeModule.scad +++ b/rack/side/hingeModule.scad @@ -50,7 +50,7 @@ module hingeModule() { translate(v = [sideWallConnW/2.0, hingePoleR + radiusXYSlack, 0]) cylinder(r = hingePoleR + radiusXYSlack, h = inf50); - translate(v = [sideWallConnW/2.0, , 0]) + translate(v = [sideWallConnW/2.0, 0 , 0]) cube(size=[2, 5, inf50], center=true); } diff --git a/rack/side/magnetModule.scad b/rack/side/magnetModule.scad index 4c9513b..ef88f82 100644 --- a/rack/side/magnetModule.scad +++ b/rack/side/magnetModule.scad @@ -9,6 +9,9 @@ include <../../helper/screws.scad> translate(v=[10,-5,-(2+sideWallZHingeTotalClearance)]) *magnetModule(); +magnetModuleMagnetMountDy = magnetMountToYBarFront - sideWallSlotToXZ; +magnetModuleMagnetMountDz = magnetMountToYBarTop + sideWallConnLugDepression; + module magnetModule() { applyYBarScrewMount() @@ -42,11 +45,6 @@ module magnetModule() { } module applyMagnetMount() { - - magnetMountDx = magnetMountShellRadius; - magnetMountDy = magnetMountToYBarFront - sideWallSlotToXZ; - magnetMountDz = magnetMountToYBarTop + sideWallConnLugDepression; - apply_pn() { magnetMountShell(); magnetMountHole(); @@ -55,7 +53,7 @@ module magnetModule() { module magnetMountShell() { hull() { - translate(v = [0, magnetMountDy, magnetMountDz]) + translate(v = [0, magnetModuleMagnetMountDy, magnetModuleMagnetMountDz]) rotate(a = [0, 90, 0]) cylinder(r = magnetMountShellRadius, h = sideWallConnW-magnetFaceToSideWallConnOuterYEdge); @@ -66,8 +64,8 @@ module magnetModule() { module magnetMountHole() { translate(v = [sideWallConnW-(magnetFaceToSideWallConnOuterYEdge+magnetHSlacked), - magnetMountDy, - magnetMountDz]) + magnetModuleMagnetMountDy, + magnetModuleMagnetMountDz]) rotate(a = [0, 90, 0]) cylinder(r = magnetRSlacked, h = magnetHSlacked); } diff --git a/rack/side/sideWallBase.scad b/rack/side/sideWallBase.scad index b6b0bb6..d9b8c92 100644 --- a/rack/side/sideWallBase.scad +++ b/rack/side/sideWallBase.scad @@ -11,8 +11,8 @@ include <../sharedVariables.scad> include <./magnetModule.scad> include <./hingeModule.scad> -echo("Side Wall Height", sideWallZ); -echo("Side Wall Depth", sideWallY); +//echo("Side Wall Height", sideWallZ); +//echo("Side Wall Depth", sideWallY); //translate(v = [hingePoleDx ,hingePoleDy, 10]) //rotate(a=[0,0,-120]) diff --git a/rack/xyPlate.scad b/rack/xyPlate.scad index 2e125d5..a1393fa 100644 --- a/rack/xyPlate.scad +++ b/rack/xyPlate.scad @@ -32,10 +32,6 @@ module xyPlate() { module applyYBarConnectors() { - // TODO ren - echo("connPosX", connPosX); - echo("connPosY", connPosY); - apply_p() { union() { translate(v=[connPosX, connPosY, 0])