feat: 新增 CAD 元素识别模块,支持柱子/文字/墙体候选检测
- 新增 element_detector.py,包含 ColumnDetector、TextExtractor、WallCandidateDetector - ColumnDetector:通过 INSERT 块名关键词识别柱子候选 - TextExtractor:提取 TEXT/MTEXT 内容、坐标、图层 - WallCandidateDetector:按长度阈值筛选 LINE/LWPOLYLINE,排除标注图层 - 采用 OOP 设计,所有规则可配置,保留原始 handle 追溯 - 输出 element_detection.json 和 element_report.txt - 更新 main.py 集成元素识别步骤
This commit is contained in:
@@ -26,3 +26,16 @@
|
||||
4. 创建 README.md 使用说明文档。
|
||||
5. 运行验证:成功解析洗浴中心C-48.dxf(719个实体、12个图层、11种块、71条文本),JSON 输出格式正确。
|
||||
- **执行结果**: 模块化拆分完成,代码结构清晰,JSON 输出符合 Task1 规范,为后续墙体识别等功能扩展奠定基础。
|
||||
|
||||
## 会话 ID: 3
|
||||
- [2026-07-08 14:39]
|
||||
- **执行原因**: 实现 Task2 —— CAD 基础构件候选识别 Demo,从 DXF 数据中识别柱子、文字和墙体候选。
|
||||
- **执行过程**:
|
||||
1. 创建 element_detector.py,采用 OOP 设计,包含三个独立识别器:
|
||||
- ColumnDetector:通过 INSERT 块名关键词(柱/column/COL)识别柱子候选
|
||||
- TextExtractor:提取所有 TEXT/MTEXT 的内容、坐标、图层
|
||||
- WallCandidateDetector:分析 LINE/LWPOLYLINE,按长度阈值(>=500)筛选,排除标注图层(DIM/TEXT/DEFPOINTS)
|
||||
2. ElementDetector 作为编排器统一调度,所有规则可配置。
|
||||
3. 更新 main.py 集成元素识别步骤,输出 element_detection.json 和 element_report.txt。
|
||||
4. 修复 ezdxf Vec3 切片兼容问题。
|
||||
- **执行结果**: 成功识别 6 个柱子候选(柱子01)、71 条文字、231 条墙体候选(179 LINE + 52 LWPOLYLINE),输出文件格式符合 Task2 规范。
|
||||
|
||||
Reference in New Issue
Block a user