CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于确定对象是否可用于更新 (AutoLISP/ActiveX)

2023-1-6 01:20| 发布者: admin| 查看: 524| 评论: 0|来自: AutoCAD

摘要: 如果其他应用程序与您的程序同时处理任何 AutoCAD 对象,则可能无法访问这些对象。如果您的应用程序包含反应器,这一点尤其重要,因为反应器执行代码段以响应无法提前预测的外部事件。

如果其他应用程序与您的程序同时处理任何 AutoCAD 对象,则可能无法访问这些对象。如果您的应用程序包含反应器,这一点尤其重要,因为反应器执行代码段以响应无法提前预测的外部事件。

注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。

Visual LISP 提供了以下函数,用于在尝试使用对象之前测试对象的可访问性:

  • vlax-read-enabled-p测试是否可以读取对象。
  • vlax-write-enabled-p确定是否可以修改对象的属性。
  • vlax-erased-p检查对象是否已擦除。拭除的对象可能仍存在于图形数据库中。

这些函数返回如果为真,如果为假。以下示例测试行对象:Tnil

确定该行是否可读:

(vlax-read-enabled-p WhatsMyLine)
T

确定该行是否可修改:

(vlax-write-enabled-p WhatsMyLine)
T

确定该行是否已擦除:

(vlax-erased-p WhatsMyLine)
nil

擦除分配了 WhatsMyLine 的对象:

(vla-delete WhatsMyLine)
nil

检查WhatsMyLine是否仍然可读:

(vlax-read-enabled-p WhatsMyLine)
nil

确认对象已删除:

(vlax-erased-p WhatsMyLine)
T

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部