与其他 AutoCAD 反应器不同,对象反应器附着到特定的 AutoCAD 图元(对象)。 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
定义对象反应器时,必须标识要连接反应器的实体。创建对象反应器的函数需要以下参数:vlr-object-reactor
谨慎:如果对象包含在对象反应器的所有者列表中,则无法使用回调函数修改对象。尝试这样做将生成错误消息,并可能导致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。但是,一个物体上可能连接着多个反应器。您可以包含标识文本字符串或应用程序可以使用的其他数据,以便区分连接到对象的不同反应器。 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:32
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.