diff --git a/rack/xyPlate.scad b/rack/xyPlate.scad index 487cbc2..4ef18f6 100644 --- a/rack/xyPlate.scad +++ b/rack/xyPlate.scad @@ -9,6 +9,7 @@ xyPlateConnDy = yBarDepth - 2*basePlateScrewMountToYBarXZFace; // Y distance bet module xyPlate() { translate(v=-[connPosX,connPosY,0]) // center around one of the YBarConnector holes + applyVentilation() applyYBarConnectors() plateBody(); @@ -23,8 +24,40 @@ module xyPlate() { plateBodyY = (yBarDepth - 2*xBarY) - xySlack; plateBodyH = xBarWallThickness; - translate(v=[xySlack/2, xySlack/2, 0]) - cube(size=[plateBodyX, plateBodyY, plateBodyH]); + translate(v=[xySlack/2, xySlack/2, 0]) { + cube(size = [plateBodyX, plateBodyY, plateBodyH]); + + // bracing + braceThickness = 3; + braceHeight = 2; + translate(v = [0, 0, plateBodyH]) + difference() { + cube(size = [plateBodyX, plateBodyY, braceHeight]); + translate(v=[braceThickness, braceThickness,0]) + cube(size=[plateBodyX-2*braceThickness, plateBodyY-2*braceThickness, braceHeight]); + } + + } + } + + module applyVentilation() { + + apply_n() { + numSlits = 5; + edgePadding = 30; + diff = (xBarX-2*edgePadding)/(numSlits-1); + slitWidth = 4; + slitLength = (yBarDepth - 2*xBarY)-2*edgePadding; + + for(i=[0:numSlits-1]) { + translate(v=[edgePadding+diff*i-slitWidth/2, edgePadding,0]) + minkowski() { + cylinder(h=1,r=2); + cube(size=[slitWidth,slitLength,inf]); + } + } + children(0); + } } module applyYBarConnectors() {