[求助]用VLISP加载局部菜单的问题。
我已写了一个mymenu.mnu菜单文件,拟做为一个局部菜单。然后我在acaddoc.lsp中加一个语句:(command "_menuload" "mymenu")
以后启动CAD时都会运行上句,并在命令行显示已加载mymenu,
但此时菜单栏不并不出现我的定制菜单项,还必须再手动运行menuload,选中已加载的菜单,进行“插入”操作后定制菜单才会出现。
如何让它在加载后自动出现呢? 我不能确定是怎么回事。
试试在文件名后加上后缀,因为选择菜单文件是有顺序的。 你只是加载菜单,但没有显示菜单,以下程序供参考:
;; ----------- 将明经增效菜单放到下拉菜单的倒数第三位的函数 ------------
;;该函数将明经增效菜单放到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)
可将该段程序做成mymenu.mnl文件,放在与菜单相同的目录下,则会自动加载并设置。 多谢斑竹! 可以先把ACAD.MNU文件先備份, 然后把你的下拉菜單代碼貼到ACAD.MNU中, 再重裝菜單也可以. 用程序還沒有試過. 呵呵. 建议此程序只运行一次,因为菜单(包括局部菜单)加载后,如果正常关闭CAD,以后启动会自动加载此菜单,如果在用程序加载有些多此一举,而且此次加载会提示失败 想请问怎么判断一个程序是否加载?谢谢!
我看到别人的自定义菜单是这样写的:
(if(not c:csh)(load "csh"))
是否正确?谢谢! 不错,不过前面的c:csh是定义的程序名,就是(defun xxx()....中的XXX的部分,而后面的csh是指包含这个程序的文件名,二者是不同的(这里只是正好名字相同了), Theace发表于2004-1-18 11:34:00static/image/common/back.gif我已写了一个mymenu.mnu菜单文件,拟做为一个局部菜单。然后我在acaddoc.lsp中加一个语句:(command \"_menuload\" \"mymenu\")以后启动CAD时都会运行上句,并在命令行显示已加载mymenu,但此时
路徑中保留 *.MNS 其他刪除,試試
<BR>
页:
[1]
2