include include include noBodyPrev = true; noDrillingsPrev = true; noPcbPrev = true; noRoofPrev = true; noCaseBodyExtendedPrev = true; noLedHookPrev = true; //noExtPrev = false; noExtPrev = true; if (is_undef(noCoverPrev) || noCoverPrev == false) { translate([0, 0, baseH]) cover(); if (!noExtPrev) { caseBodyExtended(); extendedBaseTr() { placedPcb(); caseRoofDrilled(); } } } // ------------------- module coverCore() { cube([caseW, coverD, coverH]); } module coverFrontCut() { translate([caseW+eps, coverTh, -eps]) { rotate(90, [0,0,1]) cube([caseD + coverMargin*2, coverTh + eps, caseH - baseH + roofTh + coverMargin]); } } module coverBackCut() { translate([coverTh+eps, coverTh, -eps]) rotate(90, [0,0,1]) cube([caseD + coverMargin*2, coverTh + eps*2, caseH - baseH + roofTh + coverMargin]); } module coverRoofCut() { translate([coverLedPos[0], coverLedPos[1], baseH]) cylinder(h = coverH, d = coverLedHoleD, $fn=50); } module coverVoid() { translate([coverTh, coverTh, -eps]) cube([caseW-coverTh*2+eps, caseD+coverMargin*2, coverH - coverTh+eps]); } module coverCuts() { coverFrontCut(); coverBackCut(); coverRoofCut(); } module coverLedHook() { ledHook(ledHookSize, ledHookTh, ledHookSlitW); } module cover() { difference() { coverCore(); coverCuts(); coverVoid(); } // snaps translate([coverSnaps[0].x+snapW, coverSnaps[0].y+snapD-eps, coverSnaps[0].z-baseH]) rotate([0,0,180]) snapFitMaleF([snapW, snapD+eps*2, snapH], snapEc); translate([coverSnaps[1].x, coverSnaps[1].y-eps, coverSnaps[1].z-baseH]) snapFitMaleF([snapW, snapD+eps*2, snapH], snapEc); // led hook if (integrateCoverLedHook) { translate([coverLedPos[0] - ledHookSize.x/2, coverLedPos[1] - ledHookSize.y/2, coverH - ledHookSize.z - coverTh+eps]) coverLedHook(); } }