CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于实体数据函数和图形屏幕(AutoLISP)

2023-1-8 10:53| 发布者: admin| 查看: 1975| 评论: 0|来自: AutoCAD

摘要: 实体数据功能对图形所做的更改将反映在图形屏幕上,前提是要删除、取消删除、修改或创建的实体位于当前可见的区域和图层上。

实体数据功能对图形所做的更改将反映在图形屏幕上,前提是要删除、取消删除、修改或创建的实体位于当前可见的区域和图层上。

有一个例外;修改子实体时,它不会更新整个(复杂)实体的图像。例如,如果应用程序通过 100 次调用修改旧式折线的 100 个顶点,则重新计算和重新显示整个折线所需的时间慢得令人无法接受。相反,应用程序可以执行一系列子实体修改,然后通过对函数的单个调用重新显示整个实体。entmodentmodentupd

请考虑以下事项;如果当前图形中的第一个图元是具有多个顶点的旧式折线,则以下代码将修改折线的第二个折点并重新生成其显示。

(setq e1 (entnext))    ; Sets e1 to the polyline's entity name.
(setq v1 (entnext e1)) ; Sets v1 to its first vertex.
(setq v2 (entnext v1)) ; Sets v2 to its second vertex.
(setq v2d (entget v2)) ; Sets v2d to the vertex data.
(setq v2d
  (subst
    '(10 1.0 2.0 0.0)
    (assoc 10 v2d)     ; Changes the vertex's location in v2d
    v2d                ; to point (1,2,0).
  )
)
(entmod v2d)           ; Moves the vertex in the drawing.
(entupd e1)            ; Regenerates the polyline entity e1.

参数 to 可以指定主实体或子实体。在任一情况下,都会重新生成整个实体。虽然它的主要用途是复杂图元,但可以再生当前图形中的任何图元。entupdentupdentupd

注意:要确保块参照的所有实例都已更新,必须通过调用 AutoCAD REGEN 命令 (with) 来再生图形。如果修改后的实体位于块定义中,则函数是不够的。commandentupd

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 11:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部