问题描述
我想这个问题可能没有准确的答案,但也许我至少可以更好地理解使用 DXF 文件...
我需要处理 DXF 文件(平面图)并将标签(通常是房间名称)链接到代表特定房间的实体。
我检查了 DXF 文件,两个实体之间似乎没有链接。 TEXT
实体有一个唯一的句柄(代码 5),它有一个指向另一个对象的软指针(我认为是通用块定义 - 代码 330),但事实并非如此。所以我的问题是:
-
我是否正确地假设在这种情况下唯一的方法是将标签的坐标与“最近”几何对象的坐标进行比较?这是可行的,但如果有几个重叠的对象怎么办 - 我可以看到那里有一些潜在的风险。
-
有没有办法在 AutoCAD 或类似工具中包含从文本实体到几何实体的“精确”链接?也许使用某些属性?目前我对 DXF 的了解很少,所以如果有人能指点我一些文档或示例 .dxf 文件,其中包含这种“精确链接”的东西,那就太好了。
非常感谢!
解决方法
有没有办法在 AutoCAD 或类似工具中包含从文本实体到几何实体的“精确”链接?也许使用某些属性?目前我对 DXF 的了解很少,所以如果有人能指点我一些文档或示例 .dxf 文件,其中包含这种“精确链接”的东西,那就太好了。
很可能还有其他方法可以做您想做的事。例如:
此外,AutoCAD 有一种称为 Extended Entity Data 的机制,它包含在任何 DXF 数据文件中(请参阅提供的链接)。
AutoCAD 提供了一些用于处理 XDATA
的工具,您还可以使用第三方扩展程序,例如 CADPower 和 GeoTools,它们具有 XDATA
工具库。当然,您可以编写自己的插件来做您想做的事。
总而言之,您可以将 handle
的 TEXT
作为 XDATA
附加到表示房间的 POLYLINE
。将 TEXT
附加为 XDATA
后,它将在 DXF 文件中可用,您将能够解析它并找到 TEXT
元素的句柄。
编写一个在 AutoCAD 中运行的 VBA 宏并不难,它要求您选择两个元素,然后将文本实体句柄添加为 XDATA
。那么你就可以开始了。