52 lines
3.0 KiB
Markdown
52 lines
3.0 KiB
Markdown
# Assembly joint selection batch
|
|
|
|
Batch: `8d028b2604665ddf9b329d91`
|
|
|
|
Scope: Assembly_CreateJointAngle, Assembly_CreateJointBall,
|
|
Assembly_CreateJointBelt, Assembly_CreateJointCylindrical.
|
|
|
|
The existing AssemblyRuntimeProbe.cpp handler maps these commands to desktop
|
|
JointObject indices 8, 4, 12, and 2. It resolves component references, creates
|
|
native JointObject features, sets supported properties, solves, recomputes,
|
|
and commits or aborts the document transaction. This implementation is reused.
|
|
|
|
The workbench shell already passes document selection to the dispatcher.
|
|
Assembly selection preparation now lives in assembly-desktop-adapter.ts,
|
|
wired into that dispatcher. Empty selection subelement arrays now produce a
|
|
whole-component reference instead of dropping the selected component.
|
|
Explicit references retain precedence. The four selected commands validate
|
|
reference shape, document ownership, assembly name, and commit-only action
|
|
before dispatch. Component resolution and distinct-part checks remain native.
|
|
The family record type now declares the existing args transport.
|
|
|
|
Follow-up: the four selected commands now normalize omitted or empty
|
|
subelements in explicit references as well as tree selections. The native
|
|
handler applies the same normalization for direct family requests, validates
|
|
object names, and still resolves both references through getComponentReference
|
|
before creating the real joint. Null, non-list, multiple-path and non-string
|
|
subelement values remain invalid. Other joint types retain their reference
|
|
contract. No geometry or solver implementation is replaced.
|
|
|
|
The selected native joint results now include all applicable properties present
|
|
on the created joint, including defaults, and the two components' placements
|
|
read from the document after solve/recompute. Position and quaternion values
|
|
are serialized from FreeCAD objects; the Web layer does not calculate them.
|
|
The wired Assembly response adapter requires native object identity, properties,
|
|
references and finite component placements before reporting a complete result.
|
|
These fields travel through the existing family Worker/Facade response to the
|
|
mounted workbench result view. Build/sync must deploy the updated native module
|
|
with the adapter; older module results without placements are rejected.
|
|
This follow-up ran no build, gate, verification, hash or Git checks, as requested.
|
|
|
|
Verification boundary: the project TypeScript check could not start because
|
|
web/node_modules/.bin/tsc is absent. No build, sync, or business acceptance was
|
|
run; these belong to the outer pipeline. Runtime verification must cover empty
|
|
and omitted subelements, two subelements selected through an assembly root,
|
|
explicit references, cross-document rejection, and real native joint results
|
|
for all four types. This note is not business acceptance.
|
|
|
|
Remaining workflow boundary: the native route accepts completed joint inputs;
|
|
interactive connector preview and task cancellation remain unavailable and
|
|
are rejected. An existing Assembly runtime document and assembly name are
|
|
required. Full desktop task-dialog parity is not claimed.
|