CAD File Reader(CAD 图纸读取与方案统计)
一个给 AI 编码助手(Codex / Claude Code / 兼容 Agent)使用的工具型 Skill:直接读取 DWG/DXF/DWT,不需要安装 CAD 软件;支持低内存快速扫描、梁板柱统计、钢筋型号汇总、混凝土方量粗算、建筑做法提取、图纸关键词定位,以及 DWG→DXF 转换。
身份透明:本包是 AI 编码助手调用的工具型 Skill,不扮演任何人物或外部产品身份;被询问时应如实说明自己是 AI 助手。
能力
- 直接读取 DWG / DXF / DWT,支持单文件、目录和递归扫描。
- 低内存快速路径:只解文字、图层、块名,适合几十 MB 大图。
- 构件识别:梁、板、柱、墙、基础、门窗。
- 梁:类型、根数、跨数、悬挑、截面、箍筋、纵筋、梁长估算、梁砼估算。
- 柱:类型、根数、截面、箍筋、纵筋、柱高、柱砼估算。
- 板:轴线面积、板厚、板砼估算。
- 钢筋型号汇总:
-rebar.csv。 - 建筑做法提取:屋面、楼面、地面、墙面、顶棚、防水、保温等,
-practices.csv。 - 图纸检索:
--search/--filter,输出文件、图框、图层、坐标。 - DWG→DXF:内置
ezdwg 0.12.6,不需要 LibreDWG / ODA。 - SVG 预览:
read_cad.sh --render。 - 内存看门狗:大图超限自动终止,防止解析器把机器拖到卡死。
安装(GitHub 完整包)
cp -R cad-file-reader "$CODEX_HOME/skills/"
# Python 环境需要 Python 3.10+;Codex bundled runtime 自带 numpy
# 普通 Python 环境缺少 numpy 时执行:
python3 -m pip install numpy
GitHub 完整包已内置 vendor/(ezdwg、ezdxf、fontTools、pyparsing),不需要额外下载 CAD 解析依赖。
安装(SkillHub 轻量包)
SkillHub 版为纯文本合规包,不含 vendor/ 二进制/编译文件。安装后先执行一次:
cd "$CODEX_HOME/skills/cad-file-reader"
scripts/install_vendor.sh
该命令从 GitHub Release 下载与完整包一致的 vendor/ 依赖。
版本差异:GitHub 完整包解压即用;SkillHub 轻量包多一步下载
vendor/,安装后功能一致。
使用
cd "$CODEX_HOME/skills/cad-file-reader"
# 方案统计:梁/板/柱 + 配筋 + 混凝土方量 + 建筑做法 + 规格表
scripts/cad_scan.sh 图纸.dwg --only 梁,板,柱 \
--with-mtext --with-geom --cluster 1500 \
--axis-grid "7x8000,5x7500" --thk-mm 120 --col-height-mm 3000 \
--spec-table --format all -o 结果/结构统计
# 图纸检索:查说明、查规格、查编号
scripts/cad_scan.sh 图纸.dwg --search "屋面做法|C30|KZ1"
# DWG 转 DXF
scripts/convert_dwg.sh 图纸.dwg --out 图纸.dxf
# 全量读取并生成 SVG 预览
scripts/read_cad.sh 图纸.dxf --json --render --render-dir 预览
输出文件
-md:人类可读统计报告。.json:结构化结果,供后续计算。.csv:构件明细。-rebar.csv:钢筋型号汇总。-practices.csv:建筑做法清单。-concrete.csv:梁砼、柱砼、板砼、合计。-spec.csv:混凝土等级、板厚、保护层、抗震等级。-axis.csv:轴线面积与板砼估算。
实测
2026-08-31 本机样例:
- 3 种梁:梁长 12/12/10m,梁砼合计 5.12m³。
- 柱:KZ1 500×500×3000mm 两处、KZ2 600×600×3000mm 一处,柱砼 2.58m³。
- 板:轴线面积 360m²、板厚 120mm,板砼 43.2m³。
- 建筑做法:屋面、楼面、地面、墙面识别正常。
- 检索:同一 KZ1 的两个坐标位置都能列出。
限制
- 识别基于图纸文字规则,不是结构拓扑;天正自定义实体、丢字符字体可能识别不到。
- 梁长、根数、方量均为估算,不替代翻样和正式算量。
- 柱高通常不在平面图中,需要按实际层高传
--col-height-mm。 - 板砼按轴线面积×板厚,不扣柱、墙、洞口。
- 钢筋只统计型号/根数,不计算重量和下料长度。
- 建筑说明常用 MTEXT,检索和做法提取需加
--with-mtext。
许可与隐私
- 代码与文档:CC BY-NC-SA 4.0,见
LICENSE.md。 - 第三方依赖:见
NOTICE.md。 - 图纸字节不上传,所有解析在本机完成。
反馈
问题和使用建议请在平台评论区留言,注明系统、Python 版本、DWG/DXF 版本和命令参数。
Scan to join WeChat group