乐于分享
好东西不私藏

AI | GSGI 的设计笔记:当工程图纸需要结构化描述

AI | GSGI 的设计笔记:当工程图纸需要结构化描述
      现在 AI 识图能力已经非常强大。下面是用豆包识别一道平面几何问题的结果:

      在识别时原图隐去了文字描述,只保留图像。识别结果近乎完美,但仍然出现了"弦AC"这类图中不存在的内容。

      虽然识别准确率很高,但真正的问题是,在实际工程流程里,视觉 AI 方案目前会遇到两个难题:

第一,效率。 一份设计说明文档包含大量文字和少量示意图时,要么把图逐个提取单独识别,要么整份文档跑一遍视觉模型。两种方式都速度慢、token 消耗大。

第二,一致性。 工程识图不是"看懂了就行"。今天识别多一条线,明天少一个垂直关系——对于需要精确几何关系的场景,稳定性差结果不可接受。

      进一步的到复杂的工程图纸,我们通常会遇到标注不足、信息密度过大或干扰信息太多的问题。这些在CAD文件里面,或许一目了然,有图层、图块、颜色区分,但打印后会丢失大量数据。

      这是一张日照影响分析的附图。图中标注了大寒日8时和16时的方位角控制线、150m半径、圆心N和M。看起来信息已经很充足,但有一个关键信息原图表达的比较隐晦:扇形是以建筑正北向投影线为基准,而遮挡范围是以建筑本体的阴影线为边界。

      同时,原图引线已经很多,仅靠图像很难追溯这些几何元素的依赖源头。

      GSGI 的思路是在中间加一层结构化语义。

工程图纸 → GSGI(结构化 JSON)→ AI 处理

      模型为纯文本 JSON,AI 可以用语言模型直接读写,也可以用查看器浏览。

      模型中每一段几何关系都是声明式的。以下是前文几何题的 GSGI 文件片段,通过两个最简单的操作——圆上取点求交点——可以看到这个思路的核心:

 圆上取点: 点 A 在圆O的参数 t=0.2 处。

{  "id": "点A",  "type": "point",  "description": "点A(圆上点,PA为切线)",  "ref_pt": {    "id": "圆O",    "represent": { "method": "param", "t": 0.2 },    "ref_op": "link"  }}

求交点: 点 E 是直线 DP 与 OC 的交点。

{  "id": "点E",  "type": "point",  "description": "点E(DP与OC的交点)",  "ref_pt": {    "id": "线DP",    "represent": { "method": "intersect", "curve_ref": "线OC" }  }}

      两份代码都没有存储坐标数值,只有几何依赖关系。点是什么、从哪来的、如何计算——全部自包含。

      依靠GSGI模型,可以将源码和附图一并作为附件,实现一份人和AI均可以阅读的文档。

      界面右侧清单详细展示了各个几何元素的描述信息。


      GSGI(General Simple Geometry Information)是一种面向 AI 的轻量级 CAD 数据交换格式,以几何实体 + 描述系统为核心,专为 AI 快速识图与 DXF 双向转换而设计。

  • 格式规范:https://github.com/adgram/GSGI

  • 工具集(Web 编辑器 + 转换器):https://github.com/adgram/gsgi-tool