CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于使用对象反应器 (AutoLISP/ActiveX)

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

摘要: 与其他AutoCAD反应器不同,对象反应器附加到特定的AutoCAD实体(对象)。

与其他 AutoCAD 反应器不同,对象反应器附着到特定的 AutoCAD 图元(对象)。

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

定义对象反应器时,必须标识要连接反应器的实体。创建对象反应器的函数需要以下参数:vlr-object-reactor

  • VLA 对象列表,用于标识要向反应堆发送通知的绘图对象。这些对象称为反应堆所有者。
  • 要与反应器关联的 AutoLISP 数据。
  • 命名事件和要与该事件关联的回调函数的对列表。(event-name . callback_function)
谨慎:如果对象包含在对象反应器的所有者列表中,则无法使用回调函数修改对象。尝试这样做将生成错误消息,并可能导致AutoCAD失败。

例如,以下语句定义了一个具有单个所有者的对象反应器(对象标识为 ),然后将字符串“Circle Reactor”附加到反应器,并告诉AutoCAD在用户修改时调用print-radius函数:myCirclemyCircle

(setq circleReactor (vlr-object-reactor (list myCircle)
  "Circle Reactor" '((:vlr-modified . print-radius))))

reactor 对象存储在变量 ;您可以使用此变量来引用反应器。定义所有者列表时,必须仅指定 VLA 对象;不允许使用 Ename 对象。VLA 对象是必需的,因为回调函数只能使用 ActiveX 方法修改 AutoCAD 对象,而 ActiveX 方法需要 VLA 对象才能处理。您可以使用该函数将这些 Ename 对象转换为 VLA 对象。circleReactorvlax-ename->vla-object

将数据附加到 Reactor 对象

当使用 创建对象反应器时,可以将数据附加到对象反应器,也可以稍后使用 更改数据。vlr-object-reactorvlr-data-set

您不必指定要包含在反应器中的任何数据;您可以改为指定 NIL。但是,一个物体上可能连接着多个反应器。您可以包含标识文本字符串或应用程序可以使用的其他数据,以便区分连接到对象的不同反应器。


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部