8be2f0ba0a
M1 — Draft Analysis (拔模分析): - draft_angle(face, pull_dir): compute draft angle from NURBS surface normal - analyze_draft(body, pull_dir, min_angle): full-model analysis with face classification - DraftFaceType: Positive/Negative/ZeroDraft/Undercut with area-weighted stats - draft_report(): human-readable moldability report - create_draft_face / apply_draft: face rotation stubs (needs mutable surface access) M2 — Incremental Mesh (增量网格): - IncrementalMesher: face_id → mesh fragment mapping with dirty tracking - invalidate_face / rebuild_dirty / rebuild_all: targeted remeshing - merged_mesh(): combine clean face meshes into single HalfedgeMesh - Cache statistics: hit rate + memory estimation M3 — Kinematic Chain (运动链求解): - FourBarLinkage: Grashof classification + Freudenstein position solver - GearPair/GearTrain: ratio-based transmission solver with multi-stage support - CamFollower: 5 motion types (Dwell/CV/SHM/Cycloidal/3-4-5 Polynomial) - Full-cycle analysis for all solvers 7 new files, ~1400 lines of header + implementation
3.9 KiB
3.9 KiB
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 |
新建 | 开发计划 |