1.6 KiB
1.6 KiB
ViewDesignEngine v3.6 — Trimmed Surface + 健壮布尔
制定: 2026-07-24 | 状态: 执行中
核心目标
对齐工业 CAD 内核,从「能用」到「可靠」。
1. 🔧 TrimmedSurface 数据结构
B-Rep 的原子不是完整曲面,是裁剪曲面。
include/vde/brep/trimmed_surface.h— TrimmedSurface 类- 基曲面 + 裁剪环(p-curve 参数空间曲线列表)
evaluate(u, v)需先判断 (u,v) 是否在裁剪区域内- 重构
BrepModel::Face使用 TrimmedSurface - 测试:矩形裁剪球面 → 球面片
2. 🔗 Boolean 重写:SSI-based
替换 centroid 分类,成为真正的 CAD 内核布尔。
- Step 1: 对每个面对,计算曲面交线 (SSI)
- Step 2: 用交线分割两个面(生成 TrimmedSurface)
- Step 3: 对分割后的面片段分类 IN/OUT
- Step 4: 缝合保留的面片段
- 测试:Union_DisjointBoxes → 正确合并
- 测试:Intersection_OverlappingBoxes → 精确交集
- 性能:从 1.8s → 目标 0.5s
3. 🩹 拓扑修复
导入 STEP 后常见问题:间隙、重叠、方向错误。
heal_gaps— 合并距离 < tolerance 的顶点/边heal_orientation— 统一面方向heal_topology— 一站式修复- 测试:修复后的 body 通过 validate()
4. 🔄 变半径倒圆
fillet_variable(body, edge_id, r_start, r_end)- 沿边采样多个半径,线性插值
- 测试:盒子边缘 1→3mm 变半径倒圆
5. ⚡ 并行布尔(如果时间够)
- 面-面求交并行化
- 分类阶段并行化