Files
FreeCADWasmDev/docs/current/cam-selected-command-boundaries.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

38 lines
2.3 KiB
Markdown

# CAM batch 59b8fbac81eb1e597e25c4bd
Eleven selected desktop commands are not implemented by the current native
desktop dispatcher. Their registrations led to the generic CAM fallback, which
created an empty Path::FeaturePython in a temporary document, closed that document,
and reported success. Those registrations have been removed. These requests now
remain unimplemented instead of reporting a completed machining workflow.
The mounted desktop dispatcher already calls the CAM adapter. The adapter now
applies its active-task and malformed-selection guards to Engrave, Helix,
MillFacing, Pocket3D, Pocket_Shape, Probe, and Profile, and rejects selections
from another document for this batch.
Remaining implementation boundaries:
- Engrave, Helix, MillFacing, Pocket3D, Pocket_Shape, Probe, and Profile need their
desktop operation proxies, persistent Job and ToolController ownership, base
geometry selection, parameters, recompute, and real generated toolpaths.
- OperationCopy needs existing operation selection and native transactions that
preserve Job ownership and operation properties.
- Post and PostSelected need desktop postprocessor execution, Job ordering and
selected-operation semantics, and delivery of the resulting output file.
- SelectLoop needs native topology traversal and application selection updates.
OpActiveToggle now has a dedicated native branch calling CAMDesktopCommands.h,
compiled as part of the existing CAM runtime translation unit. It resolves the
existing document and selected Path operations, validates their Active properties,
deduplicates selection, toggles each native property inside a transaction, and
recomputes before committing. Failure aborts the transaction; the document remains
open. The existing React shell, desktop dispatcher, family facade and CAM worker
carry documentId and selection to this branch and propagate its native result.
This implementation has not been built or accepted by the outer pipeline.
New command handlers belong in CAMDesktopCommands.cpp/.h linked into the existing
CAM module target, per the packet's oversized-runtime constraint. Do not restore
registrations until real handlers exist. No business acceptance is claimed.
Build, artifact sync, and runtime/business acceptance remain with the outer pipeline.