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

4.2 KiB
Raw Blame History

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、基本实体或已完成布尔。