須要此工具請Q:3567 618 336函數
CAD批量處理工具是基於AutoCAD二次開發的批處理插件。將程序加載到CAD中,使用自定義的Lisp代碼就可對多個文檔進行批量操做。工具
1.文件說明 測試
CAD批量處理工具批處理程序包含兩個文件:一是基於VBA的程序,二是基於Lisp的程序。字體
2.安裝運行 spa
(1)將程序拷入CAD安裝路徑下的Support文件夾下,如E:\Program Files\AutoCAD 2007\Support;插件
(2)運行CAD,在命令行中鍵入"APPLOAD",在彈出的選擇對話框中選擇上一步中Support文件下的.lsp,點擊"加載",關閉對話框;命令行
(3)若是加載成功,命令行中輸出"已成功加載.lsp",輸入命令BAT便可運行程序。程序主界面以下:對象
注意:若是須要CAD啓動時即自動加載此工具,須要修改CAD安裝路徑E:\Program Files\AutoCAD 2007\Support下acad2007.lspblog
3.工具說明 ip
本程序具體操做流程以下:
(1)【添加文件】或【添目錄】來選擇要進行批量處理的Dwg文件,也能夠經過【刪除】和【全清】按鈕來操做清除文件列表中的文件;
(2)單擊【編輯】按鈕,彈出編輯代碼窗口,如圖3-2所示。用戶可編輯、打開、保存代碼,編輯完成後,單擊【關閉】,程序會自動保存編輯內容,並更新顯示在代碼窗口(若是使用腳本語言,請選擇【Script代碼】);
(3)點擊【開始批處理】,程序將對文件列表中的文件分別打開,並按代碼窗口中的代碼操做(若是勾選"處理完成後自動存盤",操做結果文件將覆蓋原始數據)
4.代碼分析
本程序的測試用例是兩幅宗地圖,如今的要求是:
測試代碼爲測試用例文件夾下的"宗地圖修改20140820.lsp",現對其中比較關鍵的代碼進行說明:
(1)獲取某層的文字
使用了ssget創建選擇要素集,其中"x"表明選擇全部,0和8表示不一樣的組,*TEXT是過濾選擇文本,JZD要進行選擇的圖層。
(2)新建或更改文本樣式
新建樣式使用了_style命令,"ST"表示樣式名稱,"SimSunb.ttf"字體名稱;若是要使用大字體的樣式,字體參數設置爲如"txt.shx,hztxt.shx";若是樣式名已存在命令將人修改參數,若是不存在,則會新創建。
(3)將某層的顏色改成指定的顏色
調用系統中的函數來修改層顏色,其函數原型如上所示,它在Express Tools中,注意要確保安裝程序安裝了此組件。其中顏色參數使用枚舉值:
常數 |
值 |
描述 |
vbBlack |
0x0 |
黑色 |
vbRed |
0xFF |
紅色 |
vbGreen |
0xFF00 |
綠色 |
vbYellow |
0xFFFF |
黃色 |
vbBlue |
0xFF0000 |
藍色 |
vbMagenta |
0xFF00FF |
紫紅色 |
vbCyan |
0xFFFF00 |
青色 |
vbWhite |
0xFFFFFF |
白色 |
(4)將層對象中的顏色隨層
將圖層的顏色修改,並不能將已有的對象的顏色改掉,須要將圖層對象的顏色設置爲隨層。
5.常見問題
(1)打開文件是提示選擇字體
CAD的字體中缺乏這種字段,要麼使用另外一個字體,要麼去下載缺失的字體,並放在CAD安裝路徑下的Fonts文件夾下,如E:\Program Files\AutoCAD 2007\Fonts
(2)添加某一個圖形時,不能加載到列表中
本程序的目的是進行批量處理,至少要同時選擇兩個圖形文件才能正確加載到文件列表,若是隻選擇一個文件時,則不能正確添加。
(3)運行時報錯,保存文檔時出錯
通常地,在批處理時,都須要勾選"處理完成後自動存盤",但若是處理以前此圖形已打開,保存時就會報錯,因此,在批處理時圖形不會打開。
(4)怎樣驗證操做是否失敗?
驗證操做最主要的方式是經過對比測試案例中的錯誤是否修正,若是執行的代碼,會彈出CAD的幫助窗口,建議在批量處理以前,測試好Lisp代碼。
(5)命令行報錯:沒有定義vlax-get-acad-object
在測試Lisp代碼中,使用了vlax-get-acad-object這個對象,而它是屬性Express Tools中的,因此在安裝軟件時,要選擇安裝Express Tools
(6)單獨測試lisp經過,批處理失敗
只要單獨測試lisp代碼可以達到目的,批量處理通常能達到目的。須要注意的是,若是lisp代碼中定義了無參的函數,只需將函數裏的內容複製到BatchProc的代碼窗口,而無需整個函數;若是lisp代碼中定義了帶參的函數,須要將整個函數複製進去,並將調用的命令複製在後面。
(7)出現異常: 0xC0000005 (訪問衝突)
調用BAT命令出現"出現異常: 0xC0000005 (訪問衝突)", 通常在調用command時候會出現這種狀況,只能重裝CAD了。
(8)報錯"info或'info透明調用 ***是否垂直?"
調用系統打印命令(-plot)批量打印宗地圖,在測試機上測試經過,但在客戶機上報錯:"使用命令:info或'info透明調用 ***是否垂直? <N>",只能打印第一個文件。
CAD中,有許多的命令時能夠透明使用的,透明命令其實就是可讓用戶在使用另外一個命令時,依然可以在命令行中輸入這些命令的功能。因此透明命令會常常被用於更改圖形的設置或顯示。當系統完成了透明命令後,就會恢復執行原命令了。
測試機上能經過說明是客戶機環境問題,我嘗試把CASS環境關閉後,便可實現批量打印。