Files
FreeCADWasmDev/docs/current/structure-20260915.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

2.7 KiB

Native Part and variable-set workflows

Implemented

  • Std_Part creates a real App::Part, sets the native document Tip, and follows CommandStructure.cpp selection grouping behavior (group selected objects and their dependencies only when more than one object is selected). The Web task displays actual container members. The newly created Part is retained as the active container for subsequent Web group operations.
  • Std_VarSet creates a real App::VarSet, adds it to the single selected native group when applicable, selects it and opens its variable controls. Variables are native dynamic properties, not a parallel JavaScript data model.
  • The variable task supports String, Bool, Integer, Float, Length and Angle properties, native expression assignment, editing and removal. Built-in/non-dynamic and read-only properties cannot be overwritten. Unsupported existing property types remain visible without an editable value control.
  • All mutation actions use native transactions and recomputation; failures before commit abort the transaction. Native documents, properties and expressions continue to use the existing FCStd/OPFS save workflows.
  • Both PartBox and DocumentProbe document owners use their existing view endpoints. The response checks object identities, owner, document and property values. Scene refresh failures do not invite repeating an already committed creation.

Sources reused: src/Gui/CommandStructure.cpp, src/App/VarSet.cpp, PropertyContainerPyImp.cpp, the existing group task, native view facade and FreeCAD application initialization. Application::initWebCore() already registers Part and VarSet through initTypes(); no new WASM target or geometry implementation is needed.

Delivery

The PartBox and DocumentProbe targets were incrementally compiled/linked. The final frontend build succeeded in 1.52 seconds (an earlier build in this turn took 6.12 seconds). Embedded Python syntax was compiled without running business operations. No automatic business/browser/regression tests were run.

structure-pipeline-20260915.json reports two records ready. Its 13.184-second handoff consists of module registry 0.106 s, capability registry 8.845 s, link preflight 0.044 s, already-built target handoff 0.210 s, artifact sync 2.878 s, and completion bookkeeping 1.101 s. The 0.210-second handoff is not the preceding native compilation duration.

Snapshot: 1416/1452 registered routes, 36 pending. Since the prior snapshot, the scheduler also recorded a separate BIM_Welcome implementation outcome in cycle 8933. Subsequent ineffective rounds remain recorded; this work does not establish that overall unattended throughput has recovered or that the full migration is complete.