Răsfoiți Sursa

Set EPD_ANGLE=47 for angled-display test fit; add BOSL2 flange corner prototype

_rim_compare.scad is a scratch reference for the rev3 BOSL2 flange rebuild,
not wired into the real build.
ZiB 3 luni în urmă
părinte
comite
d832f1e6e7
2 a modificat fișierele cu 93 adăugiri și 1 ștergeri
  1. 92 0
      _rim_compare.scad
  2. 1 1
      params.scad

+ 92 - 0
_rim_compare.scad

@@ -0,0 +1,92 @@
+include <params.scad>
+
+module old_rim() {
+  color("#2C3863") {
+    hull() {
+      translate([WALL + FLANGE_W - SLIDE_CLEAR - 0.01, 0, 0])
+        cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
+      translate([WALL + SLIDE_CLEAR, 0, -0.005])
+        cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0.01]);
+    }
+    hull() {
+      translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, 0, 0])
+        cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
+      translate([OUT_L - WALL - SLIDE_CLEAR - 0.01, 0, -0.005])
+        cube([0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0.01]);
+    }
+    translate([WALL + FLANGE_W - SLIDE_CLEAR, 0, 0])
+      cube([2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H]);
+    translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR - 2.0, 0, 0])
+      cube([2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, FLANGE_H]);
+
+    hull() {
+      translate([FLANGE_W - SLIDE_CLEAR + 2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR - 0.01, 0])
+        cube([OUT_L - 2*(FLANGE_W - SLIDE_CLEAR + 2.0), 0.01, FLANGE_H - SLIDE_CLEAR]);
+      translate([FLANGE_W - SLIDE_CLEAR + 2.0, LID_Y_LEN - SLIDE_CLEAR - 0.01, -0.005])
+        cube([OUT_L - 2*(FLANGE_W - SLIDE_CLEAR + 2.0), 0.01, 0.01]);
+    }
+    translate([FLANGE_W - SLIDE_CLEAR + 2.0, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR - 2.0, 0])
+      cube([OUT_L - 2*(FLANGE_W - SLIDE_CLEAR + 2.0), 2.0, FLANGE_H]);
+
+    intersection() {
+      hull() {
+        translate([WALL + FLANGE_W - SLIDE_CLEAR - 0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
+          cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
+        translate([WALL + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, -0.005])
+          cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, 0.01]);
+      }
+      hull() {
+        translate([WALL + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
+          cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, FLANGE_H - SLIDE_CLEAR]);
+        translate([WALL + SLIDE_CLEAR, LID_Y_LEN - SLIDE_CLEAR - 0.01, -0.005])
+          cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, 0.01]);
+      }
+    }
+    intersection() {
+      hull() {
+        translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
+          cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, FLANGE_H - SLIDE_CLEAR]);
+        translate([OUT_L - WALL - SLIDE_CLEAR - 0.01, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, -0.005])
+          cube([0.01, FLANGE_W - 2*SLIDE_CLEAR, 0.01]);
+      }
+      hull() {
+        translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, LID_Y_LEN - FLANGE_W + SLIDE_CLEAR, 0])
+          cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, FLANGE_H - SLIDE_CLEAR]);
+        translate([OUT_L - WALL - FLANGE_W + SLIDE_CLEAR, LID_Y_LEN - SLIDE_CLEAR - 0.01, -0.005])
+          cube([FLANGE_W - 2*SLIDE_CLEAR, 0.01, 0.01]);
+      }
+    }
+  }
+}
+
+RIB = 2.0;
+
+module ring(x0, x1, y1, h, run) {
+  translate([x0, 0, 0])
+    diff()
+    cuboid([x1 - x0, y1, h], anchor=BOTTOM+FRONT+LEFT) {
+      if (run > 0)
+        edge_profile_asym([TOP+LEFT, TOP+RIGHT, TOP+BACK], corner_type="chamfer")
+          mask2d_chamfer(x=run, y=h);
+      tag("remove")
+        position(BOTTOM+FRONT+LEFT)
+          translate([run, -0.1, -0.1])
+            cuboid([(x1 - x0) - 2*run, y1 - run + 0.1, h + 0.2], anchor=BOTTOM+FRONT+LEFT);
+    }
+}
+
+module new_rim() {
+  color("#2C3863") {
+    ring(WALL + SLIDE_CLEAR, OUT_L - WALL - SLIDE_CLEAR, LID_Y_LEN,
+         FLANGE_H - SLIDE_CLEAR, FLANGE_W);
+    ring(WALL + SLIDE_CLEAR + FLANGE_W, OUT_L - WALL - SLIDE_CLEAR - FLANGE_W, LID_Y_LEN,
+         FLANGE_H, RIB);
+  }
+}
+
+
+// ============================================================
+// RENDER — old (hand-rolled) vs new (BOSL2 cuboid+chamfer)
+// ============================================================
+old_rim();
+translate([0, LID_Y_LEN + 15, 0]) new_rim();

+ 1 - 1
params.scad

@@ -19,7 +19,7 @@ ACT_W  = 118.78;
 ACT_D  = 88.22;
 
 /* [EPD Case Parameters] */
-EPD_ANGLE    = 0;    // 0 = flat/inline; 90 = display face coplanar with lid Y+ wall
+EPD_ANGLE    = 47;    // 0 = flat/inline; 90 = display face coplanar with lid Y+ wall
 LIP          = 1.5;
 TOL          = 0.3;
 DISP_W_TOL   = 0.1;  // per-side width tolerance for display pocket (was TOL=0.3; tightened for snug fit)