CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于获取实体信息(AutoLISP)

2023-1-8 11:02| 发布者: admin| 查看: 511| 评论: 0|来自: AutoCAD

摘要: entget 函数以列表形式返回指定实体的定义数据。

该函数以列表形式返回指定实体的定义数据。entget

列表中的每个项目都由 DXF 组代码指定。列表中的第一项包含实体的当前名称。

在此示例中,以下(默认)条件适用于当前图形:

  • 图层为 0
  • 线型为连续型
  • 海拔为 0

用户使用以下命令序列绘制了一条线:

命令:

从点:1,2

至点:6,6

到点:按回车

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

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 13:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部