1.9 KiB
1.9 KiB
ViewDesignEngine v3.3 工业级强化计划
制定: 2026-07-24 | 状态: 执行中
1. 🎯 B-Rep 面分割(Face Splitting)
当前布尔运算用 centroid 射线法分类,精度差。需要真正的面-面求交分割。
- 实现
split_face_by_plane(face, plane)— 平面分割单个面 - 实现
split_face_by_face(face_a, face_b)— 两个曲面求交分割 - 集成到 brep_boolean.cpp 替换 centroid 分类
- Validity 测试:分割后的面子集构成合法壳
2. 📐 NURBS 曲面求交
核心工业几何算法。B-Rep 布尔依赖此。
- 实现
intersect_surfaces(surf_a, surf_b)→ 交线曲线列表 - 算法:递归细分 + bounding box 剔除 + 牛顿精化
- 支持平面-曲面、曲面-曲面的交线计算
- 测试:平面交平面、平面交圆柱、圆柱交球
3. 🖥️ WebGL 查看器
在线预览 GLB/STL,嵌入 Gitea Wiki。
- 创建
viewer/目录,含 Three.js 单页应用 - 拖拽上传 GLB/STL 文件,Three.js 渲染
- 嵌入到 Wiki Home 页
- 支持旋转、缩放、线框/实体切换
4. 📦 Linux 包
降低安装门槛。
- 创建
packaging/DEBIAN/目录 control+rules+cmake安装make deb目标- 测试
apt install ./vde-3.3.0.deb
5. 📖 教程文档
从零开始的实用指南。
docs/tutorial/01-quickstart.md— 5 分钟上手docs/tutorial/02-sdf-modeling.md— SDF 隐式建模docs/tutorial/03-brep-modeling.md— B-Rep 工业建模docs/tutorial/04-export.md— STEP/STL/GLB 导出
6. 🧪 模糊测试
随机几何输入 + 断言,发现隐蔽 bug。
tests/fuzz/fuzz_boolean.cpp— 随机 B-Rep 布尔tests/fuzz/fuzz_sdf.cpp— 随机 SDF 参数tests/fuzz/fuzz_iges.cpp— 随机 IGES round-trip- CI 集成:每次 push 跑 100 轮模糊测试