CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于创建反应器 (AutoLISP/ActiveX)

2023-1-6 00:43| 发布者: admin| 查看: 411| 评论: 0|来自: AutoCAD

摘要: 创建一个将回调函数链接到事件的反应器。

创建一个将回调函数链接到事件的反应器。

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

有一个 AutoLISP 函数用于创建每种类型的反应器。这些函数与反应器类型同名,减去前导冒号。例如,创建一个数据库反应器,创建一个工具栏反应器,等等。除了对象反应器之外,反应器创建函数需要以下参数:vlr-acdb-reactorvlr-toolbar-reactor

  • 要与反应器对象关联的 AutoLISP 数据
  • 命名事件以及与该事件关联的回调函数的对列表(event-name . callback_function)

例如,以下语句定义 DWG 编辑器反应器。反应器将调用 saveDrawingInfo 函数,以响应发出 SAVE 命令的用户:

(vlr-dwg-Reactor nil '((:vlr-saveComplete . saveDrawingInfo)))

在此示例中,第一个参数为 nil,因为没有特定于应用程序的数据附加到此反应器。第二个参数是由虚线对列表组成的列表。每个虚线对列表标识要通知反应器的事件,以及为响应该事件而运行的回调函数。在这种情况下,反应器只收到一个事件的通知。:vlr-saveComplete

每次发出命令时,无论是在 AutoCAD 命令提示下、从用户界面元素还是从 AutoLISP 程序发出命令时,都会通知编辑器反应器。因此,此 DWG 反应器的回调函数需要精确确定它正在响应的内容。在当前示例中,只需检查“保存”命令。save-drawingInfo

每种反应器类型的可能事件列在反应堆构造函数的参考主题中,也可以使用以下命令获得。例如,要查找 DWG 反应器的可能事件列表,可以使用以下语句:vlr-reaction-names

(vlr-reaction-names :VLR-DWG-Reactor)
(:VLR-beginDwgOpen :VLR-endDwgOpen :VLR-dwgFileOpened 
:VLR-databaseConstructed :VLR-databaseToBeDestroyed 
:VLR-beginSave :VLR-saveComplete :VLR-beginClose)
注意:所有反应器构造函数都返回一个反应器对象。

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部