604832184 发表于 2018-10-10 20:38:03

求一个锁定系统变量“HIGHLIGHT”的数值为“1”的代码。

求一个锁定系统变量“HIGHLIGHT”的数值为“1”的代码。

xhlicaofen 发表于 2018-10-10 20:42:11

   (setvar "HIGHLIGHT" 1)

mikewolf2k 发表于 2018-10-11 09:11:51

只要你能改,就无法锁定,不能禁止别人改。在每次你需要这个变量之前,强行设置一下。

604832184 发表于 2018-10-11 15:59:51

mikewolf2k 发表于 2018-10-11 09:11
只要你能改,就无法锁定,不能禁止别人改。在每次你需要这个变量之前,强行设置一下。

我用飞诗的平法移动的时候,飞诗就会给我改了,每用一次改一次,很麻烦的,我就想写个锁定变量的LSP文件来是它自己变成1

mikewolf2k 发表于 2018-10-11 16:25:13

既然人家改了,就说明人家需要改,不改就不能运行。lsp执行完了就结束了,不会贮存内存持续改。要么你可以跟开发者提建议,程序执行完后恢复原值。要么自己在自己的程序前面修改为自己需要的值,满足自己程序的需要(跟所谓的飞诗做法一样)。

pzweng 发表于 2018-10-12 12:47:29

(or *sysvarchanged* (setq *sysvarchanged* (vlr-sysvar-reactor nil '((:vlr-sysvarchanged . sysvarchanged_do)))))
(defun sysvarchanged_do (a b)
(if (and (= "HIGHLIGHT" (car b)) (/= (getvar (car b)) 1))
    (setvar 'highlight 1)
)
(princ)
)
页: [1]
查看完整版本: 求一个锁定系统变量“HIGHLIGHT”的数值为“1”的代码。