fix(doc): designs saved before format 14 keep their piece names (#136)
Pieces a cut splits a body into are named after their faces since names follow history (lineage::order_lumps), so they keep their body names when an upstream edit moves the cut. The kernel's shell order named them before, and the two orders can differ: a slot along X through a 40x30x10 block swaps Body1 and Body1 (1). A design saved by an older build stores body names meaning the old order (fillet and chamfer bodies, targets, participants, materials, appearances, joints), so it would act on the other piece. Each feature now says which order names its pieces (Feature::shell_piece_order). The v13 to v14 step sets it on every saved feature, so an older design evaluates as it was saved; features made from now on, in new or old designs, name their pieces after their faces. The corpus gains split-body-pieces, saved by v0.3.2: a fillet, a chamfer and an appearance refer to the two pieces by body name. Without the setting the two pieces swap names (the corpus test fails); with it they stay as saved. Migration tests that compared an upgraded design with the original now expect the setting on its features. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J53sR6gEaVt56soFDpTck8
This commit is contained in:
1 parent
cc668668ce
commit
a9efae864d
11 files changed
+710
-5
No files matched your search
@@ -51,7 +51,8 @@ curve the profile segment lies on exactly; nothing is sampled.
|
||||
reported when only geometry confirms it).
|
||||
- **Lumps.** When a cut leaves a body in pieces, the whole is named first, so pieces of one face in
|
||||
different bodies are told apart, and the bodies (`Bar`, `Bar (1)`) are assigned in the order of
|
||||
their least face name, not the kernel's shell order (which an upstream edit can swap).
|
||||
their least face name, not the kernel's shell order (which an upstream edit can swap; see
|
||||
[Older designs](#older-designs)).
|
||||
|
||||
Names are worked out lazily, on first request, and shared by a body's clones.
|
||||
|
||||
@@ -87,6 +88,11 @@ its centre, its inner circle). Migrating such a design marks those names (`?F2:t
|
||||
are found among the names geometry gives, as the build that saved them found them: an older design
|
||||
evaluates as it was saved. Picking the face again stores its exact name.
|
||||
|
||||
Their features also keep naming the pieces they split a body into in the kernel's shell order
|
||||
(`Feature::shell_piece_order`, set by the migration): the body names stored after them (fillet and
|
||||
chamfer bodies, targets, participants, materials, appearances, joints) mean the pieces in that
|
||||
order. Features added later name their pieces after their faces.
|
||||
|
||||
## Not done yet
|
||||
|
||||
- Certificates (`FaceSource`, the strict attachment identities behind sketches on faces and
|
||||
|
||||
Reference in new issue
Block a user