Theace 发表于 2004-1-18 11:34:00

[求助]用VLISP加载局部菜单的问题。

我已写了一个mymenu.mnu菜单文件,拟做为一个局部菜单。
然后我在acaddoc.lsp中加一个语句:(command "_menuload" "mymenu")
以后启动CAD时都会运行上句,并在命令行显示已加载mymenu,
但此时菜单栏不并不出现我的定制菜单项,还必须再手动运行menuload,选中已加载的菜单,进行“插入”操作后定制菜单才会出现。
如何让它在加载后自动出现呢?

lockmyeye 发表于 2004-1-18 12:09:00

我不能确定是怎么回事。
试试在文件名后加上后缀,因为选择菜单文件是有顺序的。

mccad 发表于 2004-1-18 12:17:00

你只是加载菜单,但没有显示菜单,以下程序供参考:
;; ----------- 将明经增效菜单放到下拉菜单的倒数第三位的函数 ------------
;;该函数将明经增效菜单放到AutoCAD下拉菜单的倒数第三位。
;; ----------------------------------------------------------------

(defun mccad-placemenu (/ CNT)
(setq CNT 1)
(while (< CNT 24)
    (if (menucmd (strcat "P" (itoa CNT) ".1=?"))
      (setq CNT (1+ CNT))
      (progn
      (if (> CNT 2)
          (setq CNT (- CNT 2))
          (setq CNT 2)
      )
      (menucmd (strcat "p" (itoa CNT) "=+MCCAD.pop1"))
      (setq CNT 25)
      )
    )
)
)

(mccad-placemenu)

mccad 发表于 2004-1-18 12:19:00

可将该段程序做成mymenu.mnl文件,放在与菜单相同的目录下,则会自动加载并设置。

Theace 发表于 2004-1-18 12:59:00

多谢斑竹!

BDYCAD 发表于 2004-1-18 14:40:00

可以先把ACAD.MNU文件先備份, 然后把你的下拉菜單代碼貼到ACAD.MNU中, 再重裝菜單也可以. 用程序還沒有試過. 呵呵.

meflying 发表于 2004-1-19 08:44:00

建议此程序只运行一次,因为菜单(包括局部菜单)加载后,如果正常关闭CAD,以后启动会自动加载此菜单,如果在用程序加载有些多此一举,而且此次加载会提示失败

lzfat 发表于 2004-2-5 14:18:00

想请问怎么判断一个程序是否加载?谢谢!



我看到别人的自定义菜单是这样写的:



(if(not c:csh)(load "csh"))



是否正确?谢谢!

meflying 发表于 2004-2-5 14:28:00

不错,不过前面的c:csh是定义的程序名,就是(defun xxx()....中的XXX的部分,而后面的csh是指包含这个程序的文件名,二者是不同的(这里只是正好名字相同了),

f5612140 发表于 2004-2-5 14:37:00

Theace发表于2004-1-18 11:34:00static/image/common/back.gif我已写了一个mymenu.mnu菜单文件,拟做为一个局部菜单。然后我在acaddoc.lsp中加一个语句:(command        \"_menuload\"        \"mymenu\")以后启动CAD时都会运行上句,并在命令行显示已加载mymenu,但此时


路徑中保留 *.MNS 其他刪除,試試



<BR>
页: [1] 2
查看完整版本: [求助]用VLISP加载局部菜单的问题。