zzyong00 发表于 2009-11-21 20:24:00

关于菜单文件中调用VBA程序

//
//      AutoCAD 菜单文件
//
***MENUGROUP=MEA
***POP1
ID_MnuBP       [辅助工具(&B)]
ID_AutoPLCoordinate [自动标注(&A)...]^C^C_-VBARUN MEA.dvb!AutoPLCoordinate
ID_SeriesCoordinate    [连续标注(&S)]^C^C_-VBARUN MEA.dvb!SeriesCoordinate

***TOOLBARS
//
//      AutoCAD 菜单文件结尾
//
---------------------------------------------------------------------
以上我的acad菜单源代码,这样,acad加载了MEA.dvb这个文件后,点击相应菜单项,是可以执行相应的程序的。
但是,我想重复执行上次的命令(就是我的菜单的命令),却出现了这样的问题:命令:-VBARUN
宏名称(M):意思是要求输入宏名,这产生原因可能是因为_-VBARUN MEA.dvb!SeriesCoordinate中间有个空格产生的
求各位高手,不吝赐教,如何解决这个“不能重复执行上次命令”的问题

wuyunpeng888 发表于 2009-11-22 14:29:00

<p>先做一个LISP命令,放在acaddoc.lsp文件里</p><p>(defun c:AutoPLCoordinate()</p><p>&nbsp; (command "-vbarun" "MEA.dvb!AutoPLCoordinate")</p><p>)</p><p>然后将菜单文件改为</p><p>ID_AutoPLCoordinate [自动标注(&amp;A)...]^C^C AutoPLCoordinate</p>

zzyong00 发表于 2009-11-22 22:59:00

非常感谢wuyunpeng888的回答,原来我是不想用LSP的,所以才用VBA,没想到还得用LSP,VBA真是后娘养的<br/>难道没有其它方法了吗?

zzyong00 发表于 2009-11-22 23:01:00

实在不行,就HOOK住autocad的命令行........

wuyunpeng888 发表于 2009-11-23 20:34:00

<p>用LISP来做命令</p><p>混合编程才是王道</p>

zzyong00 发表于 2009-12-3 09:39:00

<strong><font face="Verdana" color="#61b713">谢谢wuyunpeng888,最后采用的还是你的办法</font></strong>

AirCD 发表于 2010-1-15 09:19:00

<p>VBA在注册命令方面确实先天不足,最好的方法还是结合LSP来实现。</p><p>幸好LSP还不难,呵呵</p>
页: [1]
查看完整版本: 关于菜单文件中调用VBA程序