MUSIC-DIE 发表于 2022-3-30 15:33:00

屏蔽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文件中重定义快捷命令就可以屏蔽掉输出的空行了!
屏蔽最后输出

nyistjz 发表于 2022-7-8 15:30:00

还有另外的一个办法
在程序中添加如下代码就可以不显示多余命令行
(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)))
这样就可以解决你说的这个问题了

MUSIC-DIE 发表于 2022-3-30 19:49:00


强迫症晚期。。。开始玩lisp的时候就对这个空行不顺眼了,最近终于干掉它了   爽的一批

masterlong 发表于 2022-3-30 19:13:00

好强                                                的强迫症

tigcat 发表于 2022-3-30 18:34:00

感谢分享心得

不一样地设计 发表于 2022-3-31 21:00:00

很好的思路

MUSIC-DIE 发表于 2022-7-8 16:31:00


不行的哦,可以自己试试看
lisp天生必须有返回值

nyistjz 发表于 2022-7-8 16:36:00


可以的,我自己一直就是这样在用!

MUSIC-DIE 发表于 2022-7-8 16:38:00


程序内的其他输出都没了,比如   选择图元时候的提示信息

nyistjz 发表于 2022-7-8 16:39:00


是的,所以用那个反应器来恢复参数
连续的两个命令,可能不行,但只在中间有命令执行,就可以了 。
有瑕疵,无大碍。
页: [1]
查看完整版本: 屏蔽lisp最后的输出,不再使用(PRINC)