明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9178|回复: 18

[已解答] 用LISP程序加载菜单文件

[复制链接]
发表于 2013-5-17 18:25:30 | 显示全部楼层 |阅读模式
菜单文件名: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)
)

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




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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 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)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-2 11:00:25 | 显示全部楼层
mccad 发表于 2013-5-18 13:54
如果问题已经解决,最后写出你的解决方法,以方便别人学习。
对于菜单加载,如果菜单不在支持目录下,则需 ...

谢谢点拨,请问有选择卸载MNU文件里不同的POP时应该用哪个lisp语句啊,谢谢!
发表于 2022-4-2 10:51:36 | 显示全部楼层
chbddzx12 发表于 2015-2-3 11:04
;;自动添加菜单和工具条
(defun c:ldmu (/ pre_filedia CNT)
  (if (not (menugroup "陈洪宝"))

谢谢大咖,解决了我的问题,虽然不明白里边有几句什么意思
发表于 2013-5-17 21:58:06 | 显示全部楼层
"xzh.mns"是否应放在支持的路径里呢?
 楼主| 发表于 2013-5-18 07:02:32 | 显示全部楼层
oldnewlearn 发表于 2013-5-17 21:58
"xzh.mns"是否应放在支持的路径里呢?

谢谢你的指点,但是没有“下拉菜单”这是为什么呢
 楼主| 发表于 2013-5-18 08:02:57 | 显示全部楼层
问题已解决,谢谢各位
发表于 2013-5-18 13:54:00 | 显示全部楼层
如果问题已经解决,最后写出你的解决方法,以方便别人学习。
对于菜单加载,如果菜单不在支持目录下,则需要加上路径。所以需要把菜单文件所在的目录加入到支持目录下。
一般菜单需要配套的LSP支持,如果你在菜单文件所在目录下旋转了一个与菜单文件同名而后缀为.mnl的LSP文件。则这个LSP文件会随菜单的加载而加载执行。
你上面所写的程序段只是加载了菜单,并没有将下拉菜单显示出来,如果要将菜单显示出来,则需要使用menucmd 函数。该函数的具体使用方法见:http://www.mjtd.com/function/info-126-603.html
 楼主| 发表于 2013-5-18 19:41:57 | 显示全部楼层
mccad 发表于 2013-5-18 13:54
如果问题已经解决,最后写出你的解决方法,以方便别人学习。
对于菜单加载,如果菜单不在支持目录下,则需 ...

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


(defun c:mu (/)
   (setvar "filedia" 0)
   (if (not (menugroup "xzh"))        
        (command "menu" "xzh.mns"))       
    (setvar "filedia" 1)
(princ)
)
发表于 2013-5-18 20:33:40 | 显示全部楼层
(command "cuiload" "机械.cui")
(command "menu" "机械")
发表于 2013-5-21 13:42:29 | 显示全部楼层
669423907 发表于 2013-5-18 20:33
(command "cuiload" "机械.cui")
(command "menu" "机械")

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

点评

使用命令之前,最好查阅一下帮助,了解该命令起什么作用后再用!  发表于 2013-5-21 13:49
发表于 2015-10-19 15:35:48 | 显示全部楼层
好东西。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 02:53 , Processed in 0.205788 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表