mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-03 10:35:58 +00:00
kernel: IGES trimmed surfaces close their loops and split into separate bodies
Three defects in restating trimmed surfaces (144/143) as STEP, kernel-agnostic: - A boundary loop is one closed curve (IGES 5.3 composite curve: each piece ends where the next starts), but each piece's ends were sewn into vertices by distance alone, so pieces that miss by more than the sewing tolerance left the loop open and the face was dropped (#3845). Surfaces are now read first and sewn after: every meeting point of two pieces is one vertex (union of the two), the STEP reader then carries the distance as the vertex's tolerance. - With no parameter-space curve to give the start, a composite whose first piece is written end to start kept that direction, so the second piece did not connect (#3913). The first piece now runs from its end away from the second. - All sewn surfaces were written as one shell, so two separate closed boxes came in as one body of two shells that SMLib's check refuses (#3972). Each connected set of faces is now its own shell and body (Body1, Body2, ...); a shell writes only the vertices its edges use, in the sewer's order. (not built: base in progress) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt
This commit is contained in: