该函数以列表形式返回指定实体的定义数据。entget 列表中的每个项目都由 DXF 组代码指定。列表中的第一项包含实体的当前名称。 在此示例中,以下(默认)条件适用于当前图形:
用户已使用以下命令序列绘制了一条线: 命令:line 起始点:1,2 到点: 6,6 指向:按 Enter 键 AutoLISP 应用程序可以使用以下示例代码检索和输出行的定义数据: (defun C:PRINTDXF ( ) (setq ent (entlast)) ; Set ent to last entity. (setq entl (entget ent)) ; Set entl to association list of last entity. (setq ct 0) ; Set ct (a counter) to 0. (textpage) ; Switch to the text screen. (princ "\nentget of last entity:") (repeat (length entl) ; Repeat for number of members in list: (print (nth ct entl)) ; Output a newline, then each list member. (setq ct (1+ ct)) ; Increments the counter by one. ) (princ) ; Exit quietly. ) 这将输出以下内容: entget of last entity: (-1 . <Entity name: 1bbd1c8>) (0 . "LINE") (330 . <Entity name: 1bbd0c8>) (5 . "69") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 1.0 2.0 0.0) (11 6.0 6.0 0.0) (210 0.0 0.0 1.0) 列表开头的 -1 项包含实体的名称。本节中介绍的函数使用名称来标识要修改的实体。可以通过与函数一起使用来提取表示值的各个虚线对。entmodassoccdr 点的子列表不像返回的其余值那样表示为虚线对。约定是子列表的值是组代码的值。因为一个点是两个或三个实数的列表,所以整个组是一个三(或四)个元素列表。组代码值是表示点的列表,因此将保留始终返回该值的约定。cdrcdrcdr 实体组件的组代码是 DXF 使用的组代码。与 DXF 一样,仅当实体标头项(颜色、线型、粗细、属性跟随标志和实体句柄)具有非默认值时,才会返回它们。与 DXF 不同,无论可选实体定义字段是否等于其默认值,以及关联的 X、Y 和 Z 坐标是否作为单点变量返回,而不是作为单独的 X (10)、Y (20) 和 Z (30) 组代码返回。 与对象关联的所有点都以该对象的对象坐标系 (OCS) 表示。对于点、线、3D 线、3D 面、3D 折线、3D 网格和尺寸对象,OCS 等效于 WCS(对象点是世界点)。对于所有其他对象,OCS 可以从 WCS 和对象的拉伸方向(其 210 组代码)派生。使用非 WCS 坐标系绘制的对象时,可能需要使用该函数将点转换为 WCS 或当前 UCS。trans 在编写函数以处理实体列表时,请确保函数逻辑与子列表的顺序无关;用于保证这一点。该函数在列表中搜索指定类型的组代码。以下代码从列表中返回对象类型“LINE”(0)。assocassocentl (cdr (assoc 0 entl)) 如果指定的组代码未出现在列表中(或者它不是有效的组代码),则返回 。assocnil 谨慎:在执行顶点图元之前,应读取或写入折线图元的标头。如果最近处理的折线图元与折点所属的折线图元不同,则宽度信息(40 和 41 组代码)可能会丢失。entget
相关概念父主题: |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:48
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.