CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于获取实体信息(AutoLISP)

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

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

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

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

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

  • 图层为 0
  • 线型为 CONTINUOUS
  • 海拔为 0

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

命令: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 不同,无论可选实体定义字段是否等于其默认值,以及关联的 XYZ 坐标是否作为单点变量返回,而不是作为单独的 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   苏公网安备32011402011833)

GMT+8, 2024-12-15 14:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部