明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3665|回复: 5

第十二章 反应器和回调函数 (六) 临时反应器和永久反应器

[复制链接]
发表于 2013-1-3 14:50 | 显示全部楼层 |阅读模式
临时反应器和永久反应器

反应器有临时和永久之分。在图形关闭时,临时反应器会丢失,这是默认的反应器模式。永久反应器则保存在图形中,在下一次打开该图形时它仍然存在。

用函数 vlr-pers 可使反应器成为永久反应器。如果要去掉反应器的永久性而使它成为临时反应器,可使用函数 vlr-pers-release。这两个函数都将反应器对象作为其唯一参数。例如,如下命令将使反应器成为永久反应器:
_$ (vlr-pers circleReactor)
#<VLR-Object-Reactor>

如果成功,vlr-pers 返回指定的反应器对象。

如果要确定某反应器对象是临时反应器还是永久反应器,可使用函数 vlr-pers-p,例如:
_$ (vlr-pers-p circleReactor)
#<VLR-Object-Reactor>

如果该反应器是永久反应器,函数 vlr-pers-p 会返回该反应器对象,否则返回 nil。

打开包含永久反应器的图形

反应器只是链接事件和回调函数的一种工具,即使反应器还在,回调函数本身并不是反应器的一部分,它一般也不是图形的一部分。只有在 AutoCAD 中加载了相关联的回调函数时,图形中保存的反应器才有实际作用。如果将反应器和回调函数定义在独立名称空间 VLX 中,则在打开图形时会自动加载回调函数。

如果打开的图形包括 VLISP 反应器信息,但没有加载相关回调函数,AutoCAD 会显示错误信息。可用函数 vlr-pers-list 返回图形文档中所有永久反应器组成的表。

在多重名称空间中使用反应器

当前的 AutoLISP 在任意时刻只能在一个文档中工作。而有些 AutoCAD API(如 ObjectARX 和 VBA)则支持应用程序同时在多个文档中工作。这样就造成了程序可能修改当前并非活动的其他被打开文档,但 AutoLISP 现在不支持该功能。



该贴已经同步到 明经通道的微博

本帖被以下淘专辑推荐:

发表于 2013-1-3 15:21 | 显示全部楼层
抢沙发喽,楼主一下就更新了两个帖子,辛苦了!
发表于 2013-1-3 16:12 | 显示全部楼层
老大辛苦了,元旦也不休息!
发表于 2013-1-4 14:08 | 显示全部楼层
反应器还没学过,支持
发表于 2014-8-21 23:36 | 显示全部楼层
我是过来学习的,楼主品德高尚
发表于 2014-9-11 07:10 | 显示全部楼层
楼主辛苦,对于这份辛苦,大家一定要努力学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 14:43 , Processed in 0.676259 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表