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 |
|