① 启动CAD的时候怎样自动加载并运行现有的VBA程序
CAD启动时,它会在 AutoCAD 目录中查找名为 acad.dvb 的工程。此文件将会自动加载为默认工程。
除了默认工程 acad.dvb 以外的任何工程,都可以使用 VBALOAD 命令在启动时明确加载该工程。在以下代码样例中,在启动 AutoCAD 时,使用 AutoLISP 启动文件来加载 VBA 和名为 myproj.dvb 的 VBA 工程。启动 notepad.exe 并在 acad.lsp 中创建(或附加)下面几行:
(defun S::STARTUP()
(command "_VBALOAD" "myproj.dvb")
)
② CAD怎么运行宏
一般运行宏的三种办法:
1、输入vbarun,然后选择宏(首先使用vbaload装载DVB文件);
2、使用vde进入编辑环境,然后运行宏。
直接在命令栏内输入宏名称即可,就像输入命令一样。
1、首先将程序(即DVB文件)与acad2006doc.lsp放在同一本目录下;
2、添加代码:
需要把以下代码放进acad200xdoc.lsp(其中x表示版本,我的电脑上装的是2006,所以是acad2006doc.lsp)
代码如下:
;;自动加载VBA程序的函数
(defun AutoVBALoad (app cmdliste / qapp)
(vl-load-com)
(setq qapp (strcat "\"" app "\""))
(mapcar
'(lambda (cmd / nom_cmd dot nodotcmd)
(progn
(setq dot (vl-string-search "." cmd))
(if dot
(setq nodotcmd (substr cmd (+ dot 2)))
(setq nodotcmd cmd)
)
(setq nom_cmd (strcat "C:" nodotcmd))
(eval
(read (strcat
"(defun " nom_cmd "(/ app)"
"(if (setq app(fdvbfile " qapp "))"
"(vl-vbarun (strcat app \"!" cmd "\"))"
"(nodvbfile " qapp "))"
"(princ))"
)))))
cmdliste
)
nil
)
(defun fdvbfile (app)
(if (not (findfile app))
(if (not (findfile (strcat app ".dvb"))) nil (strcat app ".dvb")) app)
)
(defun nodvbfile (filename)
(princ (strcat "\n文件 " filename "(.dvb) 在搜索路径文件夹中未找到。" ))
(princ "\n请检查支持文件的安装,然后重试。")
(princ)
)
然后在acad200xdoc.lsp中紧接着输入如下代码,当然,这个是可以扩展的,这里这个例子是帮助明经通道论坛上的panwei5301写的代码。
;;自动加载VBA程序 (AutoVBALoad "程序名称"'("宏名称" "模块名称.宏名称"))
(AutoVBALoad "临时DVB"'("lianxi01" "lianxi01"))
panwei5301请注意:这里的临时DVB是DVB的文件名,两个lianxi01都是宏名称,当然你可以这样写:
(AutoVBALoad "临时DVB"'("lianxi01" "模块1.lianxi01"))
因为你的lianxi01是放在模块1中的。
3、直接运行程序的名称即可。