726613 发表于 2013-5-17 18:25:30

用LISP程序加载菜单文件

菜单文件名:xzh.mns 文件在C:盘xzh文件夹里

(defun c:mu (/ pre_filedia CNT)
(if (not (menugroup "xzh.mns"))
    (progn
      (setq pre_filedia (getvar "filedia"))
      (setvar "filedia" 0)
      (vl-cmdf "menuload" "xzh.mns")
      (princ "\n菜单及工具条已成功加载,欢迎您再次使用!")
      (setvar "filedia" pre_filedia)
    )
    (prompt "\n菜单已加载!")
)
(princ)
)

执行如上程序其结果如下:




请问要如何解决才能加载呢?请高手们多指点迷津,谢谢

chbddzx12 发表于 2015-2-3 11:04:06

;;自动添加菜单和工具条
(defun c:ldmu (/ pre_filedia CNT)
(if (not (menugroup "陈洪宝"))
    (progn
      (setq pre_filedia (getvar "filedia"))
      (setvar "filedia" 0)
      (vl-cmdf "menuload" "陈洪宝.mnu")
      (setq CNT 1)
      (while (menucmd (strcat "P" (itoa CNT) ".1=?"))
        (setq CNT (1+ CNT))
      )
      (if (> CNT 1)
        (setq CNT (- CNT 1))
        (setq CNT 1)
      )
      (menucmd (strcat "P" (itoa CNT) "=+陈洪宝.pop1"))
      (princ
        "\n菜单及工具条已成功加载,欢迎您再次使用!"
      )
      (setvar "filedia" pre_filedia)
    )
    (prompt "\n菜单已加载!")
)
(princ)
)

Alex2022 发表于 2022-4-2 11:00:25

mccad 发表于 2013-5-18 13:54
如果问题已经解决,最后写出你的解决方法,以方便别人学习。
对于菜单加载,如果菜单不在支持目录下,则需 ...

谢谢点拨,请问有选择卸载MNU文件里不同的POP时应该用哪个lisp语句啊,谢谢!

Alex2022 发表于 2022-4-2 10:51:36

chbddzx12 发表于 2015-2-3 11:04
;;自动添加菜单和工具条
(defun c:ldmu (/ pre_filedia CNT)
(if (not (menugroup "陈洪宝"))


谢谢大咖,解决了我的问题,虽然不明白里边有几句什么意思:L

oldnewlearn 发表于 2013-5-17 21:58:06

"xzh.mns"是否应放在支持的路径里呢?

726613 发表于 2013-5-18 07:02:32

oldnewlearn 发表于 2013-5-17 21:58 static/image/common/back.gif
"xzh.mns"是否应放在支持的路径里呢?

谢谢你的指点,但是没有“下拉菜单”这是为什么呢

726613 发表于 2013-5-18 08:02:57

问题已解决,谢谢各位

mccad 发表于 2013-5-18 13:54:00

如果问题已经解决,最后写出你的解决方法,以方便别人学习。
对于菜单加载,如果菜单不在支持目录下,则需要加上路径。所以需要把菜单文件所在的目录加入到支持目录下。
一般菜单需要配套的LSP支持,如果你在菜单文件所在目录下旋转了一个与菜单文件同名而后缀为.mnl的LSP文件。则这个LSP文件会随菜单的加载而加载执行。
你上面所写的程序段只是加载了菜单,并没有将下拉菜单显示出来,如果要将菜单显示出来,则需要使用menucmd 函数。该函数的具体使用方法见:http://www.mjtd.com/function/info-126-603.html

726613 发表于 2013-5-18 19:41:57

mccad 发表于 2013-5-18 13:54 static/image/common/back.gif
如果问题已经解决,最后写出你的解决方法,以方便别人学习。
对于菜单加载,如果菜单不在支持目录下,则需 ...

我的菜单文件是在CAD自带的菜单文件里增加自己的菜单,固用如下:


(defun c:mu (/)
   (setvar "filedia" 0)
   (if (not (menugroup "xzh"))        
        (command "menu" "xzh.mns"))       
    (setvar "filedia" 1)
(princ)
)

669423907 发表于 2013-5-18 20:33:40

(command "cuiload" "机械.cui")
(command "menu" "机械")

长风(尚品) 发表于 2013-5-21 13:42:29

669423907 发表于 2013-5-18 20:33 static/image/common/back.gif
(command "cuiload" "机械.cui")
(command "menu" "机械")

这段两命令我试了,可是最终起动后的菜单栏只有机械了,其它默认的都不见了

月下抚琴 发表于 2015-10-19 15:35:48

好东西。。。
页: [1] 2
查看完整版本: 用LISP程序加载菜单文件