diff --git a/rack2/connectingBar.scad b/rack2/connectingBar.scad index f9b289d..2394974 100644 --- a/rack2/connectingBar.scad +++ b/rack2/connectingBar.scad @@ -14,7 +14,7 @@ barWidth = railSlotSpacing + railTotalWidth + sideSpacing; barHeight = 15; barWallThickness = 3; -barRoundness = 12; +barRoundness = 5; echo("Bar total depth: ", barDepth); echo("Bar total width: ", barWidth); @@ -22,14 +22,13 @@ echo("Bar total width: ", barWidth); module connectingBar() { module positive() { - minkowski() { difference() { sphericalFiletEdge(barWidth, barDepth, barHeight, barRoundness); - translate(v = [barWallThickness, 40, barWallThickness]) - cylindricalFiletEdge(barWidth, barDepth-80, barHeight, barRoundness); + translate(v = [barWallThickness, 32, barWallThickness]) + cylindricalFiletEdge(barWidth, barDepth-32*2, barHeight, barRoundness); } - } + } module stackConn_N() { @@ -43,15 +42,19 @@ module connectingBar() { // negatives on the y-z plane to be imprinted on the side of the main module sideConnector_N() { - translate(v=[ - m3HeatSetInsertSlotHeightSlacked, 7, 7.5]) + zOffset = 7.5; + y1 = 5; + y2 = 27; + + translate(v=[ - m3HeatSetInsertSlotHeightSlacked, y1, zOffset]) rotate(a=[0,90,0]) heatSetInsertSlot_N(rackFrameScrewType); - translate(v=[ - m3HeatSetInsertSlotHeightSlacked, 35, 7.5]) + translate(v=[ - m3HeatSetInsertSlotHeightSlacked, y2, zOffset]) rotate(a=[0,90,0]) heatSetInsertSlot_N(rackFrameScrewType); - translate(v=[-1, 7 + 28/2, 7.5]) + translate(v=[-1, y1 + (y2 - y1)/2, zOffset]) cube(size=[2,10,5], center=true); } @@ -64,7 +67,7 @@ module connectingBar() { positive(); union() { - translate(v=[10,10,0]) + translate(v=[5,5,0]) stackConn_N(); translate(v=[barWidth - (railTotalWidth + railSlotSpacing), railSlotSpacing, barHeight - railFootThickness]) @@ -72,6 +75,10 @@ module connectingBar() { translate(v=[barWidth + eps, 0,0]) sideConnector_N(); + + // TODO change this + translate(v=[barWidth - (railTotalWidth + railSlotSpacing) - 7, railSlotSpacing, barHeight-2]) + cube(size=[5,13,2]); } } @@ -80,10 +87,8 @@ module connectingBar() { } connectingBar(); - - *intersection() { connectingBar(); - cube(size=[15,100,100]); + cube(size=[21,100,100]); } diff --git a/rack2/connectingBar.stl b/rack2/connectingBar.stl index b5e2acf..d01bacf 100644 Binary files a/rack2/connectingBar.stl and b/rack2/connectingBar.stl differ diff --git a/rack2/mainRail.scad b/rack2/mainRail.scad index 8526e1f..ee5b851 100644 --- a/rack2/mainRail.scad +++ b/rack2/mainRail.scad @@ -8,32 +8,29 @@ railFootThickness = 3; railTotalHeight = screwDiff * (numRailScrews + 1) + 2 * railFootThickness; +railFrontThickness = 6; // Make sure that the nuts for the chosen screw type can slot within the front face +railSideMountThickness = 2.5; + // Distance between the middle of a screw mount and the rail's vertical edges railScrewHoleToInnerEdge = 5; -railScrewHoleToOuterEdge = 5; +railScrewHoleToOuterEdge = 7; // Distance between the midpoint of the rail screw holes. rackMountScrewWidth = maxUnitWidth + 2 * railScrewHoleToInnerEdge; -railFrontThickness = 6; // Make sure that the nuts for the chosen screw type can slot within the front face -railSideMountThickness = 2.5; -railOtherThickness = 2.5; - // Extra spacing for screws. -frontScrewSpacing = 8; +frontScrewSpacing = 15; -sideSupportExtraSpace = 2; -sideSupportScrewHoleToFrontEdge = 5; -sideSupportScrewHoleToBackEdge = 4.5; -sideSupportDepth = sideSupportScrewHoleToBackEdge + sideSupportScrewHoleToFrontEdge; +sideSupportScrewHoleToBackEdge = 4; +sideSupportDepth = sideSupportScrewHoleToBackEdge + frontScrewSpacing; frontFaceWidth = railScrewHoleToInnerEdge + railScrewHoleToOuterEdge; railTotalWidth = frontFaceWidth; -railTotalDepth = railFrontThickness+railOtherThickness+frontScrewSpacing+sideSupportDepth; - +railTotalDepth = railFrontThickness+sideSupportDepth; *mainRail(); + echo("Total Rail Height: ", railTotalHeight); module mainRail() { @@ -41,19 +38,16 @@ module mainRail() { union() { _frontRailSegment(); - translate(v = [0, railFrontThickness, 0]) - _connectingLBracketRailSegment(); - - translate(v = [frontFaceWidth-sideSupportExtraSpace, railFrontThickness+railOtherThickness+frontScrewSpacing, 0]) + translate(v = [railSideMountThickness, railFrontThickness, 0]) rotate(a = [0, 0, 90]) _sideSupportSegment(); + translate(v = [0, railFrontThickness, 0]) { - translate(v = [0, railFrontThickness + railOtherThickness + frontScrewSpacing, 0]) { - + translate(v=[railSideMountThickness,0,0]) _railFeet(); - translate(v = [0, 0, railTotalHeight - railFootThickness]) + translate(v = [railSideMountThickness, 0, railTotalHeight - railFootThickness]) _railFeet(); } } @@ -70,54 +64,40 @@ module mainRail() { } } - module _connectingLBracketRailSegment() { - difference() { - cube(size = [railOtherThickness, frontScrewSpacing + railOtherThickness, railTotalHeight]); - - union() { - translate(v = [0, 4, railFootThickness + screwDiff / 2]) - rotate(a = [0, 90, 0]) - cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = 10, $fn = 32, center = true); - - translate(v = [0, 4, railTotalHeight - (railFootThickness + screwDiff / 2)]) - rotate(a = [0, 90, 0]) - cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32, center = true); - } - } - - translate(v = [0, frontScrewSpacing + railOtherThickness, 0]) - rotate(a = [0, 0, 270]) - cube(size = [railOtherThickness, frontFaceWidth - sideSupportExtraSpace, railTotalHeight]); - } - - module _sideSupportSegment() { difference() { cube(size = [sideSupportDepth, railSideMountThickness, railTotalHeight]); - for (i = [1:numRailScrews]) { - translate(v = [sideSupportScrewHoleToFrontEdge, railFrontThickness / 2, i * screwDiff + railFootThickness]) - rotate(a = [90, 0, 0]) - cylinder(r = screwRadiusSlacked(mainRailSideMountScrewType), h = inf10, $fn = 32); + union() { + for (i = [1:numRailScrews]) { + translate(v = [frontScrewSpacing, railFrontThickness/2, i*screwDiff+railFootThickness]) + rotate(a = [90, 0, 0]) + cylinder(r = screwRadiusSlacked(mainRailSideMountScrewType), h = inf10, $fn = 32); + } + + translate(v = [4, 0, railFootThickness + 5]) + rotate(a=[90,0,0]) + cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32, center = true); + + translate(v = [4, 0, railTotalHeight- (railFootThickness + 5)]) + rotate(a=[90,0,0]) + cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32, center = true); } } - } module _railFeet() { difference() { - cube(size = [frontFaceWidth - sideSupportExtraSpace, sideSupportDepth, railFootThickness]); + cube(size = [frontFaceWidth - railSideMountThickness, sideSupportDepth, railFootThickness]); - hull() { - translate(v = [1.5, 5, 0]) - cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32); + translate(v = [6, 4, 0]) + cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32); + + translate(v = [6, 12, 0]) + cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32); - translate(v = [0, 5, 0]) - cube(size = [eps, screwRadiusSlacked(rackFrameScrewType) * 2, 10], center = true); - } } } - } module railFeetSlot_N() { @@ -125,7 +105,10 @@ module railFeetSlot_N() { union() { cube(size = [railTotalWidth, railTotalDepth, railFootThickness]); - translate(v=[1.5, railTotalDepth - 4, -m3HeatSetInsertSlotHeightSlacked]) + translate(v = [railSideMountThickness + 6, railFrontThickness + 4, -m3HeatSetInsertSlotHeightSlacked]) + heatSetInsertSlot_N(rackFrameScrewType); + + translate(v = [railSideMountThickness + 6, railFrontThickness + 12, -m3HeatSetInsertSlotHeightSlacked]) heatSetInsertSlot_N(rackFrameScrewType); } } diff --git a/rack2/mainRail.stl b/rack2/mainRail.stl index 8c823aa..8c4ba43 100644 Binary files a/rack2/mainRail.stl and b/rack2/mainRail.stl differ