Aftertouch 发表于 2022-7-6 23:23:19

在DIESEL中使用setq变量

大家好,
我有一些问题与mijn自定义功能区。。。我发现以下代码:
 

$(if,$(=,$(getvar,cvport),1),!PORT,PORT)

这允许在变量CVPORT为1时突出显示按钮,否则为常规按钮。。。
 
现在我有了一个lisp,它可以生成一个自定义变量:
(setq ONOFF开关1)
 
我想要按钮根据这个变量切换按钮。
 
在autocad中,我可以使用

!onoffswitch

它返回0或1(取决于状态)。
 
现在,我尝试将功能区按钮中的代码设置为:
 

$(if,$(=,$(onoffswitch),1),!PORT,PORT)
and...
$(if,$(=,$(!onoffswitch),1),!PORT,PORT)
and...
$(if,$(=,$($!onoffswitch),1),!PORT,PORT)

 
现在按钮显示:
$(IF,??)
 
如何修复?

tombu 发表于 2022-7-6 23:43:38

在命令行中输入cvport并尝试更改该值。这是不可能的。你想做什么?

Aftertouch 发表于 2022-7-7 00:11:10

我想做的是:
启动时,加载lisp,其中使用了几个变量。。。

(setq aanuitswitchB 0)
(setq aanuitswitchV 0)
(setq aanuitswitchT 0)
(setq aanuitswitchN 0)
(setq aanuitswitchR 0)
(setq aanuitswitchX 0)

这些值可以随命令更改。
 
我没有使然后本地,所以设置值可以显示时,我使用!例如aanuitswitchB。这将返回0或1。
我想要一个功能区按钮,当'aanuitswitcb'为1时亮显,当'aanuitswitcb'为0时亮显。
 
我只能使用高亮显示选项来处理常规AutoCAD变量。。

tombu 发表于 2022-7-7 00:36:04

Diesel仅适用于系统变量。由于单位值保存在系统变量中,因此可能有一种解决方案,尽管将其作为modemacro的一部分可能比功能区按钮更好。功能区并不总是反映正确的系统变量设置,因为它不会像“对象捕捉光标菜单”那样在每次执行命令或代码时重新生成。所有这些aanuitswitch*变量的目的是什么?张贴代码可能会帮助您找到解决方案。
页: [1]
查看完整版本: 在DIESEL中使用setq变量