① 啟動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、直接運行程序的名稱即可。