szwbluesky 发表于 2005-3-18 19:35:00

可不可以在打开图时就执行工程?

2002中用VBA开发了一个工程,已经嵌入到了dxt.dwg中。现在每次要运行程序,都要打开图,然后点击“->宏->宏”,出现对话框后再点运行。比较麻烦。
  可不可以在打开图的时候就执行图中嵌入的工作??
  多谢!

alin 发表于 2005-3-19 06:55:00

用户可以自动运行 acad.dvb 文件中的任何宏,方法是从 AutoCAD 启动功能(如 acad.lsp)中通过
VBARUN 的命令行版本调用。例如,要自动运行名为 drawline 的宏,请先将 drawline 宏保存在 acad.dvb 文件中。然后调用 notepad.exe 并在 acad.lsp 中创建(或附加)下面几行: (defun S::STARTUP()   (command "_-vbarun" "drawline"))
将宏命名为 AcadStartup,这样在加载 VBA 时就会自动运行该宏。当加载 VBA 时,将自动执行 acad.dvb 文件中所有名为 AcadStartup 的宏.

szwbluesky 发表于 2005-3-19 12:24:00

acad.dvb 文件是不是还要放在Support文件夹中? acad.lsp 也是在Support文件夹中吧?如果这样的话,别人要是拷贝我的文件用的话,是不是也要将acad.dvb 文件粘贴到Support文件夹中,是不是还得将(defun S::STARTUP()   (command "_-vbarun" "drawline"))
价码也加到acad.lsp 中?这样不是会给用的人带来些麻烦!可不可以就将工程放在图里,每次只拷一个图就可以,然后打开图以后就可以自动运行宏?或者将图和工程分开也行,也就是将工程也拷贝过去,然后打开图时就可以自动运行宏。而不用每换一台机器都要将将acad.dvb 文件粘贴到Support文件夹中,而且每次都要改acad.lsp 文件。

alin 发表于 2005-3-19 13:59:00

hfhappyfis 发表于 2005-3-20 01:30:00

楼上的利用event
好办法

clement 发表于 2005-3-21 11:53:00


能否提供一个用2002可以打开的版本?

alin 发表于 2005-3-21 14:46:00

clement 发表于 2005-3-21 17:53:00

谢谢

szwbluesky 发表于 2005-3-21 18:11:00

多谢版主了!

szwbluesky 发表于 2005-3-21 18:27:00

现在我又遇到了新问题!
每次打开底图都会在此图上生成新的图,而新图都是与数据相关的,不同的数据生成的图就不一样。如果我要把新图保存下来,为了不破坏底图,要选择“另存为”。而我另存了新图以后,再将其打开的时候,他还会运行嵌入的程序(这时不需要运行嵌入的程序,因为图的结果我已经有了,我只想看存下来的图),因为程序是嵌入图中的,也被存了下来。
现在不知道该怎么解决了!!!
页: [1]
查看完整版本: 可不可以在打开图时就执行工程?