用途:从 AutoCAD DWG(含 Civil 3D)图纸中提取结构化施工情报,覆盖从原始 .dwg 到结构化项目数据的完整流水线,共四个阶段。
主要能力:一是编译 libredwg,构建开源 DWG 读取器,首次运行后缓存;官方说明其未在多数环境提供 apt 包,且 ezdxf 等 Python DXF 库常因 Civil 3D 私有对象的畸形 MATERIAL 条目而失败,故从源码编译。二是用 dwg2dxf 将 DWG 转为文本 DXF。三用自带脚本解析 DXF 实体:python3 /path/to/dwg-extraction/scripts/parse_dxf.py /tmp/output.dxf /tmp/dxf_extracted.json,可提取测量点、单行/多行文字、多段线、线、弧、圆、点、填充、块插入等类型,并按 Civil 3D 图层前缀分类(如 C-STRM、C-SSWR、C-WATR、C-TOPO、C-PROP 等),不匹配者归为 other。四是按 dwg_survey_data、dwg_storm_sewer、dwg_water 等段整理写入 plans-spatial.json,并更新 project-config.json。测量点通过 INSERT→ATTRIB→SEQEND 序列解析;构筑物属性按邻近文字分组(默认半径 15 单位)。
使用方式:转换命令为 /tmp/libredwg/dwg2dxf -o /tmp/output.dxf "/path/to/input.dwg"。从 /process-docs 或 /set-project 调用时会自动处理项目中的 .dwg 文件。
限制:libredwg 无法解码 Civil 3D 私有对象(对齐、曲面、管网、走廊、地块、纵断面、压力管等 AcDb* 对象);可提取标准 DXF 实体与注记。若跳过实体超 20% 会提示向设计方索取 EXPORTTOAUTOCAD 导出的 DXF。此外 3D 实体不深度解析、不递归解析块内部几何、仅处理宿主 DWG(XREF 需绑定或单独提供)、不做坐标转换。收费与价格信息暂未提供。