Compare commits

...

2 Commits

Author SHA1 Message Date
Julien Calixte
32e9623411 chore(case): expand just render to regenerate every preview
Was only rendering assembled + body, which let bracket.png drift stale.
Now covers all 11 views. Recovered the two bespoke cameras that were
never recorded: nameplate (straight-on body) and front34 (low back 3/4).
2026-07-11 09:34:34 +02:00
Julien Calixte
c4320e2239 revert(case): keep the bracket a solid frame (no FPC notch)
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.
2026-07-11 09:34:26 +02:00
9 changed files with 25 additions and 15 deletions

View File

@@ -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)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -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
}

View File

@@ -3,6 +3,11 @@
scad := "case/typoena-case.scad"
# shared OpenSCAD flags (everything but the camera + the part to show)
base := "--imgsize=1100,825 --colorscheme=Tomorrow --viewall --autocenter"
# the standard 3/4 camera used by most previews (rotate 62° tilt, 22° azimuth)
std_cam := "--camera=0,0,0,62,0,22,0"
# list available recipes
default:
@just --list
@@ -11,12 +16,20 @@ default:
open:
open -a OpenSCAD {{scad}}
# regenerate the preview PNGs in case/renders/
# regenerate every preview PNG in case/renders/
render:
cd case && openscad -o renders/assembled.png --imgsize=1100,825 --colorscheme=Tomorrow \
--camera=0,0,0,62,0,22,0 --viewall --autocenter -D 'show="assembled"' typoena-case.scad
cd case && openscad -o renders/body.png --imgsize=1100,825 --colorscheme=Tomorrow \
--camera=0,0,0,62,0,22,0 --viewall --autocenter -D 'show="body"' typoena-case.scad
cd case && openscad -o renders/assembled.png {{base}} {{std_cam}} -D 'show="assembled"' typoena-case.scad
cd case && openscad -o renders/body.png {{base}} {{std_cam}} -D 'show="body"' typoena-case.scad
cd case && openscad -o renders/bracket.png {{base}} {{std_cam}} -D 'show="bracket"' typoena-case.scad
cd case && openscad -o renders/baseplate.png {{base}} {{std_cam}} -D 'show="baseplate"' typoena-case.scad
cd case && openscad -o renders/print.png {{base}} {{std_cam}} -D 'show="print_plate"' typoena-case.scad
cd case && openscad -o renders/section.png {{base}} {{std_cam}} -D 'show="section"' typoena-case.scad
cd case && openscad -o renders/plan.png {{base}} {{std_cam}} -D 'show="plan"' typoena-case.scad
cd case && openscad -o renders/plan-up.png {{base}} {{std_cam}} -D 'show="plan_up"' typoena-case.scad
cd case && openscad -o renders/plan-down.png {{base}} {{std_cam}} -D 'show="plan_down"' typoena-case.scad
# two bespoke cameras: the straight-on nameplate hero, and the low back 3/4
cd case && openscad -o renders/nameplate.png {{base}} --camera=0,0,0,62,0,0,0 -D 'show="body"' typoena-case.scad
cd case && openscad -o renders/front34.png {{base}} --camera=0,0,0,72,0,200,0 -D 'show="assembled"' typoena-case.scad
# export STLs for the three printable parts
stl: