求一个锁定系统变量“HIGHLIGHT”的数值为“1”的代码。
求一个锁定系统变量“HIGHLIGHT”的数值为“1”的代码。(setvar "HIGHLIGHT" 1) 只要你能改,就无法锁定,不能禁止别人改。在每次你需要这个变量之前,强行设置一下。 mikewolf2k 发表于 2018-10-11 09:11
只要你能改,就无法锁定,不能禁止别人改。在每次你需要这个变量之前,强行设置一下。
我用飞诗的平法移动的时候,飞诗就会给我改了,每用一次改一次,很麻烦的,我就想写个锁定变量的LSP文件来是它自己变成1 既然人家改了,就说明人家需要改,不改就不能运行。lsp执行完了就结束了,不会贮存内存持续改。要么你可以跟开发者提建议,程序执行完后恢复原值。要么自己在自己的程序前面修改为自己需要的值,满足自己程序的需要(跟所谓的飞诗做法一样)。 (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]