明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2612|回复: 6

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

  [复制链接]
发表于 2009-11-21 20:24:00 | 显示全部楼层 |阅读模式
  1. //
  2. //      AutoCAD 菜单文件
  3. //
  4. ***MENUGROUP=MEA
  5. ***POP1
  6. ID_MnuBP       [辅助工具(&B)]
  7. ID_AutoPLCoordinate [自动标注(&A)...]^C^C_-VBARUN MEA.dvb!AutoPLCoordinate
  8. ID_SeriesCoordinate    [连续标注(&S)]^C^C_-VBARUN MEA.dvb!SeriesCoordinate
  9. ***TOOLBARS
  10. //
  11. //      AutoCAD 菜单文件结尾
  12. //
  13. ---------------------------------------------------------------------
复制代码
以上我的acad菜单源代码,这样,acad加载了MEA.dvb这个文件后,点击相应菜单项,是可以执行相应的程序的。
但是,我想重复执行上次的命令(就是我的菜单的命令),却出现了这样的问题:
  1. 命令:  -VBARUN
  2. 宏名称(M):
复制代码
意思是要求输入宏名,这产生原因可能是因为_-VBARUN MEA.dvb!SeriesCoordinate  中间有个空格产生的
求各位高手,不吝赐教,如何解决这个“不能重复执行上次命令”的问题
发表于 2009-11-22 14:29:00 | 显示全部楼层

先做一个LISP命令,放在acaddoc.lsp文件里

(defun c:AutoPLCoordinate()

  (command "-vbarun" "MEA.dvb!AutoPLCoordinate")

)

然后将菜单文件改为

ID_AutoPLCoordinate [自动标注(&A)...]^C^C AutoPLCoordinate

 楼主| 发表于 2009-11-22 22:59:00 | 显示全部楼层
非常感谢wuyunpeng888的回答,原来我是不想用LSP的,所以才用VBA,没想到还得用LSP,VBA真是后娘养的
难道没有其它方法了吗?
 楼主| 发表于 2009-11-22 23:01:00 | 显示全部楼层
实在不行,就HOOK住autocad的命令行........
发表于 2009-11-23 20:34:00 | 显示全部楼层

用LISP来做命令

混合编程才是王道

 楼主| 发表于 2009-12-3 09:39:00 | 显示全部楼层
谢谢wuyunpeng888,最后采用的还是你的办法
发表于 2010-1-15 09:19:00 | 显示全部楼层

VBA在注册命令方面确实先天不足,最好的方法还是结合LSP来实现。

幸好LSP还不难,呵呵

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 00:57 , Processed in 0.171282 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表