include include include noBodyPrev = true; noDrillingsPrev = true; noPcbPrev = true; noRoofPrev = true; //noExtPrev = false; noExtPrev = true; if (is_undef(noCaseBodyExtendedPrev) || noCaseBodyExtendedPrev == false) { caseBodyExtended(); if (!noExtPrev) { extendedBaseTr() { placedPcb(); %caseRoofDrilled(); } } } // ------------------- module caseBodyExtended() { extendedBase(); extendedBaseTr() { caseBodyWithSnapHoles(); } } module caseBodyWithSnapHoles() { difference() { caseBodyDrilled(); for(v = caseSnaps) { translate([v[0], v[1]-eps, v[2]]) snapFitFemale([snapW, snapD+eps*2, snapH], snapEc, snapFemalePadding); } } } module extendedBaseTr() { translate([0, coverTh+coverMargin, 0]) children(); } module extendedBase() { cube([caseW, coverD, baseH]); }