OMEGA-ThundeR 发表于 2022-7-5 22:59:16

重复即时命令lisp

你好
 
我看到一个问题,有人想在活动图形中的某些时刻“重置”由于某种原因不断变化的设置。
 
例如,我有一个问题,PICKFIRST命令有时会无缘无故地变为0,或者当我将鼠标悬停在一行上时,我的“选择预览”处于关闭状态,我必须重新设置选项中的2个复选框(虽然我准备了一个lisp,但它是手动的)。
 
在这个问题中,是某个运行第三方程序的人随机更改了高程(z)值(因此您将其设置为零,但当您绘制时,它会更改回其他高程)。
 
 
有没有办法每隔一段时间重新加载某些命令?
类似于自动保存功能,它以给定的间隔保存备份。
 
这在lisp格式中可能吗?
比如:(随机码)
 

C:reloadcommand ()(

$interval: "5"; //minutes
$command: "change pickfirst to 1"

REPEAT $command AT TIMEINTERVAL $interval;
)

 
或者类似的东西,但在Lisp程序的情况下。

rkmcswain 发表于 2022-7-6 00:49:31

一种方法是为经常使用的命令编写包装,例如LINE、ERASE、EXPLODE(或类似的东西),并包括sysvar的重置。
 

;example
(defun c:e ()
(setvar "pickfirst" 1)
(vl-cmdf "._erase")
)

 
显然,这并不能保证系统变量不会被更改,但这是一种快速、相当有效的处理方法。
 
 
另一种方法是使用一个反应器,当所需的系统变量发生变化时,该反应器就会启动,然后您可以定义一个函数在该时刻运行(将系统变量更改回来,提醒您它已经发生了变化,等等)
这对于在系统变量设置发生变化时反转它可能有99%的效果。当然,您可以使用它来寻找真正的问题,即:首先是什么让sysvar“自行”改变。
下面是一些如上所述创建反应器的示例代码。
页: [1]
查看完整版本: 重复即时命令lisp