P3-03: add OCCT primitives and placement
This commit is contained in:
@@ -1596,7 +1596,7 @@ P0 基线/治理
|
||||
| P5-01 Three.js 视口适配器 | `IN PROGRESS` | `src/facade/threeViewport.ts` 使用 `three@0.185.1`,已挂载 WebGL2 场景和资源释放 |
|
||||
| P3-01 Bitbybit OCCT WASM 运行时 | `IN PROGRESS` | 精确锁定 `@bitbybit-dev/occt-worker@1.1.1`,专用 Worker 可加载 34,524,750 字节 OCCT WASM;尚未建立 FreeCAD/OCCT 自构建脚本,不能标记完成 |
|
||||
| P3-02 几何句柄与网格协议 | `IN PROGRESS` | Facade 已定义并实现受控 `ShapeHandle`、`MeshAsset`、`SubshapeRef` 类型;底层 OCCT hash 不出运行时,句柄篡改/释放后访问被拒绝;稳定子形状命名尚未实现 |
|
||||
| P3-03 基本体和变换 | `IN PROGRESS` | 真实 OCCT Box 创建与三角化通过;Cylinder/Sphere/Cone、Placement、单位误差预算和黄金模型尚未实现 |
|
||||
| P3-03 基本体和变换 | `IN PROGRESS` | 真实 OCCT Box/Cylinder/Sphere/Cone 和 FreeCAD 风格 Placement 已通过浏览器矩阵;0.05 mm 网格精度下曲面包围盒最大离散误差约 0.023 mm;自动化浏览器黄金测试尚未进入 CI |
|
||||
| P5-02 网格增量接入 | `IN PROGRESS` | Three Adapter 可用 `BufferGeometry` 接收 Facade `MeshAsset`,替换时释放旧 GPU geometry;对象缓存与文档增量同步尚未实现 |
|
||||
| P8-01 第一批自动化场景 | `IN PROGRESS` | `tests/facade.test.ts` 已覆盖初始化、schema、串行持久化队列、自动保存合并、资源引用、事件、任务生命周期、禁用命令、请求上下文、特征提交和历史;E2E/黄金几何待补齐 |
|
||||
|
||||
@@ -1633,4 +1633,18 @@ P0 基线/治理
|
||||
| Three 网格消费 | `PASS` | `MeshAsset` 转为 Three `BufferGeometry`,旧 geometry 在替换/销毁时释放;选择变化不再重建场景 |
|
||||
| 生产构建 | `PASS` | Vite 输出独立 `geometryWorker` 与 OCCT WASM;WASM 约 34.5 MB,gzip 约 8.6 MB |
|
||||
|
||||
限制和下一任务:P3-02 还需设计稳定 `SubshapeRef` 的持久命名算法;P3-03 继续加入 Cylinder、Sphere、Cone 和 Placement,并用黄金包围盒/体积核验;P5-02 需要按文档对象 ID 建立多对象网格缓存,而不是仅加载一个启动预览实体。
|
||||
限制和下一任务:P3-02 还需设计稳定 `SubshapeRef` 的持久命名算法;P3-03 需要把已通过的浏览器黄金包围盒矩阵纳入 CI,并补充体积核验;P5-02 需要按文档对象 ID 建立多对象网格缓存,而不是仅加载一个启动预览实体。
|
||||
|
||||
### 16.12 P3-03 基本体与 Placement 验证记录
|
||||
|
||||
所有输入先在 Facade 边界验证有限数、正尺寸、角度范围、非零方向向量和文档版本;错误输入不会触发 Worker 初始化。Placement 使用平移和轴角旋转,固定 `scaleFactor=1`,不把缩放混入 FreeCAD Placement 语义。变换产生新句柄,源形状保持不变。
|
||||
|
||||
| 算例 | 结果 | 包围盒/误差 |
|
||||
|---|---|---|
|
||||
| Cylinder `r=2,h=4,Y轴,中心原点` | 106 顶点、100 三角形 | X `[-1.9854,1.9854]`、Y `[-2,2]`、Z `[-2,2]`;最大离散误差约 0.0146 mm |
|
||||
| Sphere `r=1.5,center=[1,2,3]` | 168 顶点、306 三角形 | Z `[1.5,4.5]`;X/Y 极值最大离散误差约 0.0228 mm |
|
||||
| Cone `r1=2,r2=1,h=3,Y轴` | 138 顶点、160 三角形 | Y `[0,3]`、Z `[-2,2]`;X 极值误差约 0.0146 mm |
|
||||
| Box Placement `translation=[5,-1,2]` | 24 顶点、12 三角形 | 变换后 X `[4,6]`、Y `[-3,1]`、Z `[0.5,3.5]`,与解析值一致 |
|
||||
| 相同 Box 双句柄 | `PASS` | 释放第一个句柄后第二个仍可网格化;最终引用释放才删除 OCCT 缓存形状 |
|
||||
|
||||
浏览器验证使用 `crossOriginIsolated=true` 的 Chrome、专用 OCCT Worker 和 `precision=0.05`。上述曲面误差均小于网格精度;这是三角网格显示误差,不代表 B-Rep 几何尺寸误差。
|
||||
|
||||
Reference in New Issue
Block a user