// Waveshare GDEY0583T81 5.83" ePaper Display Case // Display slides in from Y-; no Y- side wall // FPC cable exits toward Y+ then bends 90° toward Z- through backplate slot include use /* [Preview] */ SHOW_DISP = true; EPD_EXPLODE = 0; // mm to pull display mockup toward Y- for inspection module epd_case() { color("#004B49") { difference() { // Solid case body — open at Y=0 (no Y- wall) by construction rounded_box(epd_case_w, epd_case_d, epd_case_h, CORNER_R); // Display cavity: slides in from Y=0; BEZEL_Y extends depth so display seats at Y=BEZEL_Y translate([WALL, -0.01, WALL]) cube([epd_cav_w, BEZEL_Y + epd_cav_d + DISP_Y_EXTRA + 0.01, DISP_T + TOL]); // Active area window: straight portion + chamfered top edges // Extends 0.01 mm into the display cavity to avoid a coplanar face with the mockup translate([epd_win_x, epd_win_y, WALL + DISP_T - 0.01]) cube([epd_win_w, ACT_D, LIP - CHAM + 0.02]); hull() { translate([epd_win_x, epd_win_y, epd_case_h - CHAM]) cube([epd_win_w, ACT_D, 0.01]); translate([epd_win_x - _cham_xy, epd_win_y - _cham_xy, epd_case_h]) cube([epd_win_w + 2*_cham_xy, ACT_D + 2*_cham_xy, 0.01]); } // FPC cable slot — quarter-cylinder swept volume of cable arc from horizontal to vertical. // Arc center at (Y=DISP_D, Z=WALL−FPC_BEND_R); first-quadrant slice (Y≥DISP_D, Z≥arc_center_z). // Creates opening through backplate floor and clears Y+ wall material for bend. translate([_fpc_x1, BEZEL_Y + DISP_D + DISP_Y_EXTRA, WALL - FPC_BEND_R]) intersection() { rotate([0, 90, 0]) cylinder(r=_fpc_ro, h=_fpc_xw, $fn=32); cube([_fpc_xw, _fpc_ro + 1, _fpc_ro + 1]); } }} // Display mockup — seated at case origin; EPD_EXPLODE pulls it toward Y- if ($preview && SHOW_DISP) color("#F0F0F0") translate([WALL + TOL, BEZEL_Y + DISP_Y_EXTRA - EPD_EXPLODE, WALL]) GDEY0583T81(fpc_bend_start=0, fpc_bend_r=FPC_BEND_R, fpc_post_clip=2); } epd_case();