# 当前文档布尔建模交付与解阻 2026-09-09 11:24。本轮新增主工作区并集、差集、交集三项业务,复用现有 DocumentProbe、Part 原生特征和已提供 OCCT 库,未重编译 OCCT。当前有效验收 93/1503,剩余 1410;开始时为 87,净增 6 包含后台业务,不能全部归为本次布尔交付。 ## 实际交付 - `part.document/setBoolean` 创建或编辑原生 `Part::Fuse/Cut/Common`,保留 Base/Tool 链接。移动、修改源对象由 FreeCAD 重算;材料标识随源对象继承并通过 FCStd 重开确认。 - React 主工作区提供布尔模式、操作数选择/交换、创建/更新、XYZ 平移、原生撤销重做。Three.js 只显示 OCCT 网格;生成结果时隐藏操作数,删除或撤销结果后恢复显示。 - 复用 FCStd/OPFS 保存路径。刷新浏览器、重开文件、修改操作数后仍能重算。无效对象、自引用、间接循环、删除被引用对象、原生重算失败均检查原文档不变。 - 不相交的 Common 返回空结果并清除旧显示网格,移动后可恢复。1440x1000、390x844 的截图、像素和旋转交互检查通过。 ## 已修复 1. 共用 `FCBRepAlgoAPI_BooleanOperation::Build` 在同步 WASM Worker 内强制并行,首个并集不返回。WASM 分支改为 OCCT 串行,桌面行为不变。 2. `FeaturePartBoolean.cpp` 原来未编译 `-fexceptions`,局部 catch 未生效。沿用 AttachExtension 的按源文件配置,并保留原生阶段和文档对象错误描述。 3. 现有 Web `Part::Feature` 默认空材质,`copyMaterial` 却仍查桌面默认材质目录,几何完成后失败。Web 空材质现在继承源对象原生材质,非空材质保留;桌面分支不变。 4. 产物复制曾暴露半个 WASM,实际出现 `Code section extends past end`。新增同目录唯一临时文件复制及原子 rename;失败保留旧文件并清理临时文件。这是单文件原子发布,不是整组 JS/WASM/data 的跨文件事务。 本轮不是一次构建完成:通用错误、编译端禁用 catch 和同步调用无法响应 TERM 导致多次诊断与重链接。后续先检查实际编译选项,再加阶段诊断;同步 WASM 复现命令使用 `timeout -k 3s`,不能只发 TERM 后空等。临时诊断进程均已结束,后台调度未暂停。 ## 实测耗时 以下是测得步骤,不冒充整轮耗时。编译/链接为当前 `.ninja_log` 最后有效记录,业务耗时来自实际报告。 | 步骤 | 秒 | |---|---:| | 布尔包装器编译 | 2.452 | | Boolean 特征编译 | 3.844 | | PartFeature 编译 | 8.180 | | DocumentProbe 编译 | 7.072 | | DocumentProbe 最后一次链接 | 25.809 | | public 产物同步 | 1.248 | | 前端发布构建,包含 public 同步 | 8.740 | | Part 新旧 18 项正式确认 | 60.450 | | Web 工作区 10 项正式确认 | 18.194 | | 共用分发器变化后 17 模块、59 项旧成功结果复验 | 68.614 | | 相同三项布尔证据复用 | 0.059 | 正式 Common/Cut/Fuse 首次调用分别为 0.428/0.323/0.399 秒;完整原生组为 2.869/2.628/2.974 秒,浏览器组为 6.275/8.541/7.817 秒。共享 WASM 加载 0.322 秒只发生一次,不能把每组展示的该值相加。逐次成功/失败、动作及耗时在证据 `nativeTiming` 中。 ## 证据与续接 - Part 18 项发布版报告:`business-evidence/eb1b2752c41ee3d6720af21a-20260909T031523846110.json`。 - 后台修改共用分发器后,三项布尔当前报告:`business-evidence/40f7e81b0f093ac994f19abe-20260909T031740283356.json`;Part 五项刷新:`business-evidence/92b4c4e6273198569ab553ea-20260909T032209137983.json`。历史报告保留,当前有效性由账本和指纹判定。 - Web 10 项报告:`business-evidence/815a9219e10b1a8b04f5db32-20260909T031508329442.json`。 - Facade、路由、几何边界、原子发布 21 个检查通过;TypeScript、几何边界审计和发布构建通过。 - 截图:`part-booleans-browser/{Fuse,Cut,Common}-{1440,390}.png`。入口 `http://localhost:5180/`,发布预览 `http://localhost:5181/`。 共用分发器的一次修改使很多模块旧证据失效。本轮直接批量执行已有用例恢复,没有改写历史通过标记,59 项复验不算新功能。共享入口修改应集中,稳定后直接执行已有成功组,不重新安排实现模型回合;模块适配尽量留在模块所有者文件,减少不必要的共用文件变更。 继续既定 Sketcher/PartDesign 当前用户文档主线。本次交付不等于全部布尔对话框、完整旋转 Placement、所有工作台路由或全项目唯一 WASM 实例已完成。