A profile traced over a face sketch's projected boundary left the extrude's caps and sides without an exact planar source, so a sketch or offset plane on the new top face was refused. The drawn curve is now the edge's source where it covers a projection. Clearer fixed-plane message; regression tests in the engine, UI harness and design corpus, plus a corpus-wide flat-face attachment check (known gaps under #491-#495). Fixes #489 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
78 lines
5.2 KiB
Markdown
78 lines
5.2 KiB
Markdown
# Face-attached sketches
|
|
|
|
New face-attached sketches store the selected source body, its creating feature, an exact
|
|
face certificate, and the source and author occurrence paths. The sketch's picked origin
|
|
and orientation are stored in the source face's canonical plane. Editing the source height
|
|
or moving its placement therefore updates the sketch plane while preserving its local
|
|
geometry and dimensions.
|
|
|
|
Supported planar sources are exact Box faces, untapered New Body and Join Extrude caps and
|
|
straight sketch sides, and planar faces of immutable STEP imports. Extrude caps also identify their
|
|
outer boundary and holes by source curve IDs. Reordering profiles cannot substitute another
|
|
profile's cap. A profile drawn over a face sketch's projected boundary (a rectangle
|
|
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.
|
|
|
|
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>`)
|
|
and finds it again after every rebuild, unfold and refold. If that panel no longer exists the
|
|
sketch reports a lost attachment, as above. See the sheet metal guide.
|
|
|
|
## Create and repair
|
|
|
|
Select a supported planar face and create a sketch. The desktop selection supplies the exact
|
|
body and face index, including its occurrence path. Command callers can use
|
|
`sketch.create` with `plane: {face: [x,y,z], body: "world body key", index: face_index}`;
|
|
the point is in world coordinates. A point-only face request must find a unique supported
|
|
source. An unsupported or ambiguous request fails with an explanation instead of creating
|
|
an attachment with weaker identity.
|
|
|
|
When a source is suppressed, deleted, replaced, or loses its certificate, the sketch reports
|
|
a lost attachment. Its saved plane is only a visible repair guide: it does not produce a
|
|
healthy solved sketch or let downstream features build at a substitute face.
|
|
|
|
Use **Redefine Sketch Plane** to select a new supported face explicitly. The draft can be
|
|
reviewed before applying it; cancellation leaves the existing attachment intact. Reattachment
|
|
keeps existing sketch geometry, IDs, and dimensions. When the selected source changes, its
|
|
previous automatically projected boundary becomes ordinary geometry on the new plane;
|
|
it is not replaced by a newly projected boundary. Rebinding to the same certified source
|
|
retains its live boundary. Manually created projection links retain their own sources.
|
|
|
|
Choose an explicit fixed plane to detach the sketch. This preserves its current local
|
|
geometry and dimensions and converts only its automatically projected face boundary to
|
|
ordinary geometry. Manual projection links remain attached to their own sources. A fresh
|
|
fixed-plane sketch has no live face auto-projection.
|
|
|
|
## Occurrences, pending positions, and files
|
|
|
|
The selected source occurrence and the sketch's author occurrence are separate identities.
|
|
Repeated instances therefore cannot silently switch an attachment to the first placement.
|
|
A missing author path also requires explicit repair. Reattachment and creation capture
|
|
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
|
|
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
|
|
fixed plane. Imported attachments also bind the exact STEP payload digest, item entity, and
|
|
face entity: replacing the payload cannot reuse an old attachment merely because a face
|
|
index or shape looks the same.
|
|
|
|
## Profiles generated by face modelling commands
|
|
|
|
Extrude, Revolve, and Press Pull can generate an internal sketch from a selected planar face. Supported
|
|
sources use the same certified attachment and live boundary as an ordinary attached sketch.
|
|
For modified faces without a construction certificate, these commands retain their historical
|
|
named-face and linked-boundary behaviour through a private compatibility path. Initial capture
|
|
uses the selected body and face index. These helper sketches do not have the stronger saved
|
|
identity guarantee of a certified attachment. This compatibility path does not change the
|
|
requirements for creating an ordinary face-attached sketch.
|