# DXF 解析工具 解析 DXF 格式的 CAD 图纸文件,输出结构化的图层分析、实体统计、块引用和文本信息。 ## 目录结构 ``` experiments/dxf-parser/ ├── main.py # 入口脚本 ├── layer_analysis.py # 图层分析模块 ├── entity_analysis.py # 实体分析模块 ├── requirements.txt # 依赖 ├── output/ # 输出目录 │ └── {文件名}_cad_analysis.json └── README.md ``` ## 安装依赖 ```bash cd experiments/dxf-parser pip install -r requirements.txt ``` ## 使用方式 1. 将要解析的 DXF 文件放入 `samples/` 目录 2. 修改 `main.py` 中的 `DXF_FILE` 变量指向目标文件 3. 运行: ```bash python main.py ``` ## 输出说明 终端会打印解析摘要(图层、实体类型统计、块引用、文本内容),同时在 `output/{文件名}_cad_analysis.json` 中生成结构化 JSON: ```json { "file_info": { "filename": "洗浴中心C-48.dxf", "dxf_version": "AC1032", "encoding": "gbk", "units": null, "extents": { "min": [...], "max": [...] }, "total_entities": 719 }, "layers": [ { "name": "DOOR", "entity_count": 52, "entity_types": ["INSERT", "LINE"], "suggested_role": "门窗" } ], "entities": { "LINE": 321, "TEXT": 71 }, "blocks": [ { "block_name": "A$C6B90F135", "count": 8, "inserts": [...] } ], "texts": [ { "handle": "2A", "layer": "TEXT", "type": "TEXT", "content": "办公室", "insert": [150, 300] } ] } ``` ## 模块说明 - **layer_analysis.py**:遍历所有图层,统计每层实体数量和类型,基于常见命名规则推断图层角色(仅作建议) - **entity_analysis.py**:统计模型空间中各实体类型数量,对 INSERT 实体按块名聚合,提取所有 TEXT/MTEXT 文本内容