Files
FreeCADWasmDev/docs/current/provided-source-index.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

26 KiB
Raw Blame History

用户已提供的源码与资料索引

核对日期:2026-09-08。先定点搜索这些本地资料,再决定是否需要外部来源;历史范围要求服从当前“功能模块业务、功能路由”铁律。

用户已明确大部分源码已编译为 WASM,应直接利用。执行首先读取现有模块 manifest 和命令路由,复用已发布产物;下面的源码路径用于出现具体缺口后的定点修复,不是重新编译的任务清单。本次核对 web/public/modules/manifest.json 注册 32 个模块,引用的 68 个不同 runtime JS/WASM 文件在 web/public 中全部存在;该核对仅证明文件可用,不替代实际业务验收。

路径 可复用内容
freecad-source/src/Mod、freecad-source/src/App 当前 FreeCAD 模块业务、Document、属性与持久化原生实现
freecad-source/src/WebAssembly/FreeCADCoreProbe 已完成的 Web 原生适配、构建声明、模块用例
FreeCADBaseLib/sources/src、FreeCADBaseLib/sources/archives 当前工程依赖源码与离线压缩包
freecad-source/build-web、web/public/kernel 已有增量构建目录、实际发布的模块产物
docs/p6、docs/business-acceptance、tools、web/src 历史有效证据、业务用例、Facade、Worker 和页面接线
/home/mes123456/docAll/NowDoc/00-文档总索引.zh-CN.md 用户提供的业务语义、核心能力、架构、基线、运行时和专项实现资料索引
/home/mes123456/working/FreeCADBaseLib/sources 用户提供的依赖源码与 archives,包含 OCCT、Python、Qt、Boost、Coin 等
/home/mes123456/working/FreeCADWorking 桌面构建、业务文档、零件库及 aircraft_impeller.FCStd、生成脚本
/home/mes123456/working/Web_FreeCAD_Bitbybit 已有 Web 参考工程,含 native、fixtures、tests、scripts 和 FCStd/几何浏览器工作流
/home/mes123456/FreeCAD、/home/mes123456/FreeCADDev/working/FreeCAD 历史工作目录中的源码片段、适配脚本和业务证据;使用前核对与当前版本差异

IFC 续接更新(2026-09-12)

2026-09-15 用户验收续接:原剩余九项已实际执行,8 项通过,FILE-02 中 IFC 失败。真实 IFC 样本可复用 Qt/Assimp 的 test/models/IFC/AC14-FZK-Haus.ifc;它不是 IfcOpenShell 运行时。当前 BimRuntimeProbe.cpp 的 declaration-only 后端和此前检查结论一致,不重复添加“真实包优先”分支或空注册。最终证据、修复列表及确切续接条件见 user-tests-20260915/REMAINING-NINE-REPORT.md。本轮已修复 Std_Open 深链接、WASM 场景网格化等待、文档撤销模式,并验证结构/链接/OBJ/DXF/STL 等真实流程。继续 IFC 时需要真实绑定位置和构建接入,不得用已通过的 OBJ、STEP 或旧版部分 IFC 解析替代。

  • 此前预算阻止的四个范围已实际执行不忽略隐藏/被忽略文件的 IfcOpenShell 文件名检索:/home/mes123456/working/FreeCADWorking、/home/mes123456/working/Web_FreeCAD_Bitbybit、当前 freecad-source/build-web、web/public/kernel。没有匹配 *ifcopenshell* 或 *IfcOpenShell* 文件。该结果只限定这些路径和文件名,不代表全机不存在兼容绑定。
  • 其它已列出的本地源树可找到 FreeCAD 的 nativeifc 业务脚本和 Qt/Assimp 的 IFC 导入实现;它们不等于桌面业务所调用的 IfcOpenShell Python/WASM 绑定,不可据此替换唯一 OCCT 几何出口。
  • 真正安装的 IFC 包优先加载逻辑已经存在,继续复用。修复了占位模块误标 _freecad_import_stub=False、空 IFC 写入和空对象读取;声明模块现在明确报缺依赖,不会产生伪造导出文件。
  • 四条 IFC 命令的注册误判源于检查器遗漏 nameValue,不是需要继续调整重复标记。增量构建/同步回执:bim-ifc-registration-implementation-pipeline.json;该回执不代表 IFC 业务可运行。后续只继续真实绑定接入、代理及持久化缺口,禁止重复已完成的注册修复。
  • 当前不运行自动验收;本节及 execution-policy.json 优先于下文历史记录中的测试建议。

本次已定位的业务实现

  • 2026-09-15 打开文档主链路:Std_Open 已连接浏览器多文件选择、OPFS 内容哈希缓存、FCStd 原生恢复和本运行时注册的格式处理器;显示部分恢复/恢复错误,失败不清理已有工作。复用 WebOpenCommand.h、web-open-adapter.ts、web-open-task.tsx,回执 open-document-pipeline-20260915.json,范围与耗时见 open-document-20260915.md。未加载的跨模块导入器仍明确报错,不以简化几何替代。

  • 2026-09-15 门窗管理:BIM_Windows 已接通原生分组数据、多选属性/材质编辑和双击定位,读操作不再保存整份 FCStd;回执 bim-windows-pipeline-20260915.json,范围与耗时见 bim-windows-20260915.md。同时纠正 Std_Open 文档注释假锚点(真实源码 CommandDoc.cpp:82)和桌面文档命令被排除出交付优先级的问题;Std_Open 仍待实现,不因元数据修正计作完成。

  • 2026-09-15 Link 原生变更:Std_LinkMakeRelative、Std_LinkReplace、Std_LinkUnlink 已接入真实 C++ setLink、CopyOnLinkReplace/Paste、跨文档共享事务及父对象操作面板,并补入 Link Actions 菜单。复用 WebLinkMutationCommands.h、web-link-mutation-task.tsx;回执 link-mutations-pipeline-20260915.json,范围和耗时见 link-mutations-20260915.md。Link 导航仍待实现,禁止仅加目录项冒充完成。

  • 2026-09-15 原生结构业务:Std_Part 与 Std_VarSet 已接入 PartBox/DocumentProbe 文档入口;真实 Part 成员分组、变量集动态属性/表达式/事务和操作面板已完成。复用 WebStructureCommands.h、web-structure-task.tsx;构建回执为 structure-pipeline-20260915.json,范围与耗时见 structure-20260915.md。不增加几何内核、不把变量存成前端占位数据,未自动验收。

  • 2026-09-15 BIM 关系操作:BIM_Ungroup、BIM_Unclone 已挂载关系操作面板并接入真实文档 helper 分支;复用原生移组/解除克隆事务,修复替换对象后的选择,移组预览不再保存全量 FCStd。详见 focused-packets-bim-relationships-20260915.md 和 bim-relationships-pipeline-20260915.json。同时修复任务包读取误拒和未实现命令跨源码族混批,禁止重复添加空登记。

  • 2026-09-15 文档业务六项:Std_SaveAs、Std_SaveCopy、Std_SelectAll、Std_Undo 接回已有 PartBox 原生文档入口,FCStd 内容存入 OPFS,撤销选择补齐 Label;Std_ToggleFreeze、Std_ToggleSkipRecompute 直接使用 FreeCAD 对象/文档状态 API。复用 document-actions-20260915.md 和 document-actions-pipeline-20260915.json,六项实现回执已写入,未自动验收;不要重复创建算法或恢复错误的批量协议。

  • 2026-09-15 路由与空转纠正:见 routing-and-stall-repair-20260915.md。撤销 BIM/Link 无条件登记,修正空 endpoint、BIM 协议及 Link 文档入口;Dock 使用真实 native Worker。Std_Test1~Std_Test6 在桌面源码中本就是空操作,保留其文档前置条件,禁止反复接到无关测试套件。文件修改不再清零无交付计数。旧“BIM 全部完成”和 Link 三个无原生入口的登记结论不能沿用。

  • 新建组 Std_Group(2026-09-14):复用 CommandStructure.cpp 的 App::DocumentObjectGroup、Tip、allowObject 和事务语义,在 PartBox/DocumentProbe 既有入口内执行;Workbench 与 Project 已挂载根组/活动容器创建面板、真实成员列表和选择。正式回执 web-group-pipeline.json 为 1 ready,未自动验收。详见 web-group-20260914.md。

  • 新建组 Std_Group(2026-09-14):复用 CommandStructure.cpp 的 App::DocumentObjectGroup、Tip、allowObject 和事务语义,在 PartBox/DocumentProbe 既有入口内执行;Workbench 与 Project 已挂载根组/活动容器创建面板、真实成员列表和选择。Project 复用原生 snapshot、撤销及 FCStd/OPFS 保存链。两个宿主与前端均构建发布,正式回执 web-group-pipeline.json 为 1 ready,未自动验收。后续复用 WebGroupCommand.h、web-group-task.tsx;详见 web-group-20260914.md,不混报 Part/VarSet 等其他结构命令完成。

  • Web 帮助/网站接线更正(2026-09-14):旧 browserCommands 把十四条目录项按同名字段直接判为完成,且没有处理被前置分支拦截的问题,旧结论不可靠。本次移除该判定,八条网站命令经 web-website-adapter.ts 首先调用实际 PartBox/DocumentProbe 宿主读取网站偏好,再由 WebWebsiteTask 显示匹配响应链接。正式回执 web-website-owner-pipeline.json 为 8 ready;两个原生宿主和前端已发布,未自动验证。复用 web-website-owner-20260914.md,不恢复旧宽泛 browser catalog。

  • Web Preferences/Customize(2026-09-14):复用 ParamGet 参数编辑器,把 Std_DlgPreferences 和 Std_DlgCustomize 接到同一 PartBox/DocumentProbe 原生链,分别限定 Preferences 与 Workbench 根路径;现有 React 参数树、类型编辑、分组、OPFS FCParam 导入导出继续复用。正式回执 web-parameter-dialogs-pipeline.json 为 2 ready,详情 web-parameter-dialogs-20260914.md。未自动验收。

  • Web 参数编辑器(2026-09-14):Std_DlgParameter 已接入 PartBox/DocumentProbe 原生宿主,复用 ParamGet 的真实读写、分组及 FCParam 导入导出;修复空组 GetContents() -> None、FreeCAD 类型名映射、OPFS 写入失败回滚和宿主隔离。正式回执 web-parameter-editor-pipeline.json 为 1 ready,前端和原生宿主均完成构建,未自动验收。详见 web-parameter-editor-20260914.md;不要恢复旧 web.standardCommand 路径。

  • Web About/Qt/标注(2026-09-14):复用现有原生实现,修复前置适配分支返回裸结果、挂载界面读取批次结果的错配;web-owner-standard-adapter.ts 和 document-view-routes.json.standardCommands 统一执行/发现/构建选择。只读 DrawStyle 刷新不再增加事务,标注通过同宿主刷新显示。正式回执 web-owner-standard-pipeline.json 为 3 ready,未自动验收。后续不重复添加旧 web.standardCommand 别名或 native marker;详见 web-owner-standard-20260914.md。

  • BIM 图片显示(2026-09-14):修复 Image::ImagePlane 创建后没有返回图片显示数据的问题,并用已链接 Qt WASM 的原生 QImageReader 替换不存在的 PySide QImage 调用。角点/UV 复用 src/Gui/ViewProviderImagePlane.cpp,Three.js 只贴图显示;保留原生文档和 FCStd 保存链。BIM、前端构建及正式回执已完成,未自动验证。复用 BIMImageReader.h、bim-image-display.ts 与 bim-frame-view.tsx,详见 bim-image-display-20260914.md;勿重新添加图片解码占位。

  • BIM Help/Examples(2026-09-13):已有可执行注册表实际调用本机桌面 BIM_Help().getUrl() / BIM_Examples().getUrl();生成器现识别这两条 URL 专用接线,不再重复报原生缺失。链接只使用当前匹配响应,删除会串用 Examples URL 的 Help 全局事件状态。旧版三个重复脚本定义已由现有 BIMSolidCommands.h 替代,BIM 和前端均构建同步成功。工作包递归收录同目录本地脚本头文件,不增加片段预算。复用 bim-external-url-pipeline.json,详情 bim-executable-url-unblock-20260913.md。

  • BIM Image Plane 增量构建修复(2026-09-13):现有浏览器图片字节、长度、基点接线复用 Image::ImagePlane 原生 helper;首次链接的首错是 std::string 到 const char* 的调用类型错误,已改为 .c_str()。BIM WASM 重链、资源同步和前端构建均成功,记录见 bim-image-plane-build-repair-20260913.md。其它 BIM 命令仍按真实业务范围处理,不以登记标记代替实现。

  • 依赖图导出收口(2026-09-13):复用桌面 CommandDoc.cpp 的 Document::exportGraphviz 和已存在 NativeDocumentView.h,修复 Facade 错将 Graphviz 文本按网格校验的断点、清除重复导出分支;Project 按钮固定 DocumentProbe 和当前原生文档名。两个文档宿主均已增量链接并同步,前端已构建;正式回执 web-dependency-export-pipeline.json。不要重复实现图算法或将此记为全局新增路由。详见 dependency-export-and-search-repair-20260913.md。

  • Web 相机命令(2026-09-13):16 条显示命令接入既有 ImportRenderBridge / OpenScadDesktopView,包括九种标准方向、缩放、适配全部、左右旋转、存储/恢复工作视图。复用 src/Gui/Camera.cpp 四元数和 NavigationStyle.cpp 缩放定义;Three.js 只操作显示相机和已返回网格的可视范围,没有新增建模算法。scene-display-commands.json 驱动现有 browser-ui 路由,视口内有直接入口;不再要求这组命令的原生登记。工作视图为当前挂载宿主内的临时状态,未扩称持久化视图。构建回执 web-camera-host-pipeline.json,未运行自动验收。

  • Web 四条视图命令错投修复(2026-09-13):不再调用 web.statefulFamilyBatch。使用 part.viewCommand(PartBox)或 part.documentViewCommand(DocumentProbe),在真正持有文档的既有 Worker/WASM 内调用共享 WebViewCommands;原生缺失文档明确报错,不创建样例。项目 View Tools 固定 DocumentProbe,工作台可指定宿主;typed 响应核对身份和几何,旧 stateful 样例入口提前拒绝 Web desktop 请求。四条正式回执已发布,未运行自动验收,其他运行时文档和完整桌面视图一致性仍不混报。详见 web-document-view-routing-20260913.md,后续复用新接口,不再补旧字段或重复 native marker。

  • Test 运输层解阻(2026-09-12):MDITest1/2/3 与 TestConsoleOutput 原有 TestRequest→test.inspectRegistry→test.worker.ts 和实际宿主/原生实现已接通发现器。新增的共享 JSON 路由表被真实 dispatcher 和发现器共同读取;已修复目标 pthread 链接/五线程池及初始化函数前置声明,完成四条构建回执。禁止继续添加重复 native markers;不曾运行测试命令或验收。Web 四条命令仍存在错投 stateful 样例运行时的问题,不得照搬放行。源码结论和耗时见 transport-layer-unattended-repair-20260912.md。

  • Project 原生 Slice 属性编辑(2026-09-12):在现有 DocumentProbe 增加 setSliceProperties,复用 PartSliceDocument 更新逻辑,由项目页外层事务覆盖重算和显示网格返回。项目树中真实 FeatureSlice 对象现可直接编辑 Base/Tools/Mode/Tolerance/Label,沿用现有 undo/redo、保存和重开,不再必须传副本回工作台。其它模块文档归属仍独立;未运行自动验收。详情 project-native-slice-edit-20260912.md,不要重复实现已有属性更新与几何算法。

  • Project/Workbench FCStd 副本交接(2026-09-12):DocumentProbe 已打包并加载与 PartBox 相同的 BOPTools/CompoundTools,项目页对象树保留原生 dependencies、Tools。工作台可将 FCStd 副本写入已有共享 OPFS 文档目录并交给项目页,项目页也可将当前快照送回工作台 Slice 属性编辑器;深链接等待命令路由就绪。旧 OPFS/Part 文件仍可读取,不跨 WASM 传裸句柄,不宣称单一全局活动文档。详见 project-workbench-fcstd-handoff-20260912.md;仅构建发布,未运行自动验收。

  • Part Slice 文档生命周期(2026-09-12):现已增加同 PartBox 运行时的 read/update/reopen,复用原生 Mode/Tolerance/Base/Tools/Label、事务、FCStd 读取与 Python 代理恢复。支持本地文件及 OPFS 重开、属性更新和共享工作台文档导航;简单拆分过滤器随碎片数量同步,外部依赖阻止危险删除。其他 Worker 与独立 project-shell 文档树尚未统一,不宣称全模块完成。后续复用 part-slice-lifecycle-handoff-20260912.md,不要重复实现下文旧记录列出的已接通生命周期功能。未运行自动验收。

  • Part 参数化切片续接(2026-09-12):在已有 BREP 路径上增加 resultScope=native-document,直接调用 SplitFeatures.makeSlice 和 CompoundTools.Explode.explodeCompound,创建保留的 Base/Tools、Slice、CompoundFilter 与 FCStd 快照;复用现有 PartBox/OCCT,不重新实现算法。前端已增加参数化文档选项及 OPFS 下载。全局文档树、属性编辑与重开仍单独保留,未运行验收;详见 part-slice-document-handoff-20260912.md,不要再按下文旧记录把文档创建关联列为未实现。

  • Part 切片(2026-09-12):已复用前批 PartSplitSource 与 PartBox WASM,接通桌面 BOPTools.SplitAPI.slice 的实际 OCCT GeneralFuse 调用,移除实体底件限制及仅提取实体碎片的简化逻辑。BREP 文件输入、模式/容差、结果与碎片的 OPFS 下载已挂载;不重写几何算法,不重编未变的 OCCT。参数化 Slice 的 Base/Tools 和 SliceApart 的 CompoundFilter 特征树仍单独保留,不计入本批完成;详见 part-slice-placeholder-removal-20260912.md。未运行自动验收。

  • Mesh 规则图元(2026-09-12):FeatureMeshSolid.cpp 与 DlgRegularSolidImp.cpp 已提供 Cube、Cylinder、Cone、Sphere、Ellipsoid、Torus 六种参数化 Mesh 对象。现已直接复用其类型和属性,替换 Mesh_BuildRegularSolid 的三段数量/手拼长方体占位;支持预览清理、真实文档对象创建与 FCStd 快照。前端复用上一批的网格显示和 OPFS 保存,创建后更新同运行时选择。不要重写图元网格化算法,详情与耗时见 mesh-primitive-placeholder-removal-20260912.md;未运行用户验收,跨 Worker 文档及全局撤销接入仍单独保留。

  • Mesh 组件操作(2026-09-12):已复用 MeshObject::getComponents、meshFromSegment、deleteFacets,替换移除/拆分组件的数量回显占位,并删除 10 段旧分支。真实几何输入返回实际网格;同运行时文档输入使用事务修改或创建 Mesh::Feature。组件参数界面、源网格指纹保护、Three.js 结果显示和 OPFS 索引网格 JSON 下载已接入;不要重写连通组件算法。完整桌面区域选取与跨 Worker 文档传递另行保留,未运行用户验收。详见 mesh-components-placeholder-removal-20260912.md。

  • MeshPart 展开(2026-09-12):src/Mod/MeshPart/App/MeshFlattening.cpp、MeshFlatteningLscmRelax.cpp、MeshFlatteningNurbs.cpp 已提供真实 C++ FaceUnwrapper。现已直接链接到已有 FreeCADWebMeshPartRuntimeProbe,复用 Eigen/OCCT;不再要求通过缺失的可选 NumPy/pybind11 扩展才能使用这两个命令。已替换 CreateFlatMesh/CreateFlatFace 中“创建长方体并计数”的伪实现,返回真实展开 BREP、显示网格及同运行时文档结果;前端复用已有 Three.js 视图,实际 BREP 经 OPFS 保存。不要重新搜索或重写展开算法;边界和构建回执见 meshpart-flat-placeholder-removal-20260912.md。未运行用户验收,闭合网格自动切缝和跨 Worker 文档传递不在本批完成范围。

  • Points:复用后台已完成的命名文档/对象原生改动,points-facade.ts 已去掉固定三点限制并严格校验实际返回;创建更新、合并、结构化和错误恢复四项通过。当前坐标和包围盒来自 PointsRuntimeProbe.cpp 的原生 PointKernel,不由前端制造。

  • OpenSCAD DXF:OpenSCADRuntimeProbe.cpp 已直接复用 Import::ImpExpDxfRead 与 Part::FaceMakerBullseye/OCCT,支持层筛选、孔洞、追加与失败恢复。旧 Python OpenSCAD2Dgeom.importDXFface 不再是 Web 入口的依赖;保留桌面源码,不重新寻找旧 DXF Python 库。已编译 Import/Part/OCCT 库优先复用,仅增量更新该适配与必要图层选项。结果见 docs/current/points-openscad-delivery.md。

  • OCCT WASM 已提供:现有 web/public/kernel/FreeCADWebKernel.{js,wasm} 均存在,WASM 为 15206151 字节;web/src/kernel.worker.ts 调用 fc_web_step_load 与 fc_web_mesh_*,实现位于 freecad-source/src/WebAssembly/FreeCADWebBridge.cpp,复用 OCCT STEP、BRep 与网格化。后续几何请求必须按铁律统一到已提供的 OCCT 内核出口;其它 FreeCAD 模块的已有原生桥接继续核对实际调用,不因有静态依赖就宣称全项目入口已经统一。本条不是重新编译清单。

  • Draft SVG:freecad-source/src/Mod/Draft/importSVG.py,现有 tools/draft-business-cases.mjs 已覆盖实际几何导入、追加、导出及重新导入的周长一致性。

  • DXF C++ 实现:freecad-source/src/Mod/Import/App/dxf/ImpExpDxf.cpp、ImpExpDxf.h、dxf.cpp、dxf.h 已提供 ImpExpDxfRead / ImpExpDxfWrite 等读写能力。直接复用已编译的 WASM。AppImportPy.cpp 的 Import.readDXF / Import.writeDXFObject 及 Draft 入口是调用层,不是缺少 C++ 实现;无需下载旧 Python DXF 解析库或重新移植算法。

  • Draft 原生依赖缺口已修复:DraftRuntimeProbe.cpp 已补齐 Mesh、Import 的本地链接和 Python 注册链;FreeCADApp、Import 的 Web 编译启用异常捕获,保留原始属性转换与事务恢复语义;本地 Import/DxfPlate 模板已打包到原生导出器实际读取的资源目录。

  • Draft 业务证据:docs/current/business-evidence/bcbed2d1047785af9fd2fd80-20260908T030238142050.json,覆盖 SVG 导入/导出、DXF 导入/导出、不同输入、重新导入几何一致性与错误恢复。新增验收三个明确的格式业务 ID,原有 formatBatch 一并复验;未扩大为整个 Draft 模块通过。

  • Part 保存:已改为 part-save.worker.ts 共享当前 DocumentProbe 文档,支持原生多对象 FCStd 与 React/OPFS 保存、重载、重开。旧的固定 /tmp/WebBox.FCStd 限制不再描述当前实现;历史通过及剩余边界见 docs/current/part-mesh-business-unblock.md,是否可复用以当前指纹为准,不重做已完成保存链。

  • TechDraw:当前绘图、桌面任务、保存均由 techdraw-python.worker.ts 共享现有原生文档;已修复路由回退到导入导出 Worker 的错投与 cancelled 状态缺失。正式三项组通过,详情见 docs/current/techdraw-route-unblock.md;无需为这次前端接线重新编译 OCCT 或 FreeCAD WASM。

  • Part 形状格式:web/src/part-io-facade.ts 已通过统一 native dispatcher 调用,应从 PartBoxProbe.cpp 的实际导入导出实现补齐当前文档输入,再确认对应业务。

未在本次检查的本地目录发现 dxfReader.py、dxfLibrary.py、dxfColorMap.py、dxfImportObjects.py;这只表示旧 Python 解析依赖未找到,不表示 FreeCAD 缺少 DXF 实现。

BIM IFC 恢复检查点(2026-09-09)

  • 当前失败业务:business-format:BIM:export:.ifc、business-format:BIM:import:.ifc。已有合同 docs/business-acceptance/BIM.json 和 tools/bim-recovery-business-cases.mjs 覆盖这两个 ID;用户提供的实际执行诊断在导出及失败恢复时均报告加载了 source-inspection 声明模块。这是运行后端缺口,不能按编译错误或缺少 coveredIds 处理。
  • 已读取 freecad-source/src/WebAssembly/FreeCADCoreProbe/BimRuntimeProbe.cpp 的初始化及 bim.formatWorkflow:初始化先用 importlib.util.find_spec('ifcopenshell') 探测;能发现实际包时会清除声明模块并导入实际包。因此当前代码已具备优先加载真实包的分支,不能再以添加相同分支作为修复。IFC 业务保护在文档创建前检查 stub 和 file/open;实际调用保留 importers.exportIFC.export(doc.Objects,path) 与 importers.importIFC.insert(path,doc.Name)。
  • 已列出项目内 FreeCADBaseLib/sources/src 和 FreeCADBaseLib/sources/archives 的直接条目,未列出 IfcOpenShell 源码目录或压缩包。已确认 /home/mes123456/working/FreeCADBaseLib/sources 含 src、archives、SHA256SUMS,但本轮尚未检查其子目录。这些结果不能推出其它已索引位置不存在后端。
  • 对构建声明、Web 包声明和用户资料总索引的后续定点检索收到 SCHEDULER_SOURCE_BUDGET_REACHED,没有返回检索内容;不能记为无匹配。续接从这些尚未完成的定点检查继续,复用上面的初始化和分发源码结论,不重复扫描已经列出的项目内依赖目录。
  • 尚需定位可复用的 IfcOpenShell 实现与 WASM/Python 绑定、核对 BIM 目标的链接及打包接入,再由外层增量构建并执行已有两个 IFC 业务用例。本轮未修改 native 逻辑,未执行构建或验收,未关闭失败,也未声明 IFC 业务通过。

后续定点检查(2026-09-09)

  • 已成功列出 /home/mes123456/working/FreeCADBaseLib/sources/src 和 archives 的直接条目,没有 IfcOpenShell 条目;这不代表其它位置不存在后端。
  • 对 freecad-source/src/WebAssembly/FreeCADCoreProbe/CMakeLists.txt、web/package.json 和用户资料总索引检索 ifcopenshell|ifc.*wasm,有效执行且零匹配。
  • 对 /home/mes123456/working/FreeCADWorking、/home/mes123456/working/Web_FreeCAD_Bitbybit、freecad-source/build-web、web/public/kernel 的 IFC 文件名检索,以及 docs/current、docs/p6 的 IFC 后端记录检索,均被 SCHEDULER_SOURCE_BUDGET_REACHED 拦截,尚无结果;续接应从这些位置继续,不重复上述已完成检查。
  • 当前读到的 IFC 分支已无 stub 检查,并包含未经证实的“构建提供 IFC bridge”注释。本轮恢复 _freecad_import_stub 拒绝并移除该注释,在文档创建或修改前明确拒绝声明模块。此保护不提供缺失后端,不解决 IFC 导入导出失败。未运行构建或业务验收,未关闭任何失败;已有两个 IFC 用例继续由外层执行。