Browse Source

Align epd_case with cpu_case lid; derive FPC geometry from alignment

- Center epd_case on lid X axis (OUT_L/2 - _EPD_CASE_W/2)
- Align Y+ faces (OUT_W - EXPLODE - _EPD_CASE_D); add _EPD_CASE_D ref
- Derive FPC_U_DEPTH from Y+ alignment so ceiling slot stays aligned
  with epd_case FPC slot; derive FPC_CX to match centred epd_case slot
- CLR_XP widened to 44 mm so OUT_L == _EPD_CASE_W (130 mm)
ZiB 4 months ago
parent
commit
57c64966e6
1 changed files with 6 additions and 2 deletions
  1. 6 2
      cpu_case.scad

+ 6 - 2
cpu_case.scad

@@ -36,11 +36,11 @@ SLIDE_CLEAR =  0.40;  // clearance between flange/rib and groove/channel on all
 //   with epd_case defaults: bend_r=4, wall=2, fpc_t=0.3, tol=0.3 → _fpc_ro=4.6
 FPC_NOTCH_W =  17.5;   // = _fpc_xw in epd_case (cable 12.5 + 2×2.5 mm clearance)
 FPC_U_T     = LID_T;   // U-rib arm and bar thickness
-FPC_U_DEPTH =  20.0;   // how far Y- the U arms extend into the lid interior
 FPC_SLOT_W  =   4.1;   // ≈ sqrt(_fpc_ro²−(FPC_BEND_R−WALL)²) at epd_case z=0
 
 // epd_case reference values for alignment (must match epd_case.scad)
 _EPD_CASE_W      = 130.0;   // case_w in epd_case (DISP_W+2×TOL+2×WALL = 125.4+0.6+4)
+_EPD_CASE_D      = 108.14;  // case_d in epd_case (max(cav_d+WALL+BEZEL_Y, _bend_my+WALL))
 _EPD_FPC_SLOT_CX =  65.98;  // _fpc_x1 + _fpc_xw/2 in epd_case (slot X centre)
 _EPD_FPC_SLOT_Y  = 102.0;   // BEZEL_Y + DISP_D in epd_case (slot Y- edge)
 
@@ -124,6 +124,10 @@ LID_Y_LEN = CAV_W;   // flange length; lid Y+ end stops against Y+ interior wall
 // FPC notch X centre — keeps lid notch aligned with epd_case slot when centred on lid
 FPC_CX = OUT_L/2 - _EPD_CASE_W/2 + _EPD_FPC_SLOT_CX - PCB_OX;
 
+// U-rib depth — derived so ceiling slot Y aligns with epd_case FPC slot Y
+// (3 = hardcoded rib Y thickness in lid module)
+FPC_U_DEPTH = FPC_U_T - WALL - 3 + (_EPD_CASE_D - _EPD_FPC_SLOT_Y);
+
 // ============================================================
 //  HELPERS
 // ============================================================
@@ -356,7 +360,7 @@ if (SHOW_PLUNGERS)
 if (SHOW_EPD_CASE)
     translate([
         OUT_L/2 - _EPD_CASE_W/2,
-        WALL - EXPLODE + LID_Y_LEN - 3 - FPC_U_DEPTH + FPC_U_T - _EPD_FPC_SLOT_Y,
+        OUT_W - EXPLODE - _EPD_CASE_D,
         BASE_H + LID_T
     ])
         epd_case();