Files
Web_FreeCAD_Bitbybit/docs/freecad-reference-execution-roadmap.zh-CN.md

69 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FreeCAD 1.1.1 全功能对标执行路线图
## 1. 基线与证据线
唯一语义基线是 FreeCAD `1.1.1`、提交 `0108fd4b4850cc46e625b60e53cea7a7bbe69f8d`。界面相似、OCCT 算法可调用或命令名称存在都不等于兼容。
本机参考分三条证据线:
| 证据线 | 当前状态 | 用途 | 不得推断 |
|---|---|---|---|
| O1 headless oracle | `FreeCADCmd 1.1.1` 可用;`Part/Material/Measure` 可加载 | 几何、对象属性、错误和 FCStd 的确定性 CLI 回放 | Sketcher、PartDesign、TechDraw 等未构建模块的行为 |
| O2 完整桌面 oracle | 源码已锁定,完整 GUI/工作台产物尚未建立 | 命令状态、Task、选择、视图、工作台对象与 GUI 行为 | 不能用静态源码清册代替运行时行为 |
| O3 Web 对照 | Bitbybit 1.1.1、原生 OCCT 历史 provider 和 Facade 已有基础门禁 | FreeCAD↔Bitbybit↔Web 三方差分、浏览器 Worker/OPFS/交互 | Node smoke 不能代替真实浏览器证据 |
每项功能必须同时记录FreeCAD 输入与状态、Web 输入与状态、输出、错误、持久化、资源行为、差异原因和兼容等级。
## 2. 连续执行顺序
| 批次 | 任务范围 | 主要交付物 | 退出门禁 |
|---|---|---|---|
| R0 参考环境 | `BASE-01..04``INV-01..06` | 完整桌面 oracle 构建清单34 模块、命令、TypeId、Property、格式和错误清册 | 锁定提交可重建;清册无未登记入口 |
| R1 几何内核 | `BYB-03..08``TSN-03..10` | 可复现 Bitbybit/OCCT 构建浏览器原生历史Shape 生命周期;三方黄金差分 | Boolean/PartDesign 历史无静默错绑;长会话无泄漏 |
| R2 Sketcher | `SK-03..12` | planegcs WASM完整几何/约束/DOF/冲突;外部几何;编辑回放 | FreeCAD 草图成功/失败/冗余行为黄金通过 |
| R3 参数化核心 | `CORE-01..12``PART-*``PD-*` | Document/Property/DAG/Body/Tip/SupportPart 与 PartDesign 全特征 | 编辑→重算→Undo→保存→加载闭环通过 |
| R4 文件互操作 | `FC-04..11``PKG-*` | Document/GuiDocument、BRep/Shape、Expression/Link/TopoRef、未知字段保留 | FreeCAD→Web→FreeCAD 双向差异可解释且无静默丢失 |
| R5 核心工作台 | `TD-*``SS-*``DRAFT-*``PLOT-*` | TechDraw、Spreadsheet、Draft、Plot 的对象、命令、任务和格式 | 每命令至少成功/失败/round-trip fixture |
| R6 工程工作台 | `ASM-*``BIM-*``MESH-*``SURF-*` | 装配、BIM、网格、曲面全链路 | 求解/几何/IFC/网格黄金和大模型预算通过 |
| R7 分析制造 | `FEM-*``CAM-*``ROBOT-*``INSP-*` | 求解器/后处理/刀路/仿真/检测报告 | 求解或明确远端能力G-code/结果文件黄金通过 |
| R8 平台长尾 | `PTS-*``RE-*``OSC-*``IDF-*``JT-*``MAT-*``APP-*``SCRIPT-*` | 数据模块、插件、宏/API、桌面通用能力的实现或显式代理 | 无未分类入口;安全和权限模型通过 |
| R9 发布 | `QA-*``REL-*`、F0-F9/G0-G9 | 跨浏览器、性能、故障注入、安全、SBOM、迁移和发布 runbook | 所有阻断项关闭后才允许声明完整对标 |
## 3. 当前立即执行队列
1. `ORA-01`:建立完整 FreeCAD 1.1.1 桌面/工作台 oracle 构建配置;探针必须区分编译缺失、导入失败和 GUI-only。
2. `INV-02`:从 O1/O2 生成模块→命令→对象→属性→格式清册,并与 Web manifest 做机器差分。
3. `BYB-06/07`:在真实浏览器实例化原生历史 Worker执行 Bitbybit STEP→原生 OCCT→FreeCAD 三方 Boolean 黄金和内存释放测试。
4. `TSN-04/07/10`:补曲面/曲线/邻接签名,扩展 Boolean、Pattern 和 PartDesign 的逐输入历史,建立参数变异套件。
5. `SK-03/06/07`:编译 planegcs WASM按 FreeCAD 草图约束分类逐组替换基础 TypeScript solver。
6. `CORE-09..12``PD-*`:完成 Support/AttachmentOffset、Body 单实体、Tip 重定向、局部特征和编辑历史。
7. `FC-04..10`:在现有安全 ZIP 和属性投影上增加 GuiDocument、BRep/Shape、Expression/Link/TopoRef 与未知 XML/资源保留。
8. 按 R5→R8 顺序逐工作台交付,禁止只启用 UI 或把未实现命令标记为成功。
9. 每个增量持续执行 R9 门禁;能力等级只能依据本机 FreeCAD 黄金证据提升。
## 4. 单项完成定义
一个命令、对象或格式只有同时满足以下条件才可从 `experimental` 提升:
1. 锁定 FreeCAD 的成功、失败和边界 fixture 已保存。
2. Facade 合同、取消、过期结果、Undo/Redo 和诊断均有测试。
3. 几何/求解结果在声明公差内,拓扑引用不使用瞬时索引。
4. 保存、加载、版本迁移和相关格式 round-trip 无静默丢失。
5. Chrome、Firefox、Safari 目标版本的 Worker/OPFS/交互证据通过。
6. 内存、性能、安全、许可证和能力矩阵已更新。
`compatible` 允许已记录且可解释的浏览器差异;`exact` 要求锁定版本的声明语义无差异。无法在浏览器安全实现的桌面能力必须标为受限代理,不能隐藏。
## 5. 每批统一命令
```bash
./npmw run probe:freecad-reference
./npmw run test:golden:freecad
./npmw run test:occt-history
./npmw run verify
git diff --check
jq empty config/compatibility-matrix.json
```
O2 完整桌面 oracle 建立后,所有相关探针和黄金命令必须显式设置 `FREECAD_CMD`,防止回退到仅含 Part 的缓存构建。