yuangw1234 发表于 2006-6-5 13:38:00

如何自動加菜單

本人写了以下一个程式,是加一个菜单
但是每次开一个新的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

雪山飞狐_lzh 发表于 2006-6-5 13:47:00

在Acad200?Doc.lsp文件中用Lisp调用

yuangw1234 发表于 2006-6-5 17:03:00

我的命令名为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")

xinghesnak 发表于 2006-6-6 08:39:00

(vl-vbaload"D:\\acad.dvb")
(defun C:tm()
   (setvar "cmdecho" 0)
   (vl-vbarun "stamp")
   (setvar "cmdecho" 1)
   (princ)
   )

yuangw1234 发表于 2006-6-6 19:04:00

4楼楼主:acad.dvb是放在D盘下的吧?我放了后再把你的程式拷在support下的acad.lsp后还是不行的

yuangw1234 发表于 2006-6-6 20:22:00

4楼楼主的意思我明白,不过你的程式还是不能在每打开一个新的图形就加载,还是要输入命令tm才能加载,我的意思就是每次打开新图形时菜单会自动加载,而不需要输入任何命今,就象cad上的“编辑”、“工具”、“绘图”一样,每次打开时它们都是在上面的,而不需要我们输入任何命令

xinghesnak 发表于 2006-6-7 08:10:00

哦,不需要快捷键直接加载啊?试试在LISP中写下面的行不行
(command"vbarun" "D:\\acad.dvb!Automationmanage.stamp")

yuangw1234 发表于 2006-6-7 08:26:00

ok了,7樓樓主,你在樂於肋人,我天天都來這裡,總看見你在這裡幫助別人,太感謝了

iamfang 发表于 2006-12-1 15:31:00

7楼楼主,真是谢谢你,我这几天一直考虑这个问题,看到你的解答,使我矛塞顿开。不过,在我的机器中,光加下面一句,(command "vbarun" ".stamp"),老是提示错,而如果在该句前再加上(vl-vbaload"D:\\programfiles\\autocad 2004\\support\\*.dvb"),则一切OK。不知是否一定要这样

天龙八部 发表于 2007-3-2 11:38:00

自动加载的话,其实你可以找到ACAD.LSP,把程序放到里面去,因为ACAD.LSP这个文件是随CAD一起启动的
页: [1]
查看完整版本: 如何自動加菜單