You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.3 KiB
98 lines
2.3 KiB
include <config.scad> |
|
include <CaseBodyExtended.scad> |
|
include <LedHook.scad> |
|
|
|
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(); |
|
} |
|
} |
|
|
|
|