了解 entget 函数的输出

Understanding the output of the entget function

我正在使用 entget 函数从草图中获取有关多边形的数据,目的是创建显示如何计算其面积的公式。 因此我需要了解 entget 的输出,entget 输出的示例:

(
 (-1 . <Entity name: 7ef043b0>) 
 (0 . "LWPOLYLINE")
 (330 . <Entity name: 7ef01f80>) 
 (5 . "2CE") 
 (100 . "AcDbEntity")
 (67 . 0) 
 (410 . "Model")
 (8 . "0")
 (100 . "AcDbPolyline")
 (90 . 3)
 (70 . 1)
 (43 . 0.0)
 (38 . 0.0)
 (39 . 0.0)
 (10 93.1128 191.34)
 (40 . 0.0)
 (41 . 0.0)
 (42 . 0.0)
 (91 . 0)
 (10 83.1128 191.34)
 (40 . 0.0)
 (41 . 0.0)
 (42 . 0.0)
 (91 . 0)
 (10 83.1128 202.104)
 (40 . 0.0)
 (41 . 0.0)
 (42 . 0.0)
 (91 . 0)
 (210 0.0 0.0 1.0)
) 

这个想法是数字 -1 代表折线的 属性(顺便说一句,它的实体名称)。

数字 10 类似于 vertex/corner。

剩下的属性我想不通了。

为什么我需要这个?如果我只使用 vertices/corners 和它们的数字,我无法区分三角形和圆角。

感谢您的帮助。

AutoLISP entget函数返回的DXF数据是一个关联表,其中每一项(key)的第一个元素对应一个DXF组,关联值对应该组持有的值组.

每个组代表一个 属性 的实体,当您遍历 DXF 数据列表时,属性变得更加特定于所描述的实体类型。

列表开头的 DXF 组,例如实体类型(DXF 组 0)或实体句柄(DXF 组 5)对于每个数据库对象都是通用的。接下来是基础属性 class(在本例中为 AcDbEntity),您将在其下找到图层(DXF 组 8)和图纸布局(DXF 组 410),最后是属性object class(在本例中为 AcDbPolyline),您将在其下找到与对象类型相关的属性,例如折线顶点(DXF 组 10)、顶点数(DXF 组 90)等。

您可能会找到完整的 DXF 参考资料 here。请注意,此引用包括图形和非图形实体(例如图层定义和字典)。

LWPOLYLINE 实体关联的 DXF 组的 DXF 参考可以在参考 here.

ENTITIES 部分中找到

您可能还会发现我的 Entity List 程序在解释 DXF 数据时很有用,因为该程序会将 entget 函数返回的数据格式化为可读输出,并将包括所有子实体主要实体,以及附加到此类实体的任何扩展实体数据 (xData)。


另外,针对您的问题的评论:请注意,DXF 组 5 包含实体句柄,它与实体类型无关。这纯粹是一个标识符,在绘图中是唯一的,并且在绘图的整个生命周期内都保持不变。