3.1 KiB
Import desktop batch 52b3cac3c5ef0b2cd036c72a
Implemented the selected Import_Iges, Import_ReadBREP and Part_ImportStep commands in the current native document. The primary workspace exposes format-specific file tasks with accept/cancel and replacement of the selected imported shape. The desktop dispatcher uses the same module adapter and existing Part document worker. Native OCCT readers produce persistent Part::Feature geometry; BREP additionally accepts the desktop .rle alias. The native owner checks command/extension compatibility and replaces shapes in one undoable transaction. Pending imports continue to use the existing commit/rollback mechanism.
Reused the existing DocumentProbe, Part facade, worker, display bridge and FCStd/OPFS store. No new geometry backend or fixture document was introduced into the UI. Legacy GUI strings name ImportStep/ImportIges classes; the supplied Part headers expose import functions instead. This delivery uses current persistent Part::Feature shapes, not automatic source-linked reimport. Assembly/color import and the IFC semantic contract were not changed or revalidated.
Validation performed:
- Scoped incremental
FreeCADWebDocumentProbebuild succeeded; matching JS/WASM/worker artifacts copied atomically toweb/public/kernel. - Project TypeScript check and incremental Vite build succeeded; build output synchronized public assets into the local build directory. Nothing was published.
tools/run_business_acceptance.py --reuse --module Import --ids Import:desktop:Import_ReadBREPpassed: BREP evidence.tools/run_business_acceptance.py --reuse --module Import --ids Import:desktop:Import_Iges Import:desktop:Part_ImportSteppassed: IGES and STEP evidence.
Each selected command has native and primary-browser execution. Native inputs have dimension-derived volumes 24 and 210, with extension variations, missing/corrupt file rejection, transaction cancellation, replacement, undo/redo, unchanged existing geometry, rendered native mesh, FCStd recovery after deleting source files and subsequent placement editing. Browser cases cover a pre-existing box, task cancel, corrupt upload recovery, successful import/selection, replacement and OPFS save/reload. Passing statuses were written only by the acceptance runner.
Initial first-acceptance failures were harness omissions: mesh output was not requested, then the new collapsed Box task was not opened. Both were corrected, with BREP isolated before continuing to the two remaining formats. No old successful requirement or IFC evidence was refreshed.
No selected requirement remains blocked. Next source anchors, if a new import defect is selected: DocumentProbe.cpp importShape branch, web/src/import-desktop-adapter.ts, primary project-shell.tsx importUserFiles/task, and tools/import-desktop-business-cases.mjs. The acceptance contract declares DocumentProbe build overrides for these three commands and retains all previous Import requirements and cases.