ddcfe01cba
Three parallel tracks:
M1 — Tolerant Modeling + Robust Boolean + STEP import
(tolerant edges/vertices, gap bridging, overlap resolution,
tolerant boolean, degenerate case handling, GMP full coverage)
M2 — Class-A Surfacing Deep + Advanced Hex Meshing
(G3+ constraints, surface energy minimization, curvature optimization,
mapped/submapped/multi-block hex meshing)
M3 — Constraint Solving + Drawing Standards
(DOF analysis, redundancy detection, kinematic chain solving,
ISO/ANSI/JIS complete rule sets, auto-apply standards)
9 files, ~5200 lines, 69 tests. Target: 87% → 93% (match ACIS)
4.9 KiB
4.9 KiB
ViewDesignEngine — 追平最后 7% 计划
目标:从 87% → 94%,追平 Parasolid/ACIS 核心能力
差距详解
🔴 致命差距(必须补齐)
| # | 差距 | 当前 | 目标 | 对标的 Parasolid 能力 |
|---|---|---|---|---|
| 1 | 容错建模 | 无 | 有 | 导入的"脏"几何自动修复,间隙/重叠容忍 |
| 2 | 鲁棒布尔容差 | 基础自适应 | 完善 | 退化情况(共面/共线/切触)100%正确处理 |
| 3 | STEP 健壮导入 | 基本 | 工业级 | 破损/截断/非标 STEP 尽力恢复 |
🟡 重要差距(建议补齐)
| # | 差距 | 当前 | 目标 |
|---|---|---|---|
| 4 | A级曲面深化 | G3基础 | G3+约束+曲面能量最小化 |
| 5 | 高级约束求解 | Newton基础 | 自由度分析+冗余检测+联动 |
| 6 | 六面体网格 | sweep基础 | map/submap/多块策略 |
| 7 | 制图标准模板 | 枚举存在 | ISO/ANSI/JIS 完整规则集 |
计划 — 三路并行攻克
M1 — 容错建模 + 鲁棒布尔
对标 Parasolid Tolerant Modeling
-
新建
include/vde/brep/tolerant_modeling.h+src/brep/tolerant_modeling.cpp:TolerantEdge/TolerantVertex— 带容差范围的拓扑元素merge_within_tolerance(body, tolerance)— 自适应合并gap_bridging(body, max_gap)— 间隙桥接(自动补面)overlap_resolution(body)— 重叠面解决tolerant_boolean(a, b, op)— 容差感知布尔- 先 heal → boolean → heal
- 失败面报告(哪些面导致布尔失败)
import_heal_pipeline(step_data)— STEP 导入一站式修复
-
增强
src/brep/ssi_boolean.cpp:- 退化检测:共面/共线/切触自动降级到容差路径
- 奇异点处理:tangent contact 生成退化边而非崩溃
- 精确谓词全覆盖:所有分类路径使用 GMP
-
增强
src/brep/step_import.cpp:- 破损文件恢复:跳过损坏实体,继续解析
- 非标实体映射:未知实体 → 近似 B-Rep
- 导入诊断报告:哪些实体成功/失败/近似
-
测试:
tests/brep/test_tolerant_modeling.cpp(~20项) -
测试:
tests/brep/test_robust_boolean.cpp增强 (~15项)
M2 — A级曲面 + 六面体网格
对标 CGM Class-A + ANSYS Hex Meshing
-
增强
src/curves/class_a_surfacing.cpp:g3_blend_with_constraints— 带G0/G1/G2/G3约束的过渡surface_energy_minimization— 薄板能量最小化光顺curvature_continuity_optimization— 曲率连续优化(迭代精化)reflection_line_analysis— 反射线不连续性检测+修复
-
增强
include/vde/mesh/fea_mesh.h+src/mesh/fea_mesh.cpp:mapped_hex_mesh— 映射法六面体(源面→目标面扫掠)submapped_hex_mesh— 子映射法(自动分区)multi_block_hex_mesh— 多块结构化六面体hex_quality_optimization— 六面体质量优化(untangling)
-
测试:
tests/curves/test_class_a_surfacing.cpp增强 (~10项) -
测试:
tests/mesh/test_hex_mesh.cpp(~12项)
M3 — 约束求解 + 制图标准
对标 D-Cubed + AutoCAD 制图
-
增强
src/brep/constraint_solver.cpp:DOFAnalyzer— 完整自由度分析(每个零件 6DOF)RedundancyDetector— 冗余约束检测+建议删除ConstraintPropagator— 约束传播(改一处→联动更新)KinematicChainSolver— 机构运动链求解(闭环)
-
新建
include/vde/brep/drawing_standards.h+src/brep/drawing_standards.cpp:IsoStandard— ISO 128/129 完整规则AnsiStandard— ASME Y14.5 完整规则JisStandard— JIS B 0001 完整规则apply_standard(drawing, standard, options)— 一键应用标准- 尺寸样式/线型/字体/箭头/公差格式自动配置
-
测试:
tests/brep/test_constraint_solver_3d.cpp增强 (~12项)
📊 预期成果
| 模块 | 新增文件 | 代码行数 | 测试 | 追平能力 |
|---|---|---|---|---|
| 容错建模 | 2 | ~1,200 | 20 | B-Rep 92→95% |
| 鲁棒布尔 | 1 增强 | ~800 | 15 | B-Rep 92→95% |
| STEP 健壮 | 1 增强 | ~500 | — | 交换 90→93% |
| A级曲面 | 1 增强 | ~600 | 10 | 曲面 90→93% |
| 六面体 | 1 增强 | ~700 | 12 | 网格 88→92% |
| 约束求解 | 1 增强 | ~600 | 12 | 装配 88→92% |
| 制图标准 | 2 | ~800 | — | 工程图 85→90% |
| 合计 | 9 | ~5,200 | 69 | 87→93% |
追平后预期
当前 → 目标
B-Rep: 92% → 95%
曲面: 90% → 93%
网格: 88% → 92%
交换: 90% → 93%
CAM: 82% → 82%
性能: 88% → 88%
工程图: 85% → 90%
装配: 88% → 92%
质量: 80% → 80%
─────────────────────────
综合: 87% → 93% ← 追平 ACIS(93%)
剩余 1% (93→94):需要测试积累(900→5000+)和真实场景打磨。