Sketch on cut walls, chamfers, pattern copies, join-merged sides and split faces (#625)
A flat face that no construction certificate names on its own now attaches by its exact history name (a new lineage face certificate): cut walls and floors, chamfer faces, each pattern or mirror copy, side walls a Join merged, and the pieces a later feature split a face into. Construction certificates still come first; a seed keeps its certificate when it is patterned. Two flush extrudes of one outline joined end to end keep their exact history in the prism boolean. Face sketch 52% -> 71%, offset plane 52% -> 71%, press-pull/extrude from face 41% -> 60% in the action matrix; baseline blessed. Fixes #491, fixes #492, fixes #493, fixes #557. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
27f20f97cb
commit
6d5df4b9b3
18 files changed
+786
-381
No files matched your search
@@ -13,12 +13,28 @@ profile's cap. A profile drawn over a face sketch's projected boundary (a rectan
|
||||
traced over the whole face, or a strip whose sides lie on the face's edges) is identified by
|
||||
the drawn curves: where a drawn curve and a projected one cover the same edge, the drawn curve
|
||||
is the source. Two drawn curves, or two projections, over one edge remain ambiguous. Curved surfaces cannot host a planar sketch through this workflow.
|
||||
Edited surfaces without retained construction provenance, ambiguous sources, and unsupported
|
||||
generators require an explicit fixed plane instead. A face that a Join merged from two features' coplanar
|
||||
faces belongs to neither, so it also needs a fixed plane. The error says why, and the Create
|
||||
Sketch dialog then offers **Use fixed plane**, which places the sketch on that face's current
|
||||
plane without following later changes. A nearby or parallel face is never used
|
||||
to repair a new attachment automatically.
|
||||
|
||||
Every other flat face is attached by its exact history name (a `lineage` certificate) when it
|
||||
has one: the persistent name the kernel's face history gives it, which says what made the face
|
||||
and follows it through every later feature. That covers a Cut's walls and floor
|
||||
(`F5:side:l1`, `F5:top`), a chamfer face (`F7:blend:…`), each copy a pattern or mirror makes
|
||||
(`F4:[email protected]`: the seed's face and the copy's instance), a side wall a Join merged from two
|
||||
features (named after the first, answering to the other), and the pieces a later feature split
|
||||
a face into (all pieces of one name on one oriented plane are that face). A lineage face's
|
||||
plane is its current exact plane, measured in a frame that depends on the plane alone: its
|
||||
origin where the definition origin projects onto it, its x axis the first of the definition's
|
||||
X, Y and Z axes not steep to it (`|cos| < 0.6`), projected. The construction certificates
|
||||
above still come first; a lineage certificate is used where none names the face alone. Copies
|
||||
carry their seed's construction certificate, so a sketch attached to the seed before it was
|
||||
patterned keeps resolving to the seed: of the faces carrying one certificate, the producing
|
||||
feature's own face is the one whose name is not a copy's.
|
||||
|
||||
Faces whose history is not exact (Offset Face, the plastic features, sheet metal rims, faces a
|
||||
feature rebuilt without reporting its history), ambiguous sources, and the pieces of a face
|
||||
split on purpose with Split Face (each piece is its own face) require an explicit fixed plane
|
||||
instead. The error says why, and the Create Sketch dialog then offers **Use fixed plane**,
|
||||
which places the sketch on that face's current plane without following later changes. A
|
||||
nearby or parallel face is never used to repair a new attachment automatically.
|
||||
|
||||
The flat faces of a sheet metal body are the exception: they have no construction
|
||||
certificate, so a sketch on one attaches to its panel by name (`sheet:<body>:<panel>:<side>`)
|
||||
@@ -58,7 +74,9 @@ A missing author path also requires explicit repair. Reattachment and creation c
|
||||
pending positions only on the involved source and author paths. Failed commands restore
|
||||
those pending positions; undo restores the previous attachment and placement state.
|
||||
|
||||
File format 11 introduced these optional attachments, which format 12 also preserves. Existing designs with face references
|
||||
File format 11 introduced these optional attachments, which format 12 also preserves. Format 16
|
||||
adds the `lineage` certificate (older readers ask for an update rather than meeting an unknown
|
||||
kind); anchors saved with construction certificates resolve as before. Existing designs with face references
|
||||
without an attachment retain their legacy geometry and lookup behavior when opened; they
|
||||
are not silently upgraded. Redefining such a sketch onto a supported selected face creates
|
||||
the stronger attachment. Unsupported legacy geometry can instead be retained on an explicit
|
||||
|
||||
Reference in new issue
Block a user