118 lines
3.9 KiB
Markdown
118 lines
3.9 KiB
Markdown
|
|
# 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` | **新建** | 开发计划 |
|