DXF 文件 - 如何将带有标签文本的 "AcDbText" 实体链接到几何实体 (AcDbPolyline)?

DXF file - how can "AcDbText" entity with a label text be linked to a geometry entity (AcDbPolyline)?

我想这个问题可能没有准确的答案,但也许我至少可以更好地理解使用 DXF 文件...

我需要处理 DXF​​ 文件(平面图)和 link 标签(通常是房间名称)到代表特定房间的实体。 我检查了 DXF 文件,两个实体之间似乎没有 link。 TEXT 实体有一个唯一的句柄(代码 5),它有一个指向另一个对象的软指针(我认为是通用块定义 - 代码 330),但事实并非如此。所以我的问题是:

  1. 我是否正确地假设在这种情况下唯一的方法是将标签的坐标与“最近的”几何对象的坐标进行比较?这是可行的,但如果有一些重叠的对象怎么办 - 我可以在那里看到一些潜在的风险。

  2. 有没有办法在 AutoCAD 或类似工具中将文本实体的“精确”link 包含到几何实体中?也许使用某些属性?在这一点上,我对 DXF 的了解很少,所以如果有人能给我指出一些文档或示例 .dxf 文件,其中包含这种“精确 link” 的东西,那就太好了。

非常感谢!

Is there a way to include a "precise" link from a text entity to a geometry entity in AutoCAD or similar tools? Perhaps with the use of some attributes? My knowledge of DXF is minimal at this point so if anyone could point me to some documentation or example .dxf files where such "precise link" thing is included, it would be great.

可能还有其他方法可以满足您的需求。例如:

此外,AutoCAD 有一个称为 Extended Entity Data 的机制,它包含在任何 DXF 数据文件中(请参阅提供的 link)。

AutoCAD 提供了一些用于使用 XDATA 的工具,您还可以使用第三方扩展,例如 CADPower and GeoTools,它们具有 XDATA 工具库。当然,您可以编写自己的插件来做您想做的事。

总而言之,您可以将 TEXThandle 作为 XDATA 附加到代表房间的 POLYLINE。将 TEXT 作为 XDATA 附加后,它将在 DXF 文件中可用,您将能够解析它并找到 TEXT 元素的句柄。

在 AutoCAD 中向 运行 编写一个 VBA 宏并不难,要求您 select 这两个元素,然后添加文本实体句柄作为XDATA。那你就可以开始了。