|
@@ -7,6 +7,12 @@ use <GDEY0583T81.scad>
|
|
|
/* [Preview] */
|
|
/* [Preview] */
|
|
|
SHOW_DISP = true;
|
|
SHOW_DISP = true;
|
|
|
|
|
|
|
|
|
|
+// Hinge drum — EPD_ANGLE-swept partial cylinder filling the gap between the flat
|
|
|
|
|
+// plate and the tilted epd_case back. Radius reaches WALL past the Y- edge of the
|
|
|
|
|
+// flat-plate FPC slot so a cable path can later be cut inside it.
|
|
|
|
|
+FPC_SLOT_Y0 = LID_Y_LEN - 3 - FPC_U_DEPTH + FPC_U_T;
|
|
|
|
|
+HINGE_R = (OUT_W - WALL) - FPC_SLOT_Y0 + WALL;
|
|
|
|
|
+
|
|
|
// ============================================================
|
|
// ============================================================
|
|
|
// LID (slide-on; enters from Y- face, closes toward Y+)
|
|
// LID (slide-on; enters from Y- face, closes toward Y+)
|
|
|
// Flanges sit inside cavity and ride on base retention flange hypotenuses.
|
|
// Flanges sit inside cavity and ride on base retention flange hypotenuses.
|
|
@@ -93,15 +99,26 @@ module lid() {
|
|
|
difference() {
|
|
difference() {
|
|
|
union() {
|
|
union() {
|
|
|
// Flat ceiling plate for EPD_ANGLE > 0
|
|
// Flat ceiling plate for EPD_ANGLE > 0
|
|
|
- color("#004B49")
|
|
|
|
|
|
|
+ color("#2C3863")
|
|
|
translate([0, -WALL, FLANGE_H])
|
|
translate([0, -WALL, FLANGE_H])
|
|
|
rounded_box(OUT_L, OUT_W, LID_T, CORNER_R);
|
|
rounded_box(OUT_L, OUT_W, LID_T, CORNER_R);
|
|
|
- if (EPD_IS_LID)
|
|
|
|
|
- translate([OUT_L/2 - epd_case_w/2, OUT_W - WALL, LID_T + WALL])
|
|
|
|
|
|
|
+ if (EPD_IS_LID) {
|
|
|
|
|
+ translate([OUT_L/2 - epd_case_w/2, OUT_W - WALL, LID_T + LIP])
|
|
|
rotate([-EPD_ANGLE, 0, 0])
|
|
rotate([-EPD_ANGLE, 0, 0])
|
|
|
translate([0, -epd_case_d, 0])
|
|
translate([0, -epd_case_d, 0])
|
|
|
epd_case();
|
|
epd_case();
|
|
|
|
|
|
|
|
|
|
+ // Hinge drum — axis along X at the epd_case pivot line; swept from the
|
|
|
|
|
+ // flat-plate plane up through EPD_ANGLE to sit flush against the case back.
|
|
|
|
|
+ // Inset CORNER_R from each end so it stays clear of the corner rounding.
|
|
|
|
|
+ if (EPD_ANGLE > 0)
|
|
|
|
|
+ color("#004B49")
|
|
|
|
|
+ translate([OUT_L/2 - epd_case_w/2 + CORNER_R, OUT_W - WALL, LID_T + WALL])
|
|
|
|
|
+ rotate([0, 90, 0])
|
|
|
|
|
+ pie_slice(ang=EPD_ANGLE, l=epd_case_w - 2*CORNER_R, r=HINGE_R,
|
|
|
|
|
+ spin=270 - EPD_ANGLE, anchor=BOT, $fn=96);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Y- lip — same rounded_box profile clipped to the Y- wall zone so the
|
|
// Y- lip — same rounded_box profile clipped to the Y- wall zone so the
|
|
|
// lip corners match the base exterior corners
|
|
// lip corners match the base exterior corners
|
|
|
color("#004B49")
|
|
color("#004B49")
|
|
@@ -115,7 +132,7 @@ module lid() {
|
|
|
|
|
|
|
|
// FPC cable slot — through flat ceiling plate (test-fit lid only; EPD_IS_LID uses epd_case slot)
|
|
// FPC cable slot — through flat ceiling plate (test-fit lid only; EPD_IS_LID uses epd_case slot)
|
|
|
translate([PCB_OX + FPC_CX - FPC_NOTCH_W/2,
|
|
translate([PCB_OX + FPC_CX - FPC_NOTCH_W/2,
|
|
|
- LID_Y_LEN - 3 - FPC_U_DEPTH + FPC_U_T,
|
|
|
|
|
|
|
+ FPC_SLOT_Y0,
|
|
|
FLANGE_H - 0.1])
|
|
FLANGE_H - 0.1])
|
|
|
cube([FPC_NOTCH_W, FPC_SLOT_W, LID_T + 0.2]);
|
|
cube([FPC_NOTCH_W, FPC_SLOT_W, LID_T + 0.2]);
|
|
|
}
|
|
}
|