加载下拉菜单
怎么样通过lisp将一个自己做的下拉菜单加载到屏幕上。用menuload命令,菜单是加载了,但是不显示。不知用menucmd函数可以实现吗?
谢谢。 加载后这样显示
飞版主,这个我知道,我是想不通过做这些步骤,直接在运行玩一个lisp程序后,就直接在屏幕上看到自己加载的下拉菜单,不知可不可以? 既然你已知道menucmd这个函数,为什么不自己去试一下,要到这里问是否可以???
希望你自己琢磨出来后再看:
**** Hidden Message ***** 为什么需要回复啊
飞版主我做了一个但是有点问题。
(defun c:test ()
(setvar "filedia" 0)<BR> (if (= nil (MENUGROUP "menu1"))<BR> (progn<BR> (command "menuload" "menu1.mns")<BR> (menucmd "p10=menu1.POP1")
)<BR>)<BR>(setvar "filedia" 1)
)
是可以显示menu1这个菜单了,但一显示这个菜单,就把第10位window菜单给覆盖了,我直接用(menucmd "p13=menu1.POP1")确显示不了,不知如何?
谢谢。 加载并显示菜单:
参数:
fname——菜单文件
index——显示的位置
(defun AddMenu (fname groupname popname index / APP MG MGS PMS)<BR> (setq APP (vlax-get-acad-object))<BR> (setq MGS (vla-get-menugroups APP))<BR> (setq MG (vl-catch-all-apply 'vla-Item (list MGS groupname)))<BR> (if (vl-catch-all-error-p MG)<BR> (setq MG (vla-load MGS fname))<BR> )<BR> (setq PMS (vla-get-menus MG))<BR> (vla-insertmenuinmenubar PMS popname index)<BR>) 谢谢飞版主,问题解决了。 给个例子给你:;; ----------- 将明经增效菜单放到下拉菜单的倒数第三位的函数 ------------
;; 该函数将明经增效菜单放到AutoCAD下拉菜单的倒数第三位。
;; ----------------------------------------------------------------
(defun mccad-init-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-init-placemenu) 学习