Files
ViewDesignEngine/docs/24-v4.5-开发计划.md
T

118 lines
3.9 KiB
Markdown
Raw Normal View History

# 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` | **新建** | 开发计划 |