纯 Go 的 CAD 解析库 go-cad,开源啦,dwg/dxf格式直接解析
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
go-cad,一个纯 Go 实现的 DWG/DXF 解析、渲染与写出库。 GitHub:https://github.com/unitedrhino/go-cad 它能把 CAD 图纸转成 PNG/SVG,识别图框并逐幅拆图,提取中文说明、标题栏和设备标注,也能将文档模型写回 DWG。零 cgo,无需安装 AutoCAD,可直接嵌入 Go 服务。 联犀 CLI 和联犀的文档解析库 docling 也已经接入:在 WorkBuddy 中,可以通过一句指令让 AI 调用 CLI 分析图纸;做知识库,可以用 docling 把 CAD 与 PDF、Word 放进同一条解析流程。 中文工程图,直接出图这张 V 型滤池工艺图来自公开语料。平面、剖面、彩色工艺管线和右侧材料设备表,都是 go-cad 的渲染输出。
V 型滤池工艺图:平面、剖面与材料设备表。
材料设备表局部:名称、规格与数量。 消毒接触池图也能保留平面、两处剖面和材料一览表。图中的管径标注与右侧材料表可以对照。
消毒接触池:平面、剖面与材料一览表。 机械图对细节更敏感。下面这张内侧行走轮轴图,可以看到尺寸线、箭头、公差、直径符号,以及下方的技术要求。
内侧行走轮轴:尺寸标注、粗糙度符号和技术要求。 技术要求可以单独放大查看,中文说明与数值一起保留。
技术要求局部:45#钢、55HRC、公差标准与每套用量。 中文出图需要把解码和渲染都做好。go-cad 处理 GBK/UTF-16 码页、字符转义与 CAD 特殊文本码, PNG 可指定输出宽度,SVG 适合放大查看。分幅 PNG 会检查文字的像素字高,必要时提高分辨率重渲;中文渲染需要运行环境提供中文字体,也可通过 一张 DWG,拆成多张图施工图常把多个楼层、专业或单体平铺在同一个模型空间。go-cad 会识别图框,从标题栏提取图号、图名,再逐幅出图。 下面用四图幅 DXF 演示。全览保留图纸排列,单幅图便于查看内容。
输入:四张图幅在模型空间中的排列。
输出之一:单幅给水系统图,保留图框、图形和标题栏。 四图幅 DXF 合成示例,展示全览与单幅出图。 有真实图框时,批量出图首项为整图全览,后续为各张图幅;无图框时有整图兜底,设计说明、图例表等内容区也有相应切分路径。
项目公开记录中,消防与弱电施工图分别识别出 9 张图框,标题栏中的图号、图名可自动提取。 WorkBuddy:一句话分析 CAD联犀 CLI 从 v0.8.5 起支持 CAD 文档解析,联犀 Skills 可安装到 WorkBuddy / CodeBuddy。 首次安装(Linux / macOS),一行命令即可:
已有 CLI 的用户先执行
默认目录下安装完成后,重启 WorkBuddy 会话,让它加载联犀 Skills。自定义配置目录使用对应的 Skills 路径。 把图纸放进 WorkBuddy 可访问的工作目录,指定文件后,就可以让 AI 调用联犀 CLI 读取并分析。例如:
上面是一条可复制的请求示例。 这条路径由 CLI 负责把 DWG/DXF 解析成 AI 能读取的内容,WorkBuddy 中的 AI 负责按要求整理、分析。材料表、施工说明和设备型号可以作为任务输入,无需先手工截图、复制文字。 开发人员也可以直接运行命令,先查看图纸结构,再输出正文:
还支持 docling:把 CAD 放进知识库联犀的纯 Go 文档解析库 unitedrhino/docling 从 v1.4.0 起集成 go-cad,支持 GitHub:https://github.com/unitedrhino/docling 在 Go 服务中,按文件扩展名调用统一入口:
文档按图纸组织:每个识别到的图框对应一页,包含图名标题、渲染图片和框内文本。图框外的文字保留在文档前部;整图全览不会重复占一页。 CAD 图纸可以与 PDF、Word 使用统一的 Markdown、JSON、content-list 输出,进入后续分块、索引和检索流程。 保存图名与来源后,检索到一段说明,可以回到对应图幅核对。 需要独立的机器清单,go-cad 还提供
它输出 能读,也能写
解析结果可提取文本、渲染图片,也可通过 对 Go 后端,go-cad 可以作为普通模块直接使用。解析、渲染和写出都在同一进程内完成,减少外部转换程序与 C 动态库的部署工作。项目采用 Apache-2.0 许可证,集成时保留相应许可与通知。 验证与性能DWG 解码有些错误不容易从图片看出来。坐标或对象字段解错,程序仍可能正常出图。因此,go-cad 使用 LibreDWG 的 项目公开测试记录如下:
对照结果限定于所列语料和已纳入比较的字段;外部参考数据测试需要配置相应资源。 一份 4.3MB、108,850 个对象的图纸,项目记录的处理耗时为: 这些是项目基准数据,实际耗时随硬件、图纸内容和输出分辨率变化。 Go 最小示例安装模块:
下面是完整的
把一份支持写出的 DWG 命名为 当前边界1. ACIS 三维实体的 SAT/SAB 几何重建不在当前范围内。 2. 不支持 pre-R13 写出、R2.x~R8 早期格式。 3. 部分长尾对象字段仍在完善;没有真实样本的分支使用合成数据验证。 4. 文字提取针对 CAD 文本实体,画成线条或嵌入图片的文字需要另行处理。 5. 高分辨率出图需要相应内存;docling 的文本包围框用于近似定位。 做图纸预览,可以直接用 go-cad;需要在 WorkBuddy 中分析图纸,用联犀 CLI;已有知识库解析流程,用 docling 接入。欢迎做工程资料、CAD 开发和知识库的同事拿自己的图纸试用,交流解析与出图问题。 阅读原文:原文链接 该文章在 2026/10/16 12:29:50 编辑过 |
关键字查询
相关文章
正在查询... |