Files
FreeCADWasmDev/docs/current/web-commandfeat-d937ec7eef2892d2286973f5-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

1.8 KiB

CommandFeat implementation boundaries

Batch: d937ec7eef2892d2286973f5.

Std_Recompute: implementation_ready / pending user use. The empty native activation is preserved, matching CommandFeat.cpp:62; it does not create macro directories or hydrate persisted macro files. The actual route catalog and generator now recognize its existing PartBox family handler.

Std_SendToPythonConsole: implementation_ready / pending user use. Selection entries for the same document object are combined with their subelements; multiple different objects and stale objects are rejected. The existing native handler binds real objects and geometry in __main__. On success the adapter opens the existing Std_CommandLine owner workflow in PartBox, which shares that namespace. Catalog and generator registration follows this actual family handler and console activation path.

Remaining work:

  • Std_RandomColor is accepted by the native macro handler's name filter, but has no matching Python branch. Its desktop operation at CommandFeat.cpp:84 selects colors from CET::R1, changes diffuse material colors, enables link material overrides, and also colors immediate group children for App::Part and App::DocumentObjectGroup. It requires a nonempty selection and wraps the operation in a command transaction. Connect this behavior to the existing native document-view material owner before registering it; the name filter alone is not implementation.
  • Locate the persisted document-view material interface and desktop CET::R1 palette include, then connect random color mutation and structured scene updates through that owner. Add Random Color to commandFeatCommands and its behavior discovery only once this implementation exists.

The batch remains incomplete because Random Color is not implemented. Outer pipeline owns incremental build, sync, and route generation.