您可以创建一个将回调函数链接到事件的响应器。 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
有一个AutoLISP函数,用于创建每种类型的反应器。这些函数与反应器类型同名,但减去前导冒号。例如,创建数据库反应器、创建工具栏反应器等。除对象反应器外,反应器创建函数需要以下参数:vlr-acdb-reactorvlr-toolbar-reactor
例如,以下语句定义了 DWG 编辑器反应器。反应器将调用 saveDrawingInfo 函数以响应用户发出 SAVE 命令: (vlr-dwg-Reactor nil '((:vlr-saveComplete . saveDrawingInfo))) 在此示例中,第一个参数为 nil,因为没有特定于应用程序的数据可以附加到此反应器。第二个参数是由虚线对列表组成的列表。每个虚线对列表标识要通知反应堆的事件,以及要运行以响应该事件的回调函数。在这种情况下,反应堆只收到一个事件的通知。:vlr-saveComplete 每次发出命令时,无论是在 AutoCAD 命令提示符下,还是从用户界面元素还是 AutoLISP 程序发出命令,编辑器反应器都会收到通知。因此,该 DWG 反应器的回调函数需要精确地确定它所响应的内容。在当前示例中,只需检查 Save 命令。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) 注意:所有 reactor 构造函数都返回一个 Reactor 对象。
相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:38
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.