From c4320e2239f211b4c6916e052e30d92da7980c63 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 11 Jul 2026 09:34:26 +0200 Subject: [PATCH] revert(case): keep the bracket a solid frame (no FPC notch) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverts the notch added in 6af959f. The flex U-turns off the glass's left edge and returns inboard through the ~1 mm foam gap above the bracket, then drops into the cavity through the aperture — it never crosses the bracket plane, so the relief in the body's pocket wall is enough. A solid frame also clamps that edge more evenly. Comment added so the notch doesn't get reintroduced. --- hardware/case/README.md | 2 +- hardware/case/renders/bracket.png | Bin 20548 -> 20407 bytes hardware/case/typoena-case.scad | 15 ++++++--------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/hardware/case/README.md b/hardware/case/README.md index 2706c9d..688d4c9 100644 --- a/hardware/case/README.md +++ b/hardware/case/README.md @@ -101,7 +101,7 @@ foam+bracket; the bracket is what stops it dropping _into_ the cavity ![Midline section: glass clamped between the front lip and the rear foam + bracket; the internal FPC clearance is hidden below the left bezel, standoffs on the cavity floor](renders/section.png) -![The screwed bracket — four corner holes, window clears the active area, and a gap in the left edge lets the FPC fold back into the cavity](renders/bracket.png) +![The screwed bracket — four corner holes, window clears the active area](renders/bracket.png) ### Boards (the baseplate is the chassis) diff --git a/hardware/case/renders/bracket.png b/hardware/case/renders/bracket.png index eb0671ea3fbd18cde3e45d24f71b5a048bc58f2d..d49b555fb2405de4dee0ca54ec9a7ea8cd23094d 100644 GIT binary patch literal 20407 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 literal 20548 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

D0MU!}{LWBG7I^yX@V^@AJUPE5 zfdhg_4pKH#gW<3{Iqj1TpXtQkZavfAnuD{$Jo7ozL~>Tdn;6;%fHk6=!Cex9nbXOf z8ue<8h-$6)!mnybTW3T`7P?HMLtKLo#iEHD)EV8ym%hD|IE|y>J-$zze!uXj0+m*h zH@w#4PQ1&7(G%K%gra-uvq$OO!utN;ASW!ayZqYuz4tC-Hvqqio`%MG;0t&+*YTAu88(rt`V{EMV}h| zudRf15x5~3rQ5{6u!}Ae;xaYH5;>+@d*6=$VKisLhU3lD*kEG23@Brn7xm9g(;X^q zMtyIjJ?^aWIXh$EQ8N8C@_nB3KGbF4z01$7ViuOq$f7mZu-v$Jw~9PZN~Qy1z!$<3kjD z(fyyrPr*y(dS={S2lvC|qR?p5U_PFI780!ls(w9_vhLrPzQMWob2HDpAjm*0kn;S! zl|QR*gK+KsMqZwO7UFviK~s8g>c3y(#=->*>YM=2pB?>w1kEzlgP(bLL|!6)3*gU= z7hzg3#YGGH<8X`4wcs3!ytCjNiO~kJn3H~=w33&U-LV1(B!~NecLPl2d=eO AzW@LL diff --git a/hardware/case/typoena-case.scad b/hardware/case/typoena-case.scad index 5731d9f..d126049 100644 --- a/hardware/case/typoena-case.scad +++ b/hardware/case/typoena-case.scad @@ -230,17 +230,14 @@ module case_body() { // =========================================================================== module bracket() { ow = P_w + 18; oh = P_h + 18; + // Solid frame — no FPC notch on purpose. The flex U-turns off the glass's + // left edge and returns INBOARD through the ~1 mm foam gap ABOVE this bracket + // (the bracket starts 1 mm deeper), then drops into the cavity through the + // open aperture to the breakout — it never crosses the bracket plane. The + // only FPC relief lives in the body's left pocket wall (see screen_cuts()). difference() { linear_extrude(bracket_t) - difference() { - rrect(ow, oh, 4); - rrect(A_ap_w+2, A_ap_h+2, 2); - // ribbon (FPC) relief: a gap in the LEFT frame member, lined up - // with the body's FPC clearance so the flex can fold back through - // the bracket plane into the cavity instead of being pinched - translate([-(ow + A_ap_w+2)/4, 0]) - square([(ow - (A_ap_w+2))/2 + 4, fpc_w], center=true); - } + difference() { rrect(ow, oh, 4); rrect(A_ap_w+2, A_ap_h+2, 2); } for (bx=[-(P_w/2+5), P_w/2+5], by=[-(P_h/2+5), P_h/2+5]) translate([bx, by, -1]) cylinder(h=bracket_t+2, r=1.45); // M2 clear }