Fix blender_cross_section. Three independent bugs that combined to produce
unreadable cross-section renders, especially on small or rounded parts.
- Cutter cube placement was wrong: its near face landed (extent+10)/4 mm
past the requested cut position. For parts ≤ ~10 mm wide at percents near
50%, the cutter sat entirely beyond the object so the boolean DIFFERENCE
removed nothing and the render returned the uncut silhouette.
- Camera distance fell back to whole-scene bounds, but the cutter cube
(sized to span past max_val on the cut axis) dominated those bounds. On
scenes with a small target, the camera ended up ~100 mm away from a 8 mm
part. Cuts now use the dup mesh's own bbox for tight framing.
- Other scene meshes weren't hidden during the render and leaked into the
camera frame. Now uses isolate_objects([]) like the other render handlers.
- handle_cross_section did not call _ensure_scene_lighting(), so cuts on a
freshly cleared scene rendered black. Added.
- The default scene sun shines straight down, so cut faces with horizontal
normals (X- and Y-axis cuts) had near-zero diffuse light. Added a
camera-aligned SUN fill light at energy=1.0 — tuned to keep the cut face
visible without flattening the directional shading gradient that conveys
3D form.
cross_section_gallery is fixed transitively (delegates to cross_section).
Also adds CLAUDE.md note about the addon-install-vs-repo gotcha that
burned several iterations during development of this fix.