From 9a43da5ecae89528361bf246ef6dca68671bb261 Mon Sep 17 00:00:00 2001 From: zhao Date: Mon, 8 May 2023 17:12:57 -0400 Subject: [PATCH] wip --- rack/assemblyGuide.scad | 89 ++++++++++++++++++++++++++++++------ rack/mainRail.scad | 8 ++-- rack/side/sideWallLeft.scad | 2 +- rack/side/sideWallRight.scad | 2 +- 4 files changed, 81 insertions(+), 20 deletions(-) diff --git a/rack/assemblyGuide.scad b/rack/assemblyGuide.scad index 14ceef1..e86f81d 100644 --- a/rack/assemblyGuide.scad +++ b/rack/assemblyGuide.scad @@ -5,6 +5,8 @@ include <./yBar.scad> include <./xBar.scad> include <./side/magnetModule.scad> include <./side/hingeModule.scad> +include <./side/sideWallRight.scad> +include <./side/sideWallLeft.scad> assemblyInstructions(); @@ -56,6 +58,11 @@ module assemblyInstructions () { } } + module hingeDowel() { + color([0,1,1]) + cylinder(h=dowelPinH, r=dowelPinR); + } + module arrow(length) { color([1,0,1]) { translate(v = [0, 0, length-2]) @@ -116,19 +123,16 @@ module assemblyInstructions () { } } - - module attachSideConnectorModulesToYBars(elevation=0) { // attach side connector modules to y bars - screwXBarAndYBar(screwExtension=0); - // side module to front corner ybar function sideModuleTrans(t=0) = - translate(v=[sideWallConnW,0,t-sideWallConnLugDepression]) - * yBarSideModuleConnectorTrans + translate(v=[sideWallConnW,0,t-sideWallConnLugDepression]) + * yBarSideModuleConnectorTrans * mirror(v=[1,0,0]); // mirror for magnetModule + screwXBarAndYBar(screwExtension=0); multmatrix(sideModuleTrans(elevation)) union() { @@ -163,9 +167,6 @@ module assemblyInstructions () { } } - - connectXYTrayWithMainRails(elevation=5); - module connectXYTrayWithMainRails(elevation=5) { attachSideConnectorModulesToYBars(); @@ -179,27 +180,85 @@ module assemblyInstructions () { caseScrewA(); } - multmatrix(mainRailTrans(elevation=10)) + multmatrix(mainRailTrans(elevation=elevation)) railAndScrew(elevation=elevation); - multmatrix(yBarMirrorOtherCornerTrans * mainRailTrans(elevation=10)) + multmatrix(yBarMirrorOtherCornerTrans * mainRailTrans(elevation=elevation)) railAndScrew(elevation=elevation); - multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * mainRailTrans(elevation=10)) + multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * mainRailTrans(elevation=elevation)) railAndScrew(elevation=elevation); - multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * mainRailTrans(elevation=10)) + multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * mainRailTrans(elevation=elevation)) railAndScrew(elevation=elevation); } + module insertDowelsIntoSideWall(t=10) { - module insertDowelsIntoSideWall() { + hingeHoleH = hingePoleH-sideWallConnLugDepression; + + sideWallLeft(); + + translate(v=[hingePoleDx,hingePoleDy, (sideWallZ-hingeHoleH) + t]) + hingeDowel(); + + translate(v=[hingePoleDx,hingePoleDy, (hingeHoleH-hingePoleH)-t]) + hingeDowel(); } + //propUpBottomXYTraywithSideWalls(t=0,r=0); - module connectXYTraysWithSideWalls() { + module propUpBottomXYTraywithSideWalls(t=0, r=0) { + function sideWallToYBarTrans(t=0,r=0) = + yBarMirrorOtherCornerTrans * + yBarSideModuleConnectorTrans * // bring to y bar space + mirror(v=[0,1,0]) * + translate(v=[0,0,t]) * + translate(v=[sideWallConnW/2.0, -hingePoleR, sideWallZHingeTotalClearance]) * // bring to side module space + rotate(a=[0,0,-r]) * + translate(v=[-hingePoleDx, -hingePoleDy, 0]); + + connectXYTrayWithMainRails(elevation=0); + + multmatrix(sideWallToYBarTrans(t=t, r=r)) + insertDowelsIntoSideWall(t=0); + + multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideWallToYBarTrans(t=t,r=r)) + insertDowelsIntoSideWall(t=0); + } + + attachXYTrays(t=0); + + module attachXYTrays(t=0) { + + function upperXYTrayTrans(t=0) = yBarMainRailConnectorTrans * mirrorMainRailOtherSideTrans * inv4x4(yBarMainRailConnectorTrans); + + module singleScrew(t=0) { + translate(v = [railSideMountThickness+5, railFrontThickness+4, railFootThickness + 2*t]) + caseScrewA(); + } + + translate(v=[0,0,t]) + multmatrix(upperXYTrayTrans(t=0)) { + attachSideConnectorModulesToYBars(); + + multmatrix(yBarMainRailConnectorTrans) + singleScrew(t=t); + + multmatrix(yBarMirrorOtherCornerTrans * yBarMainRailConnectorTrans) + singleScrew(t=t); + + multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * yBarMainRailConnectorTrans) + singleScrew(t=t); + + multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * yBarMirrorOtherCornerTrans * yBarMainRailConnectorTrans) + singleScrew(t=t); + + } + + propUpBottomXYTraywithSideWalls(t=0,r=10); } diff --git a/rack/mainRail.scad b/rack/mainRail.scad index f687dd4..936c9fc 100644 --- a/rack/mainRail.scad +++ b/rack/mainRail.scad @@ -14,7 +14,7 @@ module mainRail() { applyBevels() applyConnector(on="mainRail", to="yBar", trans=yBarConnectorTrans) - applyConnector(on="mainRail", to="yBar", trans=mirrorOtherSideTrans * yBarConnectorTrans) + applyConnector(on="mainRail", to="yBar", trans=mirrorMainRailOtherSideTrans * yBarConnectorTrans) mainRailBase(); module mainRailBase() { @@ -54,8 +54,6 @@ module mainRail() { yBarConnectorTrans = identity; - mirrorOtherSideTrans = translate(v = [0, 0, railTotalHeight]) * mirror(v=[0,0,1]); - module applyBevels() { b = 0.5; // bevel value apply_n() { @@ -70,3 +68,7 @@ module mainRail() { } } + +// used in assembly +mirrorMainRailOtherSideTrans = translate(v = [0, 0, railTotalHeight]) * mirror(v=[0,0,1]); + diff --git a/rack/side/sideWallLeft.scad b/rack/side/sideWallLeft.scad index b9fdefd..d10e93c 100644 --- a/rack/side/sideWallLeft.scad +++ b/rack/side/sideWallLeft.scad @@ -4,7 +4,7 @@ include <./sideWallBase.scad> module sideWallLeft() { - applyEpicVentilation() + //applyEpicVentilation() applySideWallVerticalRibs() render() sideWallBase(); diff --git a/rack/side/sideWallRight.scad b/rack/side/sideWallRight.scad index 218bd65..30e00c8 100644 --- a/rack/side/sideWallRight.scad +++ b/rack/side/sideWallRight.scad @@ -4,7 +4,7 @@ include <./sideWallBase.scad> module sideWallRight() { - applyEpicVentilation() + //applyEpicVentilation() mirror(v=[1,0,0]) applySideWallVerticalRibs() render()