屏蔽lisp最后的输出,不再使用(PRINC)
屏蔽掉函数最后的输出 BY:MUSIC-DIE 2022-03-30此程序只对强迫症有用处。。。
过程比较麻烦。。。我自己使用就还可以定义死,给大家使用就还挺麻烦的
给有需要的人吧。。。不喜勿喷
由于lisp每一个命令都会有返回值,导致使用lisp编写的函数、最后都会使用(PRINC)空行来屏蔽掉最后的输出
但是这个空行又导致想要输出的消息被一个空行占用了一行,没错就是这么强迫症
所以,学了一下C#,通过C#屏蔽了最后的输出
使用方法:
1、将插件最后的(PRINC)删掉!
2、将插件的名字改为去掉C: 也即:(defun c:tt ()) 改为 (defun tt ())
3、在插件的最后添加 (VL-ACAD-DEFUN 'TT) TT为插件名!
4、输入 ForgetPrincLB 这个命令将需要屏蔽输出的插件名添加进去!
5、按添加的插件名顺序,命令被定义为 ForgetPrincCommand1~10
6、在PGP文件中重定义快捷命令就可以屏蔽掉输出的空行了!
屏蔽最后输出
还有另外的一个办法
在程序中添加如下代码就可以不显示多余命令行
(if (= 1 (getvar "nomutt"))(setvar "nomutt" 0))
如下的反应器可以恢复这个参数
(vl-load-reactors)
(defun av:nomutt (a b)(if (= 1 (getvar "nomutt"))(setvar "nomutt" 0)))
(vlr-command-reactor nil '((:vlr-commandWillStart . av:nomutt)))
这样就可以解决你说的这个问题了
强迫症晚期。。。开始玩lisp的时候就对这个空行不顺眼了,最近终于干掉它了 爽的一批 好强 的强迫症 感谢分享心得 很好的思路
不行的哦,可以自己试试看
lisp天生必须有返回值
可以的,我自己一直就是这样在用!
程序内的其他输出都没了,比如 选择图元时候的提示信息
是的,所以用那个反应器来恢复参数
连续的两个命令,可能不行,但只在中间有命令执行,就可以了 。
有瑕疵,无大碍。
页:
[1]