Files
ViewDesignEngine/docs/24-v4.5-开发计划.md
T
茂之钳 8be2f0ba0a
CI / Build & Test (push) Failing after 1m35s
CI / Release Build (push) Failing after 39s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
feat(v4.5): draft analysis + incremental mesh + kinematic chain solvers
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
2026-07-26 16:58:21 +08:00

3.9 KiB
Raw Blame 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 新建 开发计划