|
@@ -46,7 +46,8 @@ CAP_PAD = 4.0; // Min cap bore depth
|
|
|
CAP_ENGAGE = CAP_PAD + 6.0; // sleeve engagement length over case exterior (X)
|
|
CAP_ENGAGE = CAP_PAD + 6.0; // sleeve engagement length over case exterior (X)
|
|
|
CAP_WALL = 1.5; // sleeve and end-wall thickness
|
|
CAP_WALL = 1.5; // sleeve and end-wall thickness
|
|
|
CAP_TOL = 0.2; // per-side slip clearance between bore and case exterior
|
|
CAP_TOL = 0.2; // per-side slip clearance between bore and case exterior
|
|
|
-CAP_EXPLODE = CAP_PAD + 10; // preview: mm to pull cap away from case in X+ (0 = seated)
|
|
|
|
|
|
|
+CAP_BEVEL = 1.0; // chamfer size on X+ face edges to guide cap onto case
|
|
|
|
|
+CAP_EXPLODE = CAP_PAD + 15; // preview: mm to pull cap away from case in X+ (0 = seated)
|
|
|
|
|
|
|
|
// --- Magnetic Strip Locating Lip (rear face) ---
|
|
// --- Magnetic Strip Locating Lip (rear face) ---
|
|
|
MAG_L = 1.772 * 25.4; // strip length ≈ 45.01 mm
|
|
MAG_L = 1.772 * 25.4; // strip length ≈ 45.01 mm
|
|
@@ -58,7 +59,7 @@ MAG_TOL = 0.2; // per-side clearance for strip fit
|
|
|
// --- Derived Dimensions ---
|
|
// --- Derived Dimensions ---
|
|
|
cav_w = DISP_W + TOL * 2;
|
|
cav_w = DISP_W + TOL * 2;
|
|
|
cav_d = DISP_D + TOL * 2;
|
|
cav_d = DISP_D + TOL * 2;
|
|
|
-case_w = WALL + DISP_W+ TOL; // ends at display X+ face; cap retains display
|
|
|
|
|
|
|
+case_w = WALL + DISP_W + (TOL * 1.5); // ends at display X+ face; cap retains display
|
|
|
case_h = WALL + DISP_T + LIP;
|
|
case_h = WALL + DISP_T + LIP;
|
|
|
case_d = WALL * 2 + cav_d;
|
|
case_d = WALL * 2 + cav_d;
|
|
|
|
|
|
|
@@ -139,6 +140,31 @@ module epd_case() {
|
|
|
// Cap wall recess — step in y+ face at X+ end so cap sits flush
|
|
// Cap wall recess — step in y+ face at X+ end so cap sits flush
|
|
|
translate([case_w - CAP_ENGAGE + CAP_PAD, case_d - CAP_WALL - CAP_TOL, -0.01])
|
|
translate([case_w - CAP_ENGAGE + CAP_PAD, case_d - CAP_WALL - CAP_TOL, -0.01])
|
|
|
cube([CAP_ENGAGE - CAP_PAD + 0.02, CAP_WALL + CAP_TOL + 0.01, case_h + 0.02]);
|
|
cube([CAP_ENGAGE - CAP_PAD + 0.02, CAP_WALL + CAP_TOL + 0.01, case_h + 0.02]);
|
|
|
|
|
+
|
|
|
|
|
+ // Bevel all 4 exterior edges of X+ face — guides cap onto case during installation
|
|
|
|
|
+ // Y± faces are recessed by (CAP_WALL + CAP_TOL); Z- face is recessed by CAP_WALL
|
|
|
|
|
+ translate([0, 0, -0.01])
|
|
|
|
|
+ linear_extrude(case_h + 0.02)
|
|
|
|
|
+ polygon([[case_w - CAP_BEVEL, CAP_WALL + CAP_TOL - 0.01],
|
|
|
|
|
+ [case_w + 0.01, CAP_WALL + CAP_TOL - 0.01],
|
|
|
|
|
+ [case_w + 0.01, CAP_WALL + CAP_TOL + CAP_BEVEL]]);
|
|
|
|
|
+ translate([0, 0, -0.01])
|
|
|
|
|
+ linear_extrude(case_h + 0.02)
|
|
|
|
|
+ polygon([[case_w - CAP_BEVEL, case_d - CAP_WALL - CAP_TOL + 0.01],
|
|
|
|
|
+ [case_w + 0.01, case_d - CAP_WALL - CAP_TOL + 0.01],
|
|
|
|
|
+ [case_w + 0.01, case_d - CAP_WALL - CAP_TOL - CAP_BEVEL]]);
|
|
|
|
|
+ translate([0, case_d + 0.01, 0])
|
|
|
|
|
+ rotate([90, 0, 0])
|
|
|
|
|
+ linear_extrude(case_d + 0.02)
|
|
|
|
|
+ polygon([[case_w - CAP_BEVEL, CAP_WALL - 0.01],
|
|
|
|
|
+ [case_w + 0.01, CAP_WALL - 0.01],
|
|
|
|
|
+ [case_w + 0.01, CAP_WALL + CAP_BEVEL]]);
|
|
|
|
|
+ translate([0, case_d + 0.01, 0])
|
|
|
|
|
+ rotate([90, 0, 0])
|
|
|
|
|
+ linear_extrude(case_d + 0.02)
|
|
|
|
|
+ polygon([[case_w - CAP_BEVEL, case_h + 0.01],
|
|
|
|
|
+ [case_w + 0.01, case_h + 0.01],
|
|
|
|
|
+ [case_w + 0.01, case_h - CAP_BEVEL]]);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|