geometry: a partition the kernel can only nudge off its plane is refused (#427)

The kernel's last-resort boolean retry moves the tool 1.3 µm and turns it
2 µrad. For a partition that puts the cut beside the face it was meant to
run along and leaves a cell bounded by slivers (the open boundary at x = 130
on the crank half). halves() now refuses a result-altering retry and names it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
jyvikoandClaude Opus 5.5 authored and Irakli Kourtis committed 2026-10-16 00:20:02 -04:00
1 parent 1af87f1f98
commit 3d38753cad
4 files changed
+56 -8

No files matched your search

+2 -1
View File
@@ -77,7 +77,8 @@ Before the first mesh command:
- **Curved splits are allowed.** A cut does not have to be a plane: use a cylindrical or offset
surface (a ring around a boss, an offset of a fillet) when a plane would create slivers.
- **Never cut along an existing face** (a plane coincident with a face within tolerance leaves
micrometre slivers, #384) and never through the axis of a small hole (degenerate tessellation at the
micrometre slivers, #384; where the kernel can only make it by nudging its cut off the plane,
`geometry.partition` refuses it, #427) and never through the axis of a small hole (degenerate tessellation at the
hole edge). Offset the cut to just outside the feature instead.
- **Keep cuts consistent across touching bodies** so their meshes can match, or tie them
deliberately (`interaction.tie`; linear faces only today).