# ViewDesignEngine v4.5 — 拔模分析 + 增量网格 + 运动链求解 > 制定: 2026-07-26 | 状态: 🚧 执行中 > > 进度: 🚧 M1 拔模分析 | ⬜ M2 增量网格 | ⬜ M3 运动链求解 继 v4.4 B-Rep 地基加固(精确容差 + 欧拉操作)后,v4.5 补齐实用分析工具和运动学能力。 --- ## 1. 📐 拔模分析 (Draft Analysis) 模具设计中关键的一步:检查零件是否能从模具中脱出。 ### 1.1 核心功能 - [ ] `draft_angle(face, pull_direction)` — 单面拔模角计算 - [ ] `analyze_draft(body, pull_dir, min_draft_angle)` — 全模型拔模分析 - [ ] `DraftResult` 结构化输出:面分类 + 角度分布 - [ ] 面分类:positive(正拔模)/ negative(负拔模)/ zero_draft / undercut(倒扣) ### 1.2 拔模面生成 - [ ] `create_draft_face(face, pull_dir, angle)` — 按拔模角度偏转面 - [ ] `apply_draft(body, faces, pull_dir, angle)` — 批量拔模 ### 1.3 可视化 - [ ] 拔模角度分布热力图数据 - [ ] 拔模方向分析报告 ### 测试 — ~15 项 - 单面拔模角(平面/圆柱/球面) - 全模型分析(立方体/带倒扣零件) - 面分类正确性 - 拔模面生成 - 边界情况(平行面/垂直面/零面积面) --- ## 2. 🔄 增量网格 (Incremental Mesh) B-Rep 参数修改后,仅重建受影响区域的 tessellation,而非全量重新离散化。 ### 2.1 核心功能 - [ ] `IncrementalMesher` 类 — 维护 face_id → mesh 映射 - [ ] `invalidate_face(face_id)` — 标脏单个面 - [ ] `rebuild_dirty(brep_model)` — 仅重建脏面网格 - [ ] 与 `IncrementalUpdateEngine` 集成 ### 2.2 网格缓存 - [ ] 面级网格缓存(HalfedgeMesh 或三角面片列表) - [ ] 缓存命中统计 - [ ] 内存估算 ### 测试 — ~10 项 - 单面重建 - 多面批重建 - 缓存命中/失效 - 与增量更新引擎联动 - 性能对比:增量 vs 全量 --- ## 3. 🔗 运动链求解 (Kinematic Chain) 在 v4.0 运动仿真的基础上,添加经典机构学求解器。 ### 3.1 四连杆机构 - [ ] `FourBarLinkage` — 四杆机构定义(ground/crank/coupler/rocker) - [ ] `solve_fourbar(linkage, input_angle)` — 位置求解 - [ ] Grashof 条件判断 - [ ] 输出:输出角 + 传动角 + 死点检测 ### 3.2 齿轮传动 - [ ] `GearPair` — 齿轮副(模数/齿数/压力角) - [ ] `solve_gear(gear_pair, driver_angle)` — 传动比计算 - [ ] 渐开线齿廓生成(可选) ### 3.3 凸轮机构 - [ ] `CamFollower` — 凸轮-从动件系统 - [ ] `solve_cam(cam, cam_angle)` — 从动件位移/速度/加速度 - [ ] 凸轮轮廓生成 ### 测试 — ~18 项 - 四杆机构:曲柄摇杆/双曲柄/双摇杆 - Grashof 分类 - 传动角计算 - 死点检测 - 齿轮传动比验证 - 凸轮升程曲线 --- ## 里程碑 | 里程碑 | 内容 | 预计 | |--------|------|------| | **M1: 拔模分析** | draft_angle + analyze_draft + create_draft_face | — | | **M2: 增量网格** | IncrementalMesher + 缓存 + 增量重建 | — | | **M3: 运动链** | 四杆/齿轮/凸轮求解器 | — | --- ## 修改文件汇总 | 文件 | 操作 | 说明 | |------|------|------| | `include/vde/brep/draft_analysis.h` | **新建** | 拔模分析头文件 | | `src/brep/draft_analysis.cpp` | **新建** | 拔模分析实现 | | `tests/brep/test_draft_analysis.cpp` | **新建** | 拔模分析测试 | | `include/vde/brep/incremental_mesh.h` | **新建** | 增量网格头文件 | | `src/brep/incremental_mesh.cpp` | **新建** | 增量网格实现 | | `tests/brep/test_incremental_mesh.cpp` | **新建** | 增量网格测试 | | `include/vde/brep/kinematic_chain.h` | **新建** | 运动链头文件 | | `src/brep/kinematic_chain.cpp` | **新建** | 运动链实现 | | `tests/brep/test_kinematic_chain.cpp` | **新建** | 运动链测试 | | `tests/brep/CMakeLists.txt` | 修改 | 添加新测试 | | `src/CMakeLists.txt` | 修改 | 添加新源文件 | | `docs/24-v4.5-开发计划.md` | **新建** | 开发计划 |