fcf25e561d
v4.1 收尾: - IncrementalUpdateEngine: dirty flag propagation, cache invalidation - LargeAssembly: InstanceCache, assembly instancing - STEP import: robust/graceful parsing with skip tracking v4.3 分析工具: - Mass properties (volume, centroid, inertia tensor) - Clearance analysis, wall thickness analysis - Enhanced drawing: hidden-line removal, offset sections, BOM - DXF import (LINE/CIRCLE/ARC/LWPOLYLINE/SPLINE → B-Rep extrusion) v4.4 地基加固: - ToleranceChain: RSS cumulative tolerance propagation (7 tests) - Euler operations: MEV/KEV/MEF/KEF/KEMR/MEKR (20 tests) - Replace hardcoded tolerances with ToleranceConfig in validate - Fix incremental_update test API mismatch (15/15 pass on Linux) Docs: - v4.1-v4.4 development plans + roadmap updated - v4.4 marked complete on Linux 30 files, +3424/-210
112 lines
3.5 KiB
Markdown
112 lines
3.5 KiB
Markdown
# ViewDesignEngine v4.3 — 分析工具 + 工程图增强 + v4.1 收尾
|
||
|
||
> 制定: 2026-07-25 | 状态: ✅ 完成
|
||
>
|
||
> 进度: ✅ §1 v4.1收尾 | ✅ §2 分析工具 | ✅ §3 工程图增强 | ✅ §4 DXF导入
|
||
|
||
承接 v4.2(共享拓扑地基加固)的阶段性成果,v4.3 补齐分析工具链、增强工程图能力,并收尾 v4.1 遗留项。
|
||
|
||
---
|
||
|
||
## 1. 🔄 v4.1 收尾 ✅
|
||
|
||
### 1.1 增量更新引擎
|
||
|
||
- [x] `incremental_rebuild()` — real evaluator-based rebuild with model caching
|
||
- [x] `invalidate_cache(node_id)` — 清除缓存 + 传播脏标记到下游
|
||
- [x] 测试:14 项测试含求值、缓存、依赖排序、失效传播
|
||
|
||
### 1.2 大装配
|
||
|
||
- [x] `InstanceCache` — LOD mesh 共享、bounds 缓存、memory estimate
|
||
- [x] 测试:5 项测试通过(已有实现,本轮验证)
|
||
|
||
### 1.3 STEP 导入容错
|
||
|
||
- [x] 容错解析:未知实体类型记录跳过而不是崩溃
|
||
- [x] `step_skipped_count()` / `step_skipped_types()` API
|
||
- [x] 单个 solid 转换失败不中断整体导入
|
||
- [x] 测试:3 项容错测试
|
||
|
||
---
|
||
|
||
## 2. 🔬 分析工具 ✅
|
||
|
||
### 2.1 质量属性
|
||
|
||
- [x] `mass_properties(const BrepModel&)` — 体积、质心、惯性张量(四面体分解 + 平行轴定理)
|
||
- [x] `assembly_mass_properties(const AssemblyNode&)` — 装配体惯性张量、回转半径
|
||
- [x] 测试:5 项单实体 + 4 项装配体(与解析解对比)
|
||
|
||
### 2.2 间隙分析
|
||
|
||
- [x] `clearance(const BrepModel& a, const BrepModel& b)` — 两实体间最小距离
|
||
- [x] AABB 快速排斥 + mesh 三角距离精确计算
|
||
- [x] 测试:2 项(分离/重叠)
|
||
|
||
### 2.3 壁厚分析
|
||
|
||
- [x] `analyze_wall_thickness(const BrepModel&, int samples_per_face)` — 沿面法向采样测壁厚
|
||
- [x] 输出:min/max/avg 壁厚 + 薄壁/厚壁区域计数
|
||
- [x] 测试:3 项(立方体/空体/薄板检测)
|
||
|
||
---
|
||
|
||
## 3. 📊 工程图增强 ✅
|
||
|
||
### 3.1 隐藏线消除 (HLR)
|
||
|
||
- [x] `ProjectionView` 含 `hidden_lines` 字段 + `generate_views` 多视角投影
|
||
- [x] mesh ray-casting 遮挡检测
|
||
- [x] 支持正投影(front/top/right)+ 等轴测
|
||
- [x] 测试:20 项(含 HiddenLines 专项测试、多体类型)
|
||
|
||
### 3.2 局部剖 / 阶梯剖
|
||
|
||
- [x] `section_view(body, point, normal)` — 任意剖切面
|
||
- [x] `offset_section_view(body, normal, offsets)` — 多段阶梯剖
|
||
- [x] 合并剖面 + 阶梯线标记
|
||
- [x] 测试:4 项 OffsetSectionTest
|
||
|
||
### 3.3 BOM 表
|
||
|
||
- [x] `generate_bom(const AssemblyNode&)` — 按名称合并、数量统计、总体积
|
||
- [x] 测试:5 项 BomTest(单零件/多零件/嵌套装配/空装配)
|
||
|
||
---
|
||
|
||
## 4. 📐 格式增强 ✅
|
||
|
||
### 4.1 DXF 导入
|
||
|
||
- [x] DXF 解析器:tokenize → section split → entity parse(LINE/CIRCLE/ARC/LWPOLYLINE/SPLINE)
|
||
- [x] 图层保留(layer name 输出到 DxfContour)
|
||
- [x] `extrude_dxf_contour(contour, height)` → B-Rep
|
||
- [x] `import_dxf_as_solids(filepath, height)` — 一键导入拉伸
|
||
- [x] 测试:10 项(空文件/直线/圆/弧/多段线/样条/未知实体容错/多实体/挤出)
|
||
|
||
---
|
||
|
||
## 里程碑
|
||
|
||
| 里程碑 | 内容 | 预计 |
|
||
|--------|------|------|
|
||
| **M1: 收尾** | v4.1 剩余 4 项全部完成 | — |
|
||
| **M2: 分析工具** | 质量属性 + 间隙分析 + 壁厚分析 | — |
|
||
| **M3: 工程图** | HLR + 局部剖/阶梯剖 + BOM | — |
|
||
| **M4: 格式** | DXF 导入 | — |
|
||
|
||
---
|
||
|
||
## 与 v4.2 差距分析的对应
|
||
|
||
| v4.2 差距项 | v4.3 对应 |
|
||
|-------------|-----------|
|
||
| 质量属性 | §2.1 |
|
||
| 壁厚分析 | §2.3 |
|
||
| 间隙分析 | §2.2 |
|
||
| 隐藏线消除 | §3.1 |
|
||
| 局部剖/阶梯剖 | §3.2 |
|
||
| BOM 表 | §3.3 |
|
||
| DXF 导入 | §4.1 |
|