include include noBodyPrev = true; noPcbPrev = true; if (is_undef(noRoofPrev) || noRoofPrev == false) { caseRoofDrilled(); //extraDrillings(); } // ------------------- module caseRoof() { translate([0,0,caseH]) cube([caseW, caseD, roofTh]); } module casePinCut() { translate([pinCutX, pinCutY, caseH-roofTh]) cube([pinCutW, pinCutD, roofTh*3]); } module caseRoofCut() { difference() { caseRoof(); casePinCut(); caseWallRCut(); extraDrillings(); } } module caseRoofDrilled() { difference() { caseRoofCut(); caseDrillVoids(); } } module extraDrillings() { for (v = edPos) { translate([v[0], v[1], caseH-eps]) rotate(v[2]) for (r = [0:edRows-1]) for(c = [0:edCols-1]) translate([c * edSpacing, r * edSpacing, 0]) { cylinder(edH, edPrintedRadius, edPrintedRadius, $fn = 50); } } }