关于菜单文件中调用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中间有个空格产生的
求各位高手,不吝赐教,如何解决这个“不能重复执行上次命令”的问题
<p>先做一个LISP命令,放在acaddoc.lsp文件里</p><p>(defun c:AutoPLCoordinate()</p><p> (command "-vbarun" "MEA.dvb!AutoPLCoordinate")</p><p>)</p><p>然后将菜单文件改为</p><p>ID_AutoPLCoordinate [自动标注(&A)...]^C^C AutoPLCoordinate</p> 非常感谢wuyunpeng888的回答,原来我是不想用LSP的,所以才用VBA,没想到还得用LSP,VBA真是后娘养的<br/>难道没有其它方法了吗? 实在不行,就HOOK住autocad的命令行........ <p>用LISP来做命令</p><p>混合编程才是王道</p> <strong><font face="Verdana" color="#61b713">谢谢wuyunpeng888,最后采用的还是你的办法</font></strong> <p>VBA在注册命令方面确实先天不足,最好的方法还是结合LSP来实现。</p><p>幸好LSP还不难,呵呵</p>
页:
[1]