Files
FreeCADWasmDev/docs/current/partdesign-profile-delivery.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

44 lines
4.2 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.
# PartDesign 当前文档交付
2026-09-09。已接通四项桌面业务:Body、NewSketch、Pad、Pocket,并确认新增的 `PartDesign:partdesign.document` 文档业务。原有创建/重算和保存重开两项保留,共七项正式通过。新增文档记录使完整清单由 1503 增至 1504,没有缩小范围。
## 复用与实现
- 复用已有 `FreeCADWebPartDesignRuntimeProbe`,其原本已链接 PartDesign、Sketcher、Part 和 OCCT。只增加 `PartDesignDocumentWorkflow.cpp` 文档适配和对应 Facade/Worker 接线,没有新增几何内核、合并独立 WASM 或重编译 OCCT。
- 原生 Body 持有草图和特征。矩形使用几何/尺寸约束,圆形使用圆心/半径约束,真实 Sketcher 解算均为 0 自由度。参数编辑驱动原生 `PartDesign::Pad/Pocket` 重算,保留 Profile、Base 和 Tip。
- `/partdesign.html` 已从旧 fixture 页面改为 React 工作区:多文档、多 Body、模型树、约束尺寸、位置、长度、反向、显示选择、撤销重做、删除、用户 FCStd 文件打开及 OPFS 保存重开。Three.js 仅显示 native OCCT 网格,使用 CAD 的 Z 向上视图。
- 用真实 FCStd 字节打开此前 AdditiveBox 路径生成的模型,确认已有实体保留并出现在模型树。旧移植成果没有被新页面排除。
- 错误输入、跨 Body Profile、被引用对象删除均验证文档及事务历史不变;保存重开后继续修改尺寸/深度,几何和原生依赖仍正确。
## 解阻与耗时
旧命令适配在临时文档里执行一次性几何,无法保持草图驱动关系。本轮直接调用已链接的原生特征类,复用上一轮修好的布尔入口;不通过临时 shape.extrude/cut 冒充持久的 Pad/Pocket 特征。
首次发布版复验暴露参数表选择切换竞态:原生体积和文件正确,输入框短暂显示旧宽度。改为绘制前同步选中对象参数,保留失败报告,最终复验通过,没有因此重建 WASM。
产物发布还增加暂存 WASM 的真实 `WebAssembly.validate` 及复制前后源文件一致性检查。源文件仍在链接或二进制不完整时拒绝替换旧产物;78,383,410 字节的当前 PartDesign WASM 校验为 true,耗时 0.086 秒。这仍不是整组 JS/WASM/data 的跨文件原子事务。
| 实测步骤 | 秒 |
|---|---:|
| 原生工作流源文件编译 | 8.550 |
| PartDesign dispatcher 编译 | 11.077 |
| 增量链接,最后一次记录 | 27.289 |
| 新业务组共享 WASM 加载 | 0.373 |
| 新业务组原生流程 | 2.892 |
| 新业务组浏览器流程 | 15.041 |
| 七项正式验收总计 | 20.689 |
| 七项相同证据复用 | 0.057 |
| 21 项接口、路由、几何边界及发布检查 | 0.777 |
共享组的 timing 不按报告条数重复相加,编译步骤可能并行。逐次 native 调用记录在证据的 `nativeTiming`。上述程序耗时不是整轮开发耗时:接口文件创建于 11:38:35,工作区文件创建于 11:47:31,用例文件创建于 11:52:14,最终包含旧模型兼容的验收于 12:25:03 完成。这些时间点之间包含阅读、设计、编辑、复核和多轮确认,不能归为纯编译时间。后续应直接扩展本轮的文档接口和工作区,避免再逐命令重建临时样例或页面。
## 证据与边界
- 当前七项正式报告:`business-evidence/9810111be7d7179ccc9cb5b1-20260909T042503416765.json`。
- 参数表竞态失败报告保留:`business-evidence/9dcd461eb6e987fd933bdbe3-20260909T040200293907.json`。
- 桌面/手机截图:`partdesign-profile-browser/pocket-{1440,390}.png`;画布像素非空、旋转交互及无水平溢出检查通过。
- TypeScript、几何边界检查和增量前端发布构建通过。后台因领取同组业务曾短暂停住父进程,之后已恢复;不需要用户再次启动。
- 后台更改导致 BIM 三项、Sandbox 一项既有结果指纹失效后,仅复验这四项,分别耗时 2.520、1.399 秒,通过记录留在账本,不算新功能。
尚未覆盖任意草图交互、曲线全类型、面附着、全部挤出模式及全部旧桌面命令入口;独立 WASM 间没有共享原生指针。下一步沿同一原生文档结构扩展剩余 Sketcher/PartDesign 业务,复用这些结果,不重做 DXF、基本实体或已完成布尔。