ViewDesignEngine vs 成熟几何引擎 — 严谨差距分析
编制: 2026-07-27 | 原则: 不做百分比估算,逐项对比实际能力
方法论
- 参照系: Parasolid V35(公开文档)、Open CASCADE 7.8(开源可见)、ACIS R30(公开文档)
- 判定标准: ✅ 完整实现 | ⚠️ 部分实现/未经充分验证 | ❌ 缺失
- 不做加权评分,如实列出每项差距
一、B-Rep 拓扑与建模
1.1 拓扑数据结构
| 能力 |
Parasolid |
ACIS |
OCCT |
VDE |
说明 |
| Vertex/Edge/Loop/Face/Shell/Body 层次 |
✅ |
✅ |
✅ |
✅ |
|
| 拓扑与几何分离 |
✅ |
✅ |
✅ |
✅ |
|
| 非流形拓扑 |
✅ |
❌ |
❌ |
❌ |
线框+面片混合模型 |
| 多体零件 |
✅ |
✅ |
✅ |
⚠️ |
VDE有Body但未充分测试多体交互 |
| 区域(Region)/体 |
✅ |
✅ |
✅ |
⚠️ |
封闭壳识别为体 |
1.2 几何表示
| 能力 |
Parasolid |
ACIS |
OCCT |
VDE |
说明 |
| NURBS 曲线(C0/C1/C2) |
✅ |
✅ |
✅ |
✅ |
|
| NURBS 曲面(C0/C1/C2) |
✅ |
✅ |
✅ |
✅ |
|
| 解析曲线(直线/圆/椭圆) |
✅ |
✅ |
✅ |
✅ |
|
| 解析曲面(平面/圆柱/圆锥/球/环) |
✅ |
✅ |
✅ |
✅ |
|
| Trimmed Surface(裁剪曲面) |
✅ |
✅ |
✅ |
✅ |
v5实现 |
| p-curve(参数空间曲线) |
✅ |
✅ |
✅ |
⚠️ |
VDE支持但未在所有路径验证 |
| 曲线在曲面上的投影 |
✅ |
✅ |
✅ |
❌ |
布尔/修复需要 |
| 曲面延伸(多种方式) |
✅ |
✅ |
✅ |
✅ |
v5 |
| 曲面过渡(blend) |
✅ |
✅ |
⚠️ |
✅ |
v5滚动球 |
| Offset曲面(等距) |
✅ |
✅ |
✅ |
⚠️ |
v5 stub级别 |
1.3 欧拉操作
| 操作 |
Parasolid |
ACIS |
OCCT |
VDE |
| MEV(边分点) |
✅ |
✅ |
✅ |
✅ |
| KEV(点删边) |
✅ |
✅ |
✅ |
✅ |
| MEF(面分边) |
✅ |
✅ |
✅ |
✅ |
| KEF(边删面) |
✅ |
✅ |
✅ |
✅ |
| KEMR(删内环边) |
✅ |
✅ |
✅ |
✅ |
| MEKR(内环建边) |
✅ |
✅ |
✅ |
✅ |
| 完整欧拉操作集(10+) |
✅ |
✅ |
✅ |
❌ |
差距小结
| # |
差距 |
严重性 |
工作量 |
| 1 |
非流形拓扑 |
低(专业需求) |
大 |
| 2 |
曲线在曲面上投影 |
高(布尔/修复依赖) |
中 |
| 3 |
Offset曲面完整性 |
中(模具设计需要) |
中 |
| 4 |
完整欧拉操作集 |
低(高层API可替代) |
小 |
二、布尔运算
2.1 布尔核心
| 能力 |
Parasolid |
ACIS |
OCCT |
VDE |
说明 |
| Union/Intersection/Difference |
✅ |
✅ |
✅ |
✅ |
|
| 面-面求交(SSI) |
✅ |
✅ |
✅ |
✅ |
v5 SSI |
| 容差感知布尔 |
✅ |
✅ |
⚠️ |
✅ |
v10 tolerant |
| 退化情况处理 |
✅ |
✅ |
⚠️ |
⚠️ |
共面/共线/切触,v10增强但未充分测试 |
| 非流形布尔 |
✅ |
❌ |
❌ |
❌ |
|
| 布尔后自动修复 |
✅ |
✅ |
❌ |
✅ |
heal pipeline |
2.2 布尔可靠性
| 场景 |
Parasolid |
OCCT |
VDE |
| 两个分离体 union |
✅ |
✅ |
✅ |
| 重合面 union |
✅ |
⚠️ |
⚠️ |
| 切触(tangent) union |
✅ |
❌ |
⚠️ |
| 共面 difference |
✅ |
❌ |
⚠️ |
| 薄壁件布尔 |
✅ |
❌ |
❌ |
| 大数量(1000+)面布尔 |
✅ |
⚠️ |
❌ 未测试 |
| 自交体布尔 |
✅ |
❌ |
❌ |
差距小结
| # |
差距 |
严重性 |
工作量 |
| 1 |
切触/共面 100%可靠性 |
致命 |
大(需大量测试) |
| 2 |
薄壁件布尔 |
高 |
中 |
| 3 |
大面数布尔性能 |
中 |
中 |
| 4 |
自交体布尔 |
低 |
大 |
| 5 |
非流形布尔 |
低 |
大 |
三、数据交换
3.1 导入能力
| 格式 |
Parasolid |
ACIS |
OCCT |
VDE |
健壮性对比 |
| STEP AP203/214 |
✅ |
✅ |
✅ |
✅ |
OCCT>VDE(解析器成熟度) |
| STEP AP242 |
✅ |
✅ |
❌ |
✅ |
|
| IGES 5.3 |
✅ |
✅ |
✅ |
✅ |
|
| Parasolid XT |
✅原生 |
✅ |
❌ |
⚠️ |
VDE仅文本格式 |
| ACIS SAT |
✅ |
✅原生 |
❌ |
⚠️ |
VDE仅文本格式 |
| JT |
✅ |
✅ |
❌ |
⚠️ |
VDE基础实现 |
| IFC |
✅ |
✅ |
✅ |
⚠️ |
VDE基础实体 |
| 破损文件恢复 |
✅ |
✅ |
⚠️ |
⚠️ |
v10增强但未达到Parasolid水平 |
| 非标STEP实体 |
✅ |
✅ |
⚠️ |
⚠️ |
v10非标映射 |
3.2 导出能力
| 格式 |
Parasolid |
ACIS |
OCCT |
VDE |
| XT(二进制) |
✅ |
✅ |
❌ |
❌ |
| SAT(二进制) |
✅ |
✅ |
❌ |
❌ |
| JT(含PMI) |
✅ |
✅ |
❌ |
❌ |
差距小结
| # |
差距 |
严重性 |
| 1 |
XT/SAT/JT 二进制格式 |
致命(工业互操作必须) |
| 2 |
破损STEP恢复不完善 |
高 |
| 3 |
IFC 深度覆盖(所有建筑实体) |
低(BIM专项) |
四、曲面质量与分析
4.1 连续性
| 能力 |
Parasolid |
CGM(CATIA) |
OCCT |
VDE |
| G0 位置连续 |
✅ |
✅ |
✅ |
✅ |
| G1 切线连续 |
✅ |
✅ |
✅ |
✅ |
| G2 曲率连续 |
✅ |
✅ |
⚠️ |
✅ |
| G3 曲率变化率连续 |
✅ |
✅ |
❌ |
✅ v5 |
| G3+ 带约束过渡 |
✅ |
✅ |
❌ |
⚠️ v10 基础 |
| 曲面能量最小化光顺 |
✅ |
✅ |
❌ |
⚠️ v10 基础 |
4.2 分析工具
| 能力 |
Parasolid |
CGM |
OCCT |
VDE |
| 高斯曲率 |
✅ |
✅ |
✅ |
✅ |
| 平均曲率 |
✅ |
✅ |
✅ |
✅ |
| 斑马纹 |
✅ |
✅ |
❌ |
✅ |
| 高光线 |
✅ |
✅ |
❌ |
✅ |
| 反射线 |
✅ |
✅ |
❌ |
✅ |
| 等照度 |
✅ |
✅ |
❌ |
✅ |
| 曲率梳 |
✅ |
✅ |
❌ |
✅ |
| 曲面诊断自动修复 |
✅ |
✅ |
❌ |
⚠️ |
差距小结
| # |
差距 |
严重性 |
| 1 |
G3+约束过渡不够成熟 |
中(汽车/消费品需要) |
| 2 |
曲面光顺精度 vs CGM |
中 |
| 3 |
诊断自动修复 |
中 |
五、性能与鲁棒性 — 最大的真实差距
5.1 测试与验证
| 指标 |
Parasolid |
ACIS |
OCCT |
VDE |
| 测试用例数 |
~50,000 |
~30,000 |
~10,000 |
~1,000 |
| 模糊测试 |
✅ 持续运行 |
✅ |
⚠️ |
⚠️ 基础 |
| 回归测试 |
✅ 每次提交 |
✅ |
✅ |
❌ 无CI |
| 真实用户bug积累 |
35年×数千客户 |
35年 |
20年 |
0 |
| 边界case库 |
数十万模型 |
数十万 |
数万 |
0 |
5.2 已知差距(可能导致崩溃的场景)
- 自交几何体处理 — STEP导入的破损模型,Parasolid能恢复,VDE可能崩溃
- 退化几何 — 零长度边、零面积面、重合顶点,Parasolid自动清理
- 数值溢出 — 极大/极小坐标值(1e-15 ~ 1e15),Parasolid有保护
- 极端纵横比 — 1:10000的面,Parasolid正常,VDE未测试
- 内存耗尽恢复 — Parasolid有graceful degradation,VDE会OOM
差距小结 — 致命
| # |
差距 |
严重性 |
| 1 |
没有真实场景测试 |
致命 |
| 2 |
边界case崩溃风险 |
致命 |
| 3 |
无CI/CD自动化测试 |
高 |
| 4 |
无模糊测试持续运行 |
高 |
六、VDE 实际强于竞品的维度
| 能力 |
VDE |
说明 |
| Apache 2.0 |
✅ |
OCCT的LGPL限制商用修改,VDE完全自由 |
| 现代C++17 |
✅ |
Parasolid/ACIS背负C遗产,API老旧 |
| 零运行时依赖 |
✅ |
仅header-only Eigen,OCCT需十几个系统库 |
| 代码量精简 |
✅ |
76K vs OCCT 5M,维护成本极低 |
| 内置CAM |
✅ |
商业引擎不内置CAM |
| SDF+可微分几何 |
✅ |
竞品无此能力 |
| 中文优先 |
✅ |
文档/注释/社区中文 |
七、诚实总结
功能覆盖
VDE 在 B-Rep 拓扑、NURBS 曲面、格式交换的功能种类上,已不输商业引擎太多。大厂有的功能,VDE 基本都有对应的实现。
真正的差距 — 三个字:没测过
| Parasolid |
VDE |
| 50,000 个测试,每天跑 |
~1,000 个测试,手动跑 |
| 35 年 × 数千客户的 bug 报告 |
0 个真实用户 |
| 数十万边界 case 模型库 |
0 |
| CI 每次提交全量回归 |
无 CI |
| 专门的模糊测试团队 |
基础模糊测试框架 |
| 航空航天/汽车认证 |
无 |
VDE 可以写出来 Parasolid 90% 的功能,但写不出 Parasolid 35 年的 bug 修复。
下一步
功能差距已经不是主要矛盾。真正需要的是:
- 测试基础设施建设 — CI/CD、自动化回归、模糊测试
- 边界 case 库 — 收集/生成退化模型
- 真实场景验证 — 对接实际应用,暴露问题
- 二进制格式 — XT/SAT/JT 二进制读写
- 代码审查和静态分析 — Coverity/clang-tidy 全量扫描