重复即时命令lisp
你好我看到一个问题,有人想在活动图形中的某些时刻“重置”由于某种原因不断变化的设置。
例如,我有一个问题,PICKFIRST命令有时会无缘无故地变为0,或者当我将鼠标悬停在一行上时,我的“选择预览”处于关闭状态,我必须重新设置选项中的2个复选框(虽然我准备了一个lisp,但它是手动的)。
在这个问题中,是某个运行第三方程序的人随机更改了高程(z)值(因此您将其设置为零,但当您绘制时,它会更改回其他高程)。
有没有办法每隔一段时间重新加载某些命令?
类似于自动保存功能,它以给定的间隔保存备份。
这在lisp格式中可能吗?
比如:(随机码)
C:reloadcommand ()(
$interval: "5"; //minutes
$command: "change pickfirst to 1"
REPEAT $command AT TIMEINTERVAL $interval;
)
或者类似的东西,但在Lisp程序的情况下。 一种方法是为经常使用的命令编写包装,例如LINE、ERASE、EXPLODE(或类似的东西),并包括sysvar的重置。
;example
(defun c:e ()
(setvar "pickfirst" 1)
(vl-cmdf "._erase")
)
显然,这并不能保证系统变量不会被更改,但这是一种快速、相当有效的处理方法。
另一种方法是使用一个反应器,当所需的系统变量发生变化时,该反应器就会启动,然后您可以定义一个函数在该时刻运行(将系统变量更改回来,提醒您它已经发生了变化,等等)
这对于在系统变量设置发生变化时反转它可能有99%的效果。当然,您可以使用它来寻找真正的问题,即:首先是什么让sysvar“自行”改变。
下面是一些如上所述创建反应器的示例代码。
页:
[1]