24 KiB
FreeCAD 1.1.1 全功能对标主任务账本
本账本是全功能范围、依赖、任务 ID 和验收证据的唯一总索引。实现状态仍以
config/compatibility-matrix.json为机器可读真值;详细技术设计见freecad-full-parity-plan.zh-CN.md。任何 UI、类型或 Mock 行为都不能单独计为兼容。
1. 对标合同
- 基线固定为 FreeCAD
1.1.1,提交0108fd4b4850cc46e625b60e53cea7a7bbe69f8d。 - “全部功能”指基线源码中的 App/Base/Gui 公共行为、用户可见模块、命令、对象、属性、任务面板、文件格式、脚本/扩展入口和错误行为全部进入清册。
- 每项能力只能处于
exact、compatible、read-only、proxy或unsupported。unsupported必须是经过评审的浏览器边界,有明确诊断和数据保留策略,不能代表遗漏。 exact/compatible必须有锁定 FreeCAD 的黄金输入、状态、输出、错误和 round-trip 报告;没有证据时最高只能是experimental。- Bitbybit 是 Web 几何、Worker、序列化、IO 和三角化能力的首选实现层。先审计和复用 Bitbybit 已有 API;若接口不足,允许从锁定的 Bitbybit 与 OCCT 源码扩展绑定并编译 WASM,不能因 npm 包暂未暴露接口而降低 FreeCAD 功能目标。
- 自构建 OCCT/Bitbybit 代码必须经过版本锁定、补丁清单、Emscripten 构建、ABI/消息 schema、许可证/SBOM、产物哈希和与 FreeCAD/现有 Bitbybit 的双端黄金测试。React 仍只能调用 Facade,不能直接导入 OCCT 或 Worker。
- 所有 Node/npm 命令必须通过项目包装器
./npmw执行,禁止以系统npm产生验收证据。
2. 基线模块范围
本地锁定源码 src/Mod 共 34 个目录,按交付责任分组如下。P0 清册必须进一步枚举各模块的命令、对象、属性、偏好、文件格式和可选依赖,目录存在不等于用户功能存在。
| 分组 | FreeCAD 1.1.1 源码模块 | 对标处理 |
|---|---|---|
| 核心建模 | Part、PartDesign、Sketcher、Surface |
浏览器内参数化编辑与重算,目标至少 compatible |
| 文档与二维 | Draft、TechDraw、Spreadsheet、Plot |
创建、编辑、表达式、投影与输出闭环 |
| 工程 | Assembly、BIM、CAM、Fem、Robot、Inspection、Measure |
求解器/后处理器可端口则兼容,否则逐能力显式分级 |
| 数据与几何 | Import、Mesh、MeshPart、Points、ReverseEngineering、OpenSCAD、Idf、JtReader、Material |
格式、单位、颜色、拓扑、代理和往返差异可审计 |
| 应用体验 | Start、Help、AddonManager、Cloud、Show、Web |
Web 等价工作流、离线帮助、扩展治理和安全边界 |
| 工具/开发 | Sandbox、TemplatePyMod、Test、Tux |
不伪装成最终用户工作台;保留开发/回归等价能力或明确 unsupported |
此外必须覆盖源码目录 App、Base、Gui、Main 的文档模型、Property、事务、选择、视图、参数、命令、Python 控制台、宏、偏好、快捷键、多文档、剪贴板、打印和帮助行为。
3. 单项完成定义
每个命令或对象的任务卡必须同时具备以下证据,缺任一项不得关闭:
- 基线来源:FreeCAD 命令 ID、对象 TypeId、Property/枚举/默认值、选择前置、可选依赖和平台差异。
- 合同:版本化 Facade 类型、JSON Schema、能力探测、结构化诊断、取消和进度。
- 领域行为:创建、编辑、重算、删除、复制、可见性、事务、Undo/Redo、失败恢复和依赖传播。
- 几何/求解:公差、单位、拓扑历史、确定性、资源释放和过期 generation 隔离。
- 持久化:SQLite/OPFS 保存加载、schema migration、FCStd 或原始代理数据保留。
- 交互:任务面板、Property editor、选择/预选、键盘、只读、窄屏和无障碍。
- 互操作:相关导入/导出、FreeCAD→Web→FreeCAD round-trip 和差异报告。
- 测试:最小成功、边界、错误、取消、黄金几何/状态、浏览器 E2E、性能和内存。
工作台只有在其范围内所有任务完成上述八项,并通过“创建→编辑→重算→撤销→保存→加载→导出”七步回放后,才能通过阶段门。
4. 执行波次
| 波次 | 结果 | 阻断关系 |
|---|---|---|
| W0 范围冻结 | 全模块清册、依赖、许可证、黄金 oracle、能力矩阵 | 阻断所有兼容声明 |
| W1 平台内核 | Facade、App/Gui 模型、表达式/单位、DAG、持久化、Viewport | 阻断所有工作台闭环 |
| W2 拓扑与 Sketcher | OCCT 原生历史、稳定 TopoRef、planegcs WASM、草图编辑器 | 阻断 PartDesign/TechDraw/附着 |
| W3 核心建模 | Part、PartDesign、Sketcher 参数化闭环 | 阻断生产和工程工作台 |
| W4 原生文件 | FCStd 双向往返、核心交换格式 | 阻断 G5 及后续工作台保存门禁 |
| W5 生产文档 | TechDraw、Spreadsheet、Draft、Plot | 阻断 G6 |
| W6 高级建模 | Assembly、BIM、Mesh/MeshPart、Surface | 阻断 G7 |
| W7 工程与长尾 | FEM、CAM、Robot、Inspection、数据/应用模块 | 阻断 G8 |
| W8 发布 | 全量回放、跨浏览器、性能、安全、离线、升级与回滚 | 阻断 G9 |
5. W0:范围、基线和黄金 oracle
| ID | 任务 | 退出条件 |
|---|---|---|
| INV-01 | 从 src/Mod、Workbench 初始化脚本和命令注册表生成模块/工作台/命令清册 |
34 个源码模块均有分类,不存在未登记目录 |
| INV-02 | 提取 App/Gui TypeId、Property、枚举、默认值、只读/隐藏/表达式能力 | 每个核心对象能追溯到源码与最小 FCStd fixture |
| INV-03 | 提取菜单、工具栏、上下文菜单、快捷键、任务面板和选择前置 | GUI 命令均有状态与前置条件记录 |
| INV-04 | 提取偏好、参数树、导航样式、颜色/显示和平台差异 | 每项标记 document/user/session 作用域 |
| INV-05 | 提取导入/导出格式、扩展名、MIME、单位、颜色和可选库 | 格式矩阵无未解释入口 |
| INV-06 | 提取 Python API、宏、控制台、扩展和 Addon 入口 | 每项有 sandbox/兼容/不支持决策 |
| BASE-01 | 固定构建容器 digest、编译器、依赖、补丁和产物哈希 | 干净环境重建结果可追溯 |
| BASE-02 | 构建完整无界面 oracle 与可自动化 GUI oracle | Part 之外的目标模块可被回放 |
| BASE-03 | 扩充到不少于 100 个成功、50 个错误黄金文件 | 覆盖核心对象、拓扑变化、单位和错误分类 |
| BASE-04 | 建立 Web OCCT/FreeCAD 双端比较器 | 树、Property、Shape、拓扑、质量属性和诊断可差分 |
| BASE-05 | 生成 SBOM、许可证、来源和已知漏洞报告 | 所有 WASM/Worker/求解器/字典可追溯 |
5.1 Bitbybit/OCCT 源码构建轨道
| ID | 任务 | 退出条件 |
|---|---|---|
| BYB-01 | 盘点 Bitbybit TypeScript API、OCCT Worker 命令、IO、缓存和三角化覆盖 | 每个 GEO/PART/PD/TSN/FC 几何任务标记 reuse/extend/custom |
| BYB-02 | 锁定 Bitbybit 源码提交、子模块、补丁和上游 OCCT 版本 | npm 包、源码提交、生成绑定和 WASM 来源链一致 |
| BYB-03 | 建立 Bitbybit + OCCT Emscripten 可复现构建 | 干净容器产出同版本、同导出符号和可追溯 hash |
| BYB-04 | 扩展 OCCT 绑定生成规则 | 暴露拓扑历史、BRepCheck、几何属性、导入导出及各工作台缺失算法,不泄漏原始指针 |
| BYB-05 | 建立版本化 Geometry Worker 协议和能力探测 | 现有 npm provider 与自构建 provider 可替换、可诊断、可取消 |
| BYB-06 | 建立 Shape 所有权、共享拓扑和细粒度释放策略 | Boolean/历史共享 Shape 长会话无悬空和不可控增长 |
| BYB-07 | 建立 Bitbybit、高层扩展绑定、原生 FreeCAD 三方差分 | 几何、拓扑、错误、公差和资源行为差异可审计 |
| BYB-08 | 上游同步和回归策略 | 更新 Bitbybit/OCCT 时自动生成 API/ABI/黄金差异,不静默漂移 |
6. W1:平台与领域内核
| ID 范围 | 任务组 | 必须补齐的能力 |
|---|---|---|
| CORE-01..04 | App 文档内核 | 多文档、DocumentObject/Extension、动态 Property、Group/Link/LinkGroup、UUID/InternalName/Label、生命周期 |
| CORE-05..08 | 事务和状态 | 嵌套事务、Undo/Redo、剪切复制粘贴、删除传播、保存点、恢复、只读、最近有效 Shape 回滚 |
| CORE-09..12 | Body/容器 | Body/Tip、Feature 顺序、Origin、Datum、Part/Group、Support、MapMode、AttachmentOffset、局部坐标链、单实体规则 |
| API-01..05 | Facade/Worker | 版本化 schema、事件、取消、进度、诊断、Bitbybit/自构建 provider 能力探测、Worker 崩溃恢复、并发与句柄所有权 |
| EXU-01..08 | Quantity/Expression | 全单位 schema、完整 parser/函数、维度/舍入、对象与 Spreadsheet 引用、循环、locale、自动完成、迁移黄金 |
| DAG-01..11 | 依赖与重算 | Link/Expression/TopoRef 统一边、SCC、稳定调度、并行层、抑制、错误传播、最小闭包、性能计数和 1000 对象基准 |
| DB-01..08 | SQLite/OPFS | 真实迁移、单写者、配额、资源 GC、检查点、崩溃注入、多标签页、备份恢复和无 OPFS 降级 |
| VIEW-01..10 | Gui/Viewport | 相机/导航、显示模式、对象/面/边/点拾取、预选、稳定 TopoRef、剖切、裁剪、测量、网格、增量缓存、LOD、GPU 回收 |
| UI-01..10 | 应用交互 | 菜单/工具栏、Combo/Task/Property、命令状态、状态栏、报告视图、多选 mixed、搜索、键盘、a11y、窄屏、主题/语言/偏好 |
7. W2:稳定拓扑命名与 Sketcher
7.1 稳定拓扑命名
| ID | 任务 | 退出条件 |
|---|---|---|
| TSN-01 | 采集 30 个基础和复杂模型的 FreeCAD 命名/错误行为 | 输入、逐代历史和选择结果齐全 |
| TSN-02 | 冻结版本化 TopoRef schema 和迁移 |
stable/ambiguous/deleted 可往返 |
| TSN-03 | 自构建 OCCT 绑定暴露 Generated/Modified/IsDeleted | Pad/Pocket/Dress-up/Boolean 返回逐输入历史 |
| TSN-04 | 建立曲面、曲线、邻接、方向和几何签名 | 不依赖三角网格精度或瞬时索引 |
| TSN-05 | 一对一/一对多评分、置信度和迁移 | 参数编辑和平移保持安全引用 |
| TSN-06 | 对称、重复、分裂、合并的歧义策略 | 低置信度不强绑,保留候选 |
| TSN-07 | Boolean、多实体、Pattern 和跨 Body 历史 | 每个源对象均有可解释映射 |
| TSN-08 | LinkSub/外部几何/数据库/FCStd 持久化 | 保存加载和版本升级引用稳定 |
| TSN-09 | 3D 拾取、预选、高亮、候选替换和附着 API | 全链路只通过 Facade |
| TSN-10 | 100 模型、1000 参数变异和随机拓扑回放 | 无静默错绑,差异可审计 |
当前工作区仅在增加 occt-native 类型化历史合同,尚未连接自构建 OCCT Worker,不满足 TSN-03。
当前 Bitbybit 声明面的可重复证据由 ./npmw run check:bitbybit-history 固化:布尔 API 仍只有 HasGenerated(),BOPAlgo_Builder.Modified(shape) 属于部分能力,且列表没有稳定索引读取;该门禁会在绑定升级后要求重新审计。
Bitbybit npm 快照仍锁定为 .cache/bitbybit/bitbybit 提交 d3f52bd1fcf78148b60800d69ed6b42e53f4ad06、版本 1.1.1;它本身是生成 WASM/TypeScript 产物。现在已补充独立原生 provider:使用缓存 OCCT 提交 bb75017e915f6509a4bfa8b551f853352754c2da(8.0.0)和 TKBO 编译完整历史 Embind。由于两个 WASM 实例的 TopoDS_Shape* 地址空间不同,provider 内部句柄不得直接传给 Bitbybit;跨 provider 接入必须走版本化序列化协议。
7.2 Sketcher
| ID 范围 | 任务组 | 必须补齐的能力 |
|---|---|---|
| SK-01..04 | 清册与求解器 | 全命令/约束 manifest、planegcs 最小依赖、Emscripten 构建、确定性 Worker、取消/过期隔离 |
| SK-05 | 几何 | 点、线、折线、圆、圆弧、椭圆/椭圆弧、B-spline、周期曲线、构造几何、内部/外部几何 |
| SK-06..07 | 约束 | 几何、尺寸、驱动/参考、Block、表达式;DOF、冗余、冲突、部分冗余与诊断分类 |
| SK-08 | 支持与外部几何 | 基准面/平面/面附着、投影、CarbonCopy、跨对象 TopoRef 迁移 |
| SK-09 | 编辑器 | 创建/修剪/延伸/分割、拖拽、自动约束、约束列表、虚拟空间、键鼠回放 |
| SK-10 | B-spline 专项 | 控制点、节点、权重、次数、周期、约束限制和编辑器 |
| SK-11 | 特征轮廓 | 闭合/开放/多环/自交验证,驱动 Pad/Pocket/Revolution/Pipe/Loft |
| SK-12 | 黄金与压力 | 500 模型,欠约束/全约束/冲突/冗余/拖拽/外部几何覆盖 |
8. W3:Part 与 Part Design 参数化闭环
| ID 范围 | 任务组 | 必须补齐的能力 |
|---|---|---|
| PART-01..04 | 基础 Shape | 全基本体、Placement、ShapeBuilder、Line/Plane/Helix/Prism/Wedge、Compound/CompSolid/Solid/Shell/Wire |
| PART-05..08 | Boolean/检查 | Union/Cut/Common/Fragments、Section/Slice、Refine、BRepCheck、容差、自交、修复和错误语义 |
| PART-09..12 | 生成/修改 | Extrude/Revolve/Mirror/Scale/Offset/Thickness/Loft/Sweep/Pipe、Fillet/Chamfer/Draft |
| PART-13..16 | 拓扑/互操作 | ShapeBinder、SubShapeBinder、多实体历史、测量、颜色、STEP/IGES/BREP 与黄金套件 |
| PD-01..03 | Body/基准/附着 | Body/Tip/Origin、DatumPlane/Line/Point、Support/MapMode/AttachmentOffset、跨 Body 规则 |
| PD-04..07 | 基础特征 | Pad/Pocket/Revolution/Groove 的两长度、对称、反向、到面/到首个/到最后、Midplane、Taper |
| PD-08..10 | 放样与管道 | Additive/Subtractive Loft/Pipe、截面排序、路径、过渡、方向和失败恢复 |
| PD-11..13 | Dress-up | Fillet/Chamfer/Draft/Thickness 的稳定选边选面、变半径/模式、局部历史 |
| PD-14..16 | 变换与孔 | Mirrored/Linear/Polar/MultiTransform 的特征列表/轴面/单实体;Hole 轮廓、定位、沉孔、锪孔、钻尖、螺纹和标准 |
| PD-17..18 | 高级链与验收 | Boolean、ShapeBinder、Clone、抑制/Tip 重定向、多配置;完整参数编辑/Undo/FCStd 回放 |
9. W4:文件、项目和数据交换
| ID | 任务 | 退出条件 |
|---|---|---|
| FC-01..03 | FCStd 样例与安全容器 | 核心/扩展对象样例;ZIP/XML/资源限制和恶意文件拒绝 |
| FC-04 | Document.xml/GuiDocument.xml 双向映射 |
树、Property、Extension、视图状态可往返 |
| FC-05 | BRep/Shape/缩略图资源读写 | 精度、拓扑数、颜色和资源引用有差异报告 |
| FC-06 | Expression/Unit/Link/TopoRef/Sketch 序列化 | 保存后可由 FreeCAD 重算或明确 proxy |
| FC-07 | 未知对象/属性/扩展原样保留 | 读写后无静默丢失,脚本永不自动执行 |
| FC-08 | STEP/IGES/BREP 导入导出 | 100 个模型的单位、颜色、几何和拓扑黄金 |
| FC-09 | STL/OBJ/PLY/DXF/SVG/PDF/glTF/IFC/CSV/JT/IDF | 每种格式有能力、精度、失败和 round-trip 报告 |
| FC-10 | FreeCAD↔WebCAD↔FreeCAD 双向回放 | 核心对象可编辑,代理对象字节/语义保留 |
| FC-11 | 大文件/损坏/中断/恢复 | 能力上限内不崩溃,超限明确拒绝或流式降级 |
| PKG-01..04 | .webcad 项目包 |
manifest/hash/schema、导入导出、备份、迁移回滚、干净浏览器恢复 |
10. W5-W7:工作台任务
10.1 生产文档与二维
| ID 范围 | 模块 | 任务范围 |
|---|---|---|
| TD-01..15 | TechDraw | Page/Template、正投影视图、投影组、剖视/局部/辅助/断开、隐藏线、尺寸/公差/GD&T、中心线、气泡、注释、SVG/PDF/打印比例、TopoRef 更新 |
| SS-01..10 | Spreadsheet | Sheet/Cell、公式、alias、样式/合并、行列操作、对象绑定、DAG 循环、CSV、XLSX 能力决策、大表性能 |
| DRAFT-01..14 | Draft | Working Plane、网格/捕捉、Line/Wire/Arc/Circle/Ellipse/Rectangle/Polygon/BSpline/BezCurve、Text/Dimension、Move/Rotate/Scale/Offset/Trim/Array/Clone、Layer 与参数化 |
| PLOT-01..06 | Plot | 数据序列、轴/图例/样式、Spreadsheet/结果绑定、更新、图片/SVG/CSV 输出 |
10.2 高级建模和工程
| ID 范围 | 模块 | 任务范围 |
|---|---|---|
| ASM-01..16 | Assembly | Assembly/Component/Link、LCS/Joint、固定/距离/角度/滑动/转动/球等连接、Ondsel solver WASM、变体、运动、碰撞、爆炸图、BOM、FCStd |
| BIM-01..20 | BIM | Site/Building/Level/Space、Wall/Structure/Slab/Roof/Stairs/Window/Door/Equipment、材料/属性集、Draft 联动、IFC2x3/IFC4、分类、数量/清单、代理 |
| MESH-01..14 | Mesh/MeshPart | STL/OBJ/PLY、生成/转换、分析、法向、非流形、自交、孔修补、平滑、简化、布尔、截面、大网格 Worker/LOD |
| SURF-01..14 | Surface | Bezier/BSpline、Ruled/Loft/Sweep、Fill、Sections、Offset、Extend、Trim、Split、Join/Sew、连续性和容差、TopoRef |
| FEM-01..18 | Fem | Analysis、Material、Geometry/element sets、网格器、边界/载荷、CalculiX/Elmer 等求解器能力、WASM/远端策略、求解、结果场、单位、VTK/导出 |
| CAM-01..20 | CAM | Job/Stock、ToolBit/Controller、SetupSheet、Profile/Pocket/Contour/Drill/Adaptive/Surface、dress-up、仿真、碰撞、post sandbox、G-code 黄金 |
| ROBOT-01..12 | Robot | 机器人模型、轴/姿态、轨迹、工作空间、运动学、碰撞、程序与控制器导出;外部设备能力分级 |
| INSP-01..10 | Inspection/Measure | 距离/角度/面积/体积/曲率、剖切、偏差、几何检查、TopoRef 标注、报告、单位/精度和导出 |
10.3 数据、应用与长尾模块
| ID 范围 | 模块 | 任务范围 |
|---|---|---|
| PTS-01..08 | Points | 点云导入、显示、裁剪、变换、下采样、曲面/网格转换、大数据 Worker |
| RE-01..10 | ReverseEngineering | 点/网格采样、曲线/曲面拟合、截面、识别、误差可视化和可编辑结果 |
| OSC-01..08 | OpenSCAD | .scad 导入/导出、CSG 映射、外部 OpenSCAD 可用性、沙箱、颜色/单位和代理 |
| IDF-01..06 | IDF | PCB/元件/孔/板框导入导出、单位、层/颜色、往返 |
| JT-01..06 | JtReader | JT 版本/压缩能力、装配树、几何/PMI/颜色、流式读取、代理 |
| MAT-01..08 | Material | 材料卡、物理/外观属性、继承、库、单位、BIM/FEM/CAM 共享和 FCStd |
| IMP-01..08 | Import | 格式注册、探测、单位、颜色、进度、取消、错误和批量导入统一层 |
| APPMOD-01..08 | Start/Help/Show/Web/Cloud | 最近项目、模板、示例、离线帮助、对象展示/分享、URL 安全、云连接器能力和隐私 |
| ADDON-01..10 | AddonManager | 插件目录、签名/来源、依赖、安装/更新/卸载、权限、隔离、回滚、离线包;不可执行桌面 Python 时明确代理 |
| SCRIPT-01..10 | Python/宏/控制台 | FreeCAD API 兼容面、Pyodide/受限解释器决策、文件/网络权限、录制/回放、超时、资源配额、不可端口 API 诊断 |
| GUI-REST-01..10 | 桌面通用功能 | 多窗口/MDI 等价、剪贴板、打印、参数编辑器、自定义工具栏/快捷键、主题、语言、导航设备能力 |
| DEV-01..06 | Sandbox/TemplatePyMod/Test/Tux | 开发模板、测试运行器、GUI 自动化入口和明确非产品能力矩阵 |
11. W8:质量与发布门禁
| ID | 任务 | 退出条件 |
|---|---|---|
| QA-01 | 单元、属性、parser、图算法与领域状态覆盖 | 核心错误分支和不变量有自动测试 |
| QA-02 | FreeCAD CLI/GUI 对照器 | 每个兼容命令至少一个成功和一个失败 fixture |
| QA-03 | Chrome/Firefox/Safari E2E 与视觉基线 | 目标版本矩阵可审计,无 P0/P1 回归 |
| QA-04 | 几何/求解确定性与 fuzzing | 公差内稳定,随机输入不崩溃/错绑 |
| QA-05 | 性能和内存 | 1000 对象、百万三角形、大装配、大表、长会话 P95/峰值达预算 |
| QA-06 | Worker/WASM/OPFS 故障注入 | 取消、崩溃、配额、断电点、过期结果和恢复行为通过 |
| QA-07 | 文件与消息安全 | zip bomb、路径穿越、XML、表达式、脚本、post、插件和 Worker 消息 fuzzing 通过 |
| QA-08 | 可访问性/国际化/移动 | 键盘核心流、焦点、读屏、locale、长文本和目标视口通过 |
| REL-01 | PWA/离线/cache/COOP/COEP/CSP | 首装、升级、离线和缓存失效可恢复 |
| REL-02 | 数据迁移与回滚演练 | 最近支持版本可升级,可回滚或无损导出 |
| REL-03 | SBOM/许可证/漏洞/产物签名 | 无未知二进制和未处置高危问题 |
| REL-04 | 能力矩阵和差异报告 | 每项功能有准确等级,无未解释 unsupported |
| REL-05 | 发布 runbook/遥测/支持流程 | 可部署、监控、诊断、恢复和撤回 |
12. BYB-04 原生拓扑历史与跨 WASM 传输增量
本轮已完成 BYB-04 的第一版实际编译和 BYB-05 的协议合同层:native/occt-history 从缓存 OCCT bb75017e915f6509a4bfa8b551f853352754c2da(8.0.0)构建 TKBO、TKDESTEP、TKXSBase、TKDE 和 Embind WASM,./npmw run test:occt-history 通过,shapeToStep -> booleanHistoryFromStep(cut) smoke case 返回 42 条原生关系记录。mapNativeOcctHistoryRecords、createNativeOcctStepHistoryBridge 和版本化 NativeOcctHistoryCoordinator 已把 provider 协议接入 Facade 类型边界,覆盖 STEP 校验、取消、超时和 stale 文档版本。该 provider 当前仍是独立 WASM 实例;跨 Bitbybit 主 WASM 只能通过 STEP 文本序列化交换,不能直接传递指针。
该增量不提升完整 FreeCAD 兼容等级:原生 provider 现在可通过 Facade geometry.configureNativeHistory() 显式配置并进入 Boolean 重算,但仍不是默认 GeometryRuntime,也未覆盖全部 PartDesign/工作台操作;浏览器真实 WASM 实例化、Worker 崩溃恢复、STEP 精度/单位策略、BRep/IGES 和 Bitbybit↔原生↔FreeCAD 三方黄金差分仍由 BYB-05..08、TSN-03..10、FC-08 和发布门禁负责。
13. 当前真实状态与最近执行队列
当前仅 Part Design、Part、Sketcher 是 experimental;Draft、TechDraw、Spreadsheet、Assembly、Mesh 只有 UI/只读原型,其余多数模块未实现。FCStd 已有安全预检、元数据、对象属性字段投影和 proxy 报告,但仍不可编辑/双向 round-trip。基础 oracle 只有 5 个 Part 场景。
本机参考环境、R0-R9 执行批次、立即队列和单项完成定义见 FreeCAD 1.1.1 全功能对标执行路线图。当前缓存 oracle 是 headless Part/Material/Measure 子集;完整桌面工作台行为必须由 O2 oracle 单独采集。
最近执行队列不得跳过依赖:
- 完成
BASE-01..04、INV-01..06和BYB-01..03,生成全命令/对象/属性清册、完整 oracle 和可复现 Bitbybit/OCCT 源码构建。 - 完成
BYB-04..08与TSN-03..10:扩展真正 OCCT 历史、稳定签名、跨 Boolean、3D 选择与三方回放。 - 完成
SK-03..12:planegcs WASM、全约束、编辑器、外部几何和压力套件。 - 完成
CORE-09..12、PART-*、PD-*,通过 Part Design 参数化闭环。 - 完成
FC-04..11和PKG-*,通过 FCStd 双向 round-trip。 - 依次完成
TD-*、SS-*、DRAFT-*、PLOT-*。 - 依次完成
ASM-*、BIM-*、MESH-*、SURF-*。 - 完成 FEM/CAM/Robot/Inspection、数据模块、应用模块、脚本/扩展和桌面通用能力。
- 完成
QA-*、REL-*,F0-F9/G0-G9 全部通过后才允许宣称“完整对标”。
14. 里程碑维护规则
每个独立里程碑必须同步实现、聚焦测试、本账本状态、config/compatibility-matrix.json、总体方案和接续状态。统一执行:
./npmw run verify
git diff --check
jq empty config/compatibility-matrix.json
涉及原生 oracle 的里程碑另执行:
./npmw run test:golden:freecad
提交信息、差异报告和兼容等级必须准确描述边界;不得把 facade 合同、类型、UI 或 mock 测试写成 FreeCAD 几何/文件兼容已完成。