diff --git a/docs/29-追平最后7%计划.md b/docs/29-追平最后7%计划.md new file mode 100644 index 0000000..aad6edb --- /dev/null +++ b/docs/29-追平最后7%计划.md @@ -0,0 +1,127 @@ +# 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** + +1. 新建 `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 导入一站式修复 + +2. 增强 `src/brep/ssi_boolean.cpp`: + - 退化检测:共面/共线/切触自动降级到容差路径 + - 奇异点处理:tangent contact 生成退化边而非崩溃 + - 精确谓词全覆盖:所有分类路径使用 GMP + +3. 增强 `src/brep/step_import.cpp`: + - 破损文件恢复:跳过损坏实体,继续解析 + - 非标实体映射:未知实体 → 近似 B-Rep + - 导入诊断报告:哪些实体成功/失败/近似 + +4. 测试:`tests/brep/test_tolerant_modeling.cpp` (~20项) +5. 测试:`tests/brep/test_robust_boolean.cpp` 增强 (~15项) + +### M2 — A级曲面 + 六面体网格 + +**对标 CGM Class-A + ANSYS Hex Meshing** + +1. 增强 `src/curves/class_a_surfacing.cpp`: + - `g3_blend_with_constraints` — 带G0/G1/G2/G3约束的过渡 + - `surface_energy_minimization` — 薄板能量最小化光顺 + - `curvature_continuity_optimization` — 曲率连续优化(迭代精化) + - `reflection_line_analysis` — 反射线不连续性检测+修复 + +2. 增强 `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) + +3. 测试:`tests/curves/test_class_a_surfacing.cpp` 增强 (~10项) +4. 测试:`tests/mesh/test_hex_mesh.cpp` (~12项) + +### M3 — 约束求解 + 制图标准 + +**对标 D-Cubed + AutoCAD 制图** + +1. 增强 `src/brep/constraint_solver.cpp`: + - `DOFAnalyzer` — 完整自由度分析(每个零件 6DOF) + - `RedundancyDetector` — 冗余约束检测+建议删除 + - `ConstraintPropagator` — 约束传播(改一处→联动更新) + - `KinematicChainSolver` — 机构运动链求解(闭环) + +2. 新建 `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)` — 一键应用标准 + - 尺寸样式/线型/字体/箭头/公差格式自动配置 + +3. 测试:`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+)和真实场景打磨。