diff --git a/config/common.scad b/config/common.scad index 452938d..dd4dcd7 100644 --- a/config/common.scad +++ b/config/common.scad @@ -1,5 +1,8 @@ -// Config aggregator file +// Config aggregator file + some extra configs include <./dowel.scad> include <./magnet.scad> include <./rackFrame.scad> include <./print.scad> + + +sideWallVentilation = true; \ No newline at end of file diff --git a/rack/side/sideWallBase.scad b/rack/side/sideWallBase.scad index 1bbecb6..fd11dc9 100644 --- a/rack/side/sideWallBase.scad +++ b/rack/side/sideWallBase.scad @@ -14,6 +14,7 @@ use <./hingeModule.scad> module sideWallBase() { applyHingeConnector() + applySideWallBracing(numVerticalRibs=2) applyMagnetConnector() applyHandle() sideWallBase(); @@ -135,13 +136,18 @@ module applySideWallDefaultVentilation(numVents) { r = 2; // vent roundness ventLength = sideWallY - 2*sideWallDefaultVentilationToZEdge; - ventZDiff = (sideWallZ - 2*sideWallDefaultVentilationToYEdge)/(numVents-1); + ventZDiff = numVents == 1 + ? 0 // TODO kinda ugly + : (sideWallZ - 2*sideWallDefaultVentilationToYEdge)/(numVents-1); apply_n() { - for (i = [0:numVents-1]) { - translate(v = [0, sideWallDefaultVentilationToZEdge, i * ventZDiff + sideWallDefaultVentilationToYEdge]) - vent(); + if (numVents > 0) { + for (i = [0:numVents-1]) { + translate(v = [0, sideWallDefaultVentilationToZEdge, i*ventZDiff+sideWallDefaultVentilationToYEdge]) + vent(); + } } + children(0); } @@ -155,52 +161,67 @@ module applySideWallDefaultVentilation(numVents) { } } -module applySideWallBracing(numRibs) { +module applySideWallBracing(numVerticalRibs) { apply_p() { // TODO add horizontal bracing - sideWallVerticalBracing(numRibs = numRibs); + union() { + sideWallVerticalBracing(numRibs = numVerticalRibs); + sideWallHorizontalBracing(); + } children(0); } - module sideWallVerticalBracing(numRibs, ribZ, ribExtrusion=1) { + module sideWallVerticalBracing(numRibs) { - ribRampLength = 5; - ribWidth = 2; - ribZ = sideWallZ; ribYDiff = sideWallY - 2*sideWallDefaultVerticalBracingToZEdge; translate(v=[0,sideWallDefaultVerticalBracingToZEdge,0]) intersection() { for (i = [0:numRibs-1]) { - - translate(v = [sideWallThickness, i*ribYDiff, (sideWallZ-ribZ)/2]) - translate(v = [ribExtrusion-ribWidth, 0, 0]) - verticalRib(ribExtend=4, ribWidth=ribWidth); + translate(v = [0, i*ribYDiff, 0]) + verticalRib(); } halfspace(vpos=[1,0,0], p=[0,0,0]); } - module verticalRib(ribExtend, ribWidth) { + module verticalRib(height=4, thickness=3, rampLength=0) { - roundness = 0.5; - translate(v=[0,-ribWidth/2,0]) - minkowski() { - hull() { - translate(v=[0,0,roundness]) - cube(size = [eps, ribWidth, eps]); + translate(v=[sideWallThickness-eps,-thickness/2,0]) + hull() { + cube(size = [eps, thickness, eps]); - translate(v = [0, 0, ribRampLength]) - cube(size = [ribExtend, ribWidth, ribZ-2*(ribRampLength+roundness)]); + translate(v = [0, 0, rampLength]) + cube(size = [height, thickness, sideWallZ-2*rampLength]); - translate(v = [0, 0, ribZ-roundness]) - cube(size = [eps, ribWidth, eps]); - } - - sphere(r=roundness); + translate(v = [0, 0, sideWallZ]) + cube(size = [eps, thickness, eps]); } } } + + module sideWallHorizontalBracing() { + + ribThickness = 2.5; + + horizontalRib(thickness=ribThickness); + + translate(v=[0,0,sideWallZ-ribThickness]) + horizontalRib(thickness=ribThickness); + + module horizontalRib(height=4, thickness=3, rampLength=5) { + + ribLength = sideWallY + rampLength - sideWallDefaultHorizontalBracingToZEdge; + + translate(v = [sideWallThickness-eps, sideWallY-ribLength, 0]) + hull() { + cube(size = [height, ribLength, thickness]); + + translate(v=[0,-rampLength,0]) + cube(size=[eps, eps, thickness]); + } + } + } } diff --git a/rack/side/sideWallLeft.scad b/rack/side/sideWallLeft.scad index ed41d38..83c3c09 100644 --- a/rack/side/sideWallLeft.scad +++ b/rack/side/sideWallLeft.scad @@ -4,9 +4,8 @@ sideWallLeft(); module sideWallLeft() { - numVentsCustom = ceil((sideWallZ - 2*sideWallDefaultVentilationToYEdge)/10); + numVentsCustom = sideWallVentilation? ceil((sideWallZ - 2*sideWallDefaultVentilationToYEdge)/10): 0; - applySideWallBracing(numRibs=2) applySideWallDefaultVentilation(numVents=numVentsCustom) sideWallBase(); } diff --git a/rack/side/sideWallRight.scad b/rack/side/sideWallRight.scad index 415b394..9c56092 100644 --- a/rack/side/sideWallRight.scad +++ b/rack/side/sideWallRight.scad @@ -4,10 +4,9 @@ sideWallRight(); module sideWallRight() { - numVentsCustom = ceil((sideWallZ - 2*sideWallDefaultVentilationToYEdge)/10); + numVentsCustom = sideWallVentilation? ceil((sideWallZ - 2*sideWallDefaultVentilationToYEdge)/10): 0; mirror(v=[1,0,0]) - applySideWallBracing(numRibs=2) applySideWallDefaultVentilation(numVents=numVentsCustom) sideWallBase(); } diff --git a/rack/side/sideWallVariables.scad b/rack/side/sideWallVariables.scad index e3e8b5d..5360c5a 100644 --- a/rack/side/sideWallVariables.scad +++ b/rack/side/sideWallVariables.scad @@ -34,6 +34,7 @@ hingePoleDx = sideWallSlotToOuterYEdge + sideWallConnW/2.0; hingePoleDy = sideWallY - (sideWallSlotToOuterXEdge + (hingePoleR+radiusXYSlack)); sideWallDefaultVerticalBracingToZEdge = 30; +sideWallDefaultHorizontalBracingToZEdge = sideWallDefaultVerticalBracingToZEdge; sideWallDefaultVentilationToZEdge = 40; sideWallDefaultVentilationToYEdge = 25; sideWallDefaultVentilationWidth = 6; diff --git a/stl/micro/rack/eval_P.stl b/stl/micro/rack/eval_P.stl index cae2b14..dbfa65d 100644 Binary files a/stl/micro/rack/eval_P.stl and b/stl/micro/rack/eval_P.stl differ diff --git a/stl/micro/rack/hingeModule.stl b/stl/micro/rack/hingeModule.stl index e02fcc6..2a840f6 100644 Binary files a/stl/micro/rack/hingeModule.stl and b/stl/micro/rack/hingeModule.stl differ diff --git a/stl/micro/rack/magnetModuleLeft_P.stl b/stl/micro/rack/magnetModuleLeft_P.stl index e7c918e..5646bc8 100644 Binary files a/stl/micro/rack/magnetModuleLeft_P.stl and b/stl/micro/rack/magnetModuleLeft_P.stl differ diff --git a/stl/micro/rack/magnetModuleRight_P.stl b/stl/micro/rack/magnetModuleRight_P.stl index 8df4644..1a0b5e5 100644 Binary files a/stl/micro/rack/magnetModuleRight_P.stl and b/stl/micro/rack/magnetModuleRight_P.stl differ diff --git a/stl/micro/rack/mainRail_P.stl b/stl/micro/rack/mainRail_P.stl index 578dae0..3621c0a 100644 Binary files a/stl/micro/rack/mainRail_P.stl and b/stl/micro/rack/mainRail_P.stl differ diff --git a/stl/micro/rack/rackFeet_P.stl b/stl/micro/rack/rackFeet_P.stl index 9378e4b..ad12e5b 100644 Binary files a/stl/micro/rack/rackFeet_P.stl and b/stl/micro/rack/rackFeet_P.stl differ diff --git a/stl/micro/rack/rackJoiner_P.stl b/stl/micro/rack/rackJoiner_P.stl index 63fa96c..053b30e 100644 Binary files a/stl/micro/rack/rackJoiner_P.stl and b/stl/micro/rack/rackJoiner_P.stl differ diff --git a/stl/micro/rack/sideWallLeft_P.stl b/stl/micro/rack/sideWallLeft_P.stl index 621fcaa..9491bf2 100644 Binary files a/stl/micro/rack/sideWallLeft_P.stl and b/stl/micro/rack/sideWallLeft_P.stl differ diff --git a/stl/micro/rack/sideWallRight_P.stl b/stl/micro/rack/sideWallRight_P.stl index 446b34a..0823a67 100644 Binary files a/stl/micro/rack/sideWallRight_P.stl and b/stl/micro/rack/sideWallRight_P.stl differ diff --git a/stl/micro/rack/stackConnectorBottom_P.stl b/stl/micro/rack/stackConnectorBottom_P.stl index ef2db25..9920f1f 100644 Binary files a/stl/micro/rack/stackConnectorBottom_P.stl and b/stl/micro/rack/stackConnectorBottom_P.stl differ diff --git a/stl/micro/rack/xBar_P.stl b/stl/micro/rack/xBar_P.stl index e4e4ac7..dd421bf 100644 Binary files a/stl/micro/rack/xBar_P.stl and b/stl/micro/rack/xBar_P.stl differ diff --git a/stl/micro/rack/xyPlate_P.stl b/stl/micro/rack/xyPlate_P.stl index 2b35628..5ea9ea9 100644 Binary files a/stl/micro/rack/xyPlate_P.stl and b/stl/micro/rack/xyPlate_P.stl differ diff --git a/stl/micro/rack/yBar_P.stl b/stl/micro/rack/yBar_P.stl index 5229c69..833fd05 100644 Binary files a/stl/micro/rack/yBar_P.stl and b/stl/micro/rack/yBar_P.stl differ diff --git a/stl/mini/rack/eval_P.stl b/stl/mini/rack/eval_P.stl index 35d3a93..356b302 100644 Binary files a/stl/mini/rack/eval_P.stl and b/stl/mini/rack/eval_P.stl differ diff --git a/stl/mini/rack/hingeModule.stl b/stl/mini/rack/hingeModule.stl index 589d5cd..aacab0d 100644 Binary files a/stl/mini/rack/hingeModule.stl and b/stl/mini/rack/hingeModule.stl differ diff --git a/stl/mini/rack/magnetModuleLeft_P.stl b/stl/mini/rack/magnetModuleLeft_P.stl index 955ff64..6574e22 100644 Binary files a/stl/mini/rack/magnetModuleLeft_P.stl and b/stl/mini/rack/magnetModuleLeft_P.stl differ diff --git a/stl/mini/rack/magnetModuleRight_P.stl b/stl/mini/rack/magnetModuleRight_P.stl index 65910ee..0fcf25f 100644 Binary files a/stl/mini/rack/magnetModuleRight_P.stl and b/stl/mini/rack/magnetModuleRight_P.stl differ diff --git a/stl/mini/rack/mainRail_P.stl b/stl/mini/rack/mainRail_P.stl index 9a8d196..0db785b 100644 Binary files a/stl/mini/rack/mainRail_P.stl and b/stl/mini/rack/mainRail_P.stl differ diff --git a/stl/mini/rack/rackFeet_P.stl b/stl/mini/rack/rackFeet_P.stl index e5a1dff..5452afa 100644 Binary files a/stl/mini/rack/rackFeet_P.stl and b/stl/mini/rack/rackFeet_P.stl differ diff --git a/stl/mini/rack/rackJoiner_P.stl b/stl/mini/rack/rackJoiner_P.stl index 17d8861..053b30e 100644 Binary files a/stl/mini/rack/rackJoiner_P.stl and b/stl/mini/rack/rackJoiner_P.stl differ diff --git a/stl/mini/rack/sideWallLeft_P.stl b/stl/mini/rack/sideWallLeft_P.stl index d98d13f..6ecb206 100644 Binary files a/stl/mini/rack/sideWallLeft_P.stl and b/stl/mini/rack/sideWallLeft_P.stl differ diff --git a/stl/mini/rack/sideWallRight_P.stl b/stl/mini/rack/sideWallRight_P.stl index 717ab12..dca5918 100644 Binary files a/stl/mini/rack/sideWallRight_P.stl and b/stl/mini/rack/sideWallRight_P.stl differ diff --git a/stl/mini/rack/stackConnectorBottom_P.stl b/stl/mini/rack/stackConnectorBottom_P.stl index 77e246d..9920f1f 100644 Binary files a/stl/mini/rack/stackConnectorBottom_P.stl and b/stl/mini/rack/stackConnectorBottom_P.stl differ diff --git a/stl/mini/rack/xBar_P.stl b/stl/mini/rack/xBar_P.stl index c04c544..3cc2313 100644 Binary files a/stl/mini/rack/xBar_P.stl and b/stl/mini/rack/xBar_P.stl differ diff --git a/stl/mini/rack/xyPlate_P.stl b/stl/mini/rack/xyPlate_P.stl index 2241b58..6cca8a1 100644 Binary files a/stl/mini/rack/xyPlate_P.stl and b/stl/mini/rack/xyPlate_P.stl differ diff --git a/stl/mini/rack/yBar_P.stl b/stl/mini/rack/yBar_P.stl index 766e69f..590eb46 100644 Binary files a/stl/mini/rack/yBar_P.stl and b/stl/mini/rack/yBar_P.stl differ diff --git a/stl/nano/rack/eval_P.stl b/stl/nano/rack/eval_P.stl index 4b9d81e..b501c50 100644 Binary files a/stl/nano/rack/eval_P.stl and b/stl/nano/rack/eval_P.stl differ diff --git a/stl/nano/rack/hingeModule.stl b/stl/nano/rack/hingeModule.stl index f6ea78d..12bab0b 100644 Binary files a/stl/nano/rack/hingeModule.stl and b/stl/nano/rack/hingeModule.stl differ diff --git a/stl/nano/rack/magnetModuleLeft_P.stl b/stl/nano/rack/magnetModuleLeft_P.stl index 7a07aaf..7f67cf8 100644 Binary files a/stl/nano/rack/magnetModuleLeft_P.stl and b/stl/nano/rack/magnetModuleLeft_P.stl differ diff --git a/stl/nano/rack/magnetModuleRight_P.stl b/stl/nano/rack/magnetModuleRight_P.stl index f3eedb2..f494f30 100644 Binary files a/stl/nano/rack/magnetModuleRight_P.stl and b/stl/nano/rack/magnetModuleRight_P.stl differ diff --git a/stl/nano/rack/mainRail_P.stl b/stl/nano/rack/mainRail_P.stl index 3b8f61d..5367c7a 100644 Binary files a/stl/nano/rack/mainRail_P.stl and b/stl/nano/rack/mainRail_P.stl differ diff --git a/stl/nano/rack/rackFeet_P.stl b/stl/nano/rack/rackFeet_P.stl index 9f632d2..9d91bc0 100644 Binary files a/stl/nano/rack/rackFeet_P.stl and b/stl/nano/rack/rackFeet_P.stl differ diff --git a/stl/nano/rack/rackJoiner_P.stl b/stl/nano/rack/rackJoiner_P.stl index 308337a..053b30e 100644 Binary files a/stl/nano/rack/rackJoiner_P.stl and b/stl/nano/rack/rackJoiner_P.stl differ diff --git a/stl/nano/rack/sideWallLeft_P.stl b/stl/nano/rack/sideWallLeft_P.stl index 9900444..03ec419 100644 Binary files a/stl/nano/rack/sideWallLeft_P.stl and b/stl/nano/rack/sideWallLeft_P.stl differ diff --git a/stl/nano/rack/sideWallRight_P.stl b/stl/nano/rack/sideWallRight_P.stl index 176d537..f5b3c1f 100644 Binary files a/stl/nano/rack/sideWallRight_P.stl and b/stl/nano/rack/sideWallRight_P.stl differ diff --git a/stl/nano/rack/stackConnectorBottom_P.stl b/stl/nano/rack/stackConnectorBottom_P.stl index e3dc191..9920f1f 100644 Binary files a/stl/nano/rack/stackConnectorBottom_P.stl and b/stl/nano/rack/stackConnectorBottom_P.stl differ diff --git a/stl/nano/rack/xBar_P.stl b/stl/nano/rack/xBar_P.stl index 6345e8a..b73892a 100644 Binary files a/stl/nano/rack/xBar_P.stl and b/stl/nano/rack/xBar_P.stl differ diff --git a/stl/nano/rack/xyPlate_P.stl b/stl/nano/rack/xyPlate_P.stl index 32df333..c621e98 100644 Binary files a/stl/nano/rack/xyPlate_P.stl and b/stl/nano/rack/xyPlate_P.stl differ diff --git a/stl/nano/rack/yBar_P.stl b/stl/nano/rack/yBar_P.stl index 306670c..de1891f 100644 Binary files a/stl/nano/rack/yBar_P.stl and b/stl/nano/rack/yBar_P.stl differ