hn10183051 发表于 2019-8-17 12:04:45

lisp 创建自定义菜单行数过多为什么不能打包成VLX

大师们。LISP创建菜单行数过多后怎么不能打包。

; 编译终止
; 错误: 编译器发现致命错误 "菜单工具.lsp"
_$






;;; 说明:用lisp创建菜单
;;; 作者:langjs   qq:59509100                 日期:2014年6月
;;; ==============================================================
(defun create_klscl (/ f i)
(if (not (menugroup "KLSCL"))               ; 如果cad没有加载klscl菜单则,得干啥呢....
    (progn
      (alert "\n程序自动创建\"KLSCL\"菜单,请稍后")
      (setq f (open "KLSCL.mnu" "W")); 建立klscl.mnu菜单文件,得写点东西在里边
      (write-line "***MENUGROUP=KLSCL" f) ; 菜单名称就叫klscl吧
      (write-line "" f)                     ; 不用管它,这行就这个
      (write-line "***POP1" f)               ; 这行还不用管
      (write-line "" f)                     ; 接着不管。。。
      (write-line "               " f) ; 显示的菜单头,没头可不行
      (write-line "               [--]" f) ; 一个分界符,纯粹为了好看
      (write-line "               [脱硫废水系统TLFS]^C^CTLFS" f) ; 点击这个执行^c^c后边的tlfs主程序
      (write-line "               [--]" f) ; 再来一个分界符,帅多了
      (write-line "               [查询参数      CXCS]^C^CCXCS" f) ; 点击这个执行cxcs主程序
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解KBFJ]^C^CKBFJ" f) ; 弹完得回去了
























      (close f)                               ; 写完菜单关了吧
      (command "menuload" "KLSCL.mnu") ; 加载看看行不行
      (if (menugroup "KLSCL")               ; 真加载了!
      (progn                               ; 计算现有菜单数量,得把菜单安排个合适位置
          (setq i 1)
          (while (< i 1024)
            (if (menucmd (strcat "p" (itoa i) ".1=?"))
            (setq i (1+ i))
            (progn
                (menucmd (strcat "p" (itoa i) "=+KLSCL.pop1")) ; 显示出klscl来鸟!那个i也可以是 (- i 2)
                (setq i 1025)
      ))))))
)
(princ)
)
(create_klscl)











hpy 发表于 2019-8-17 12:04:46

如果是因为行数过多导致不能编译,可以把其中部分代码拿出来变成一个分函数,就可以正常编译了。

渠辉 发表于 2019-8-18 09:57:11

不可能吧。。。。。。

烟盒迷唇 发表于 2019-8-21 08:27:57

致命错误,代码有问题呀,不关行数过多啥事

hn10183051 发表于 2019-8-21 10:07:53

烟盒迷唇 发表于 2019-8-21 08:27
致命错误,代码有问题呀,不关行数过多啥事

删掉几行就哭了,不知道啥原因~

urings 发表于 2019-8-28 09:08:30

本帖最后由 urings 于 2019-9-15 01:43 编辑

没有内容

vladimirputin 发表于 2019-8-29 09:40:31

非常好的总结,谢谢楼主分享啊

you_boss 发表于 2021-8-11 09:47:38

我复制你的代码放到cad'自带的编译器里面,完全可以运行

you_boss 发表于 2021-8-11 09:50:08

会不会是文本注释问题
页: [1]
查看完整版本: lisp 创建自定义菜单行数过多为什么不能打包成VLX