Просмотр исходного кода

Fix lid ceiling height: restore epd_case to z=LID_T so ceiling clears base retention flanges

Commit 0414fd4 (EPD_ANGLE) unconditionally rendered a flat ceiling plate at z=FLANGE_H
and raised epd_case from z=LID_T to z=FLANGE_H+LID_T. In assembly this put the ceiling
co-planar with the retention flange tops (both at BASE_H), creating zero clearance and
preventing the lid from sliding to its locked position.

Fix: flat ceiling plate is now guarded by !EPD_IS_LID (test-fit only). When EPD_IS_LID,
epd_case sits at z=LID_T — 1.5 mm inside the retention flange zone — giving the same
clearance the design had before 0414fd4. EPD_ANGLE rotation pivot moves with it; behaviour
at EPD_ANGLE=0 is identical, other angles are now about the correct reference edge.

FPC slot in difference() is also guarded by !EPD_IS_LID; the epd_case backplate's own
arc routing slot handles FPC egress when EPD_IS_LID=true.
ZiB 3 месяцев назад
Родитель
Сommit
fe60013932
1 измененных файлов с 13 добавлено и 11 удалено
  1. 13 11
      lid.scad

+ 13 - 11
lid.scad

@@ -1,5 +1,5 @@
 // Sliding lid for EE04 case — integrates epd_case as ceiling
-// z=0 = bottom of flanges; z=FLANGE_H = ceiling underside / epd_case backplate bottom
+// z=0 = bottom of flanges; ceiling at z=LID_T (epd_case backplate) or z=FLANGE_H (flat test plate)
 include <params.scad>
 use <epd_case.scad>
 use <GDEY0583T81.scad>
@@ -106,11 +106,12 @@ module lid() {
   color("#004B49")
   difference() {
     union() {
-      // Flat ceiling plate — always rendered
-      translate([0, -WALL, FLANGE_H])
-        rounded_box(OUT_L, OUT_W, LID_T, CORNER_R);
+      if (!EPD_IS_LID)
+        // Flat ceiling plate for test-fit lid (no epd_case)
+        translate([0, -WALL, FLANGE_H])
+          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, FLANGE_H + LID_T])
+        translate([OUT_L/2 - epd_case_w/2, OUT_W - WALL, LID_T])
           rotate([-EPD_ANGLE, 0, 0])
             translate([0, -epd_case_d, 0])
               epd_case();
@@ -125,16 +126,17 @@ module lid() {
       }
     }
 
-    // FPC cable slot — from Y+ face of U-rib bottom bar, FPC_SLOT_W toward Y+
-    translate([PCB_OX + FPC_CX - FPC_NOTCH_W/2,
-               LID_Y_LEN - 3 - FPC_U_DEPTH + FPC_U_T,
-               FLANGE_H - 0.1])
-      cube([FPC_NOTCH_W, FPC_SLOT_W, LID_T + 0.2]);
+    // FPC cable slot — through flat ceiling plate (test-fit lid only; EPD_IS_LID uses epd_case slot)
+    if (!EPD_IS_LID)
+      translate([PCB_OX + FPC_CX - FPC_NOTCH_W/2,
+                 LID_Y_LEN - 3 - FPC_U_DEPTH + FPC_U_T,
+                 FLANGE_H - 0.1])
+        cube([FPC_NOTCH_W, FPC_SLOT_W, LID_T + 0.2]);
   }
 
   // Display mockup — seated inside epd_case, preview only
   if ($preview && EPD_IS_LID && SHOW_DISP)
-    translate([OUT_L/2 - epd_case_w/2, OUT_W - WALL, FLANGE_H + LID_T])
+    translate([OUT_L/2 - epd_case_w/2, OUT_W - WALL, LID_T])
       rotate([-EPD_ANGLE, 0, 0])
         translate([WALL + TOL, -epd_case_d + BEZEL_Y, WALL])
           GDEY0583T81(fpc_bend_start=0, fpc_bend_r=FPC_BEND_R, fpc_post_clip=2);