一种方法是为经常使用的命令编写包装,例如LINE、ERASE、EXPLODE(或类似的东西),并包括sysvar的重置。
- ;example
- (defun c:e ()
- (setvar "pickfirst" 1)
- (vl-cmdf "._erase")
- )
显然,这并不能保证系统变量不会被更改,但这是一种快速、相当有效的处理方法。
另一种方法是使用一个反应器,当所需的系统变量发生变化时,该反应器就会启动,然后您可以定义一个函数在该时刻运行(将系统变量更改回来,提醒您它已经发生了变化,等等)
这对于在系统变量设置发生变化时反转它可能有99%的效果。当然,您可以使用它来寻找真正的问题,即:首先是什么让sysvar“自行”改变。
下面是一些如上所述创建反应器的示例代码。 |