如何自動加菜單
本人写了以下一个程式,是加一个菜单但是每次开一个新的drawing时必须执行一次命令,这个菜单才能出现,本人想每次打开新drawing时都会自动加上去,而不须去执行一次,就象cad上的“编辑”,“”一样,每次打开都在上面,请问如何做,谢谢
Public Sub stamp()
Dim Cumegr As AcadMenuGroup
Set Cumegr = ThisDrawing.Application.MenuGroups.Item(0)
Dim newmenu As AcadPopupMenu
Set newmenu = Cumegr.Menus.Add("Stamping(S)")
Dim smacro As String, newmenuitem As AcadPopupMenuItem
smacro = Chr(3) + Chr(3) + Chr(95) + "ff" + Chr(32)
Set newmenuitem = newmenu.AddMenuItem(newmenu.Count + 1, "Stamping", smacro)
newmenu.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
End Sub
在Acad200?Doc.lsp文件中用Lisp调用
我的命令名为tm,工程文件为acad.dvb,模块为Automationmanage,宏为stamp,我写成如下为什么不行:
(defun AutoVBALoad (cmdname project macro)
(eval
(list 'defun
(read (strcat "C:" cmdname))
nil
(list
'vl-vbarun
(strcat
project "!"
(if macro macro cmdname)
)
)
(princ)
)
)
)
(AutoVBALoad "tm" "acad.dvb" "Automationmanage.stamp")
(vl-vbaload"D:\\acad.dvb")
(defun C:tm()
(setvar "cmdecho" 0)
(vl-vbarun "stamp")
(setvar "cmdecho" 1)
(princ)
) 4楼楼主:acad.dvb是放在D盘下的吧?我放了后再把你的程式拷在support下的acad.lsp后还是不行的 4楼楼主的意思我明白,不过你的程式还是不能在每打开一个新的图形就加载,还是要输入命令tm才能加载,我的意思就是每次打开新图形时菜单会自动加载,而不需要输入任何命今,就象cad上的“编辑”、“工具”、“绘图”一样,每次打开时它们都是在上面的,而不需要我们输入任何命令 哦,不需要快捷键直接加载啊?试试在LISP中写下面的行不行
(command"vbarun" "D:\\acad.dvb!Automationmanage.stamp")
ok了,7樓樓主,你在樂於肋人,我天天都來這裡,總看見你在這裡幫助別人,太感謝了 7楼楼主,真是谢谢你,我这几天一直考虑这个问题,看到你的解答,使我矛塞顿开。不过,在我的机器中,光加下面一句,(command "vbarun" ".stamp"),老是提示错,而如果在该句前再加上(vl-vbaload"D:\\programfiles\\autocad 2004\\support\\*.dvb"),则一切OK。不知是否一定要这样 自动加载的话,其实你可以找到ACAD.LSP,把程序放到里面去,因为ACAD.LSP这个文件是随CAD一起启动的
页:
[1]