Files
FreeCADWasmDev/docs/current/part-primitives-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

3.2 KiB
Raw Blame History

主工作区 Part 实体业务

2026-09-09。本轮交付的是默认页面可操作的业务,不是新增调度统计或固定样例回执。OCCT、FreeCAD WASM、Three.js、React、OPFS 路线不变。

实际能力

  • 当前文档中创建圆柱、圆锥、球和圆环;原对象修改半径、高度和角度后重算,不重复创建对象。
  • 原生特征直接使用已有 Part::Cylinder/Cone/Sphere/Torus,由 FreeCAD/OCCT 产生形状、体积和网格;JS 不计算权威 CAD 几何。
  • 原生和 Facade 均检查参数范围;错误输入不改变原对象。实际返回的类型、参数和文档身份必须与请求一致。
  • 原生 FCStd 保留特征类型、参数和体积;主页面通过 OPFS 保存,重载后仍能编辑恢复的参数,支持对象移除。
  • 使用已有 Three.js 场景显示 native 网格。Playwright 在 1440x1000、390x844 检查实际截图像素及旋转视角后的帧变化,无横向溢出。

复用和构建

复用 PrimitiveFeature.cpp、现成 Part/OCCT 库、DocumentProbe 文档会话、Part 保存 Worker、项目状态与 Three.js 显示桥。不新增几何内核,不重编译 OCCT,不建立每个形状一个 WASM。原生适配仅增加 part.document/setPrimitive 和参数快照,沿用原有事务、重算、错误与保存链。

同一 Part 模块存在 PartBoxProbe 与 DocumentProbe 两种实际所有者。新增用例合同 buildOverrides 将四项业务指向 DocumentProbe,规划器按原生目标分组,防止用错误目标反复构建。有效证据同时检查 manifest 对应的原生源文件,不因 DocumentProbe 不以 Part 命名而漏记依赖。

验证

检查 结果
四项原生及默认页面业务 4/4,通过;开发版首次完整回合 18.502 秒
Part 新旧业务组合 15/15,通过;30.253 秒
发布版四项业务 4/4,通过;20.079 秒
发布版工作区回归 10/10,通过;16.522 秒
TypeScript 项目检查 通过
参数、路由、几何边界 Node 回归 14 项通过
业务复用、规划、上下文等 Python 回归 94 项通过,18.745 秒
发布构建 8.20 秒,其中公共产物增量同步 6.849 秒

证据在 docs/current/business-evidence/:

  • Part 15 项:52be7ce72cada00371451daf-20260909T021532520100.json。
  • 发布版四项:bcc8ff9f019467b877cc488c-20260909T021946822941.json。
  • Web 十项:815a9219e10b1a8b04f5db32-20260909T021944435759.json。

截图在 docs/current/part-primitives-browser/,按形状与视口保存。测试从实际浏览器截图读取像素,避免直接读取已清空的 WebGL 帧缓冲造成假空白;没有因此改变生产渲染设置。

剩余范围

本轮新增四项完整可操作业务;没有宣称所有 Part 命令、布尔/倒角/圆角、Sketcher/PartDesign 跨工作台或整个项目已完成。10:20 总量快照为 82/1503,后台仍在处理其余模块。总数会受其它模块当前指纹变化影响,不把本轮回归通过数或所有截图数当成新业务数。

本轮后台保持运行,没有暂停 watchdog。继续按 v3 恢复/开发轮转,优先成组打通用户当前文档和已有原生能力;通过证据有效时直接复用,不重做这些实体。