期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘要:在使用AutoCAD的過程中,我們經常需要處理成百上千的dwg文檔,通常我們會選擇編程來解決,但是這個對大多數人來說都有些難度。這篇文章則是提供了另一種方法來實現,script腳本。本文詳細介紹了AutoCAD中,腳本文件的原理,實現過程,并結合兩個實例實現了對單文檔和多文檔的批量處理。
關鍵詞:AutoCAD腳本;批量處理;腳本編寫;excel編輯
Abstract: in the process of using AutoCAD, we often need to deal with hundreds of thousands of DWG document, generally we choose programming to solve, but this for most people have some difficulty. This article is to provide a method to realize, script scripts. This paper introduces the AutoCAD, script file of principle, process, and combined with two examples of single document and realized how document batch processing.
Keywords: AutoCAD script; Batch processing; Script writing; Excel editor
中圖分類號:G306.4 文獻標識碼:A 文章編號:
0.引言
盡管差不多每年AutoDesk公司都會推出全新版本的AutoCAD,但是有一個東西始終沒變,就是它強大的可擴展性。我們也認為這是它最值得稱道的特性之一,如命令行用戶接口,lisp腳本,或者VBA和.NET應用程序。所有這些特性的提供都只為一個目的,就是用戶定制。但是lisp和.net應用程序開發對于大多數AutoCAD程序來說都不是一天兩天能學會的。
不過幸運的是,我們還有一種簡單的人人都能理解和掌握的方法讓批量自動處理CAD文檔成為可能,那就是Script腳本。可能好多人還是覺得陌生,但是實際上,我們從用上AutoCAD的那天起我們就已經在編寫Script腳本了。這怎么可能呢?有人會問。其實 AutoCAD腳本文件就是一系列標準CAD命令的有序組合。你知道怎么使用在AutoCAD中敲命令,你就一定會寫腳本。
1.腳本簡介
腳本就是一個宏,或者說是你可以一次運行的一組命令,而且可以重復運行多次,讓你可以自動執行那些你手動需要很長時間才能完成的任務。腳本非常強大,你可以在單個文件中執行,也可以對多個文件執行。腳本出現很多年了但是卻有好多人沒意識到它的便利性。
創建腳本文件的步驟如下:
1. 設置FILEDIA系統變量為0,組織從打開對話框訪問文件
2. 然后執行你想自動執行的步驟,但是只能從命令行輸入。把步驟寫在紙上或者電腦中的記事本程序里。你可以直接拷貝命令行到記事本。在AutoCAD中按F2可以打開文本框。
3. 在每個命令行后面敲回車,或者空格鍵(相當于回車)。所以在腳本文件里,空格非常重要,你必須保證正確使用。為了保證腳本文件的可讀性,你可以每行只放置一條命令。
4. 把包含空格的層名、文件名、文件路徑放到引號里
5. 不時插入一些注釋以便于日后閱讀修改,注釋格式為文本前加引號
6. 保存文件擴展名為.scr
7. 重新設置FILEDIA系統變量為1
2.單文檔腳本的實現
下面我們就試著寫這樣一個腳本文件:創建一個叫ABC的圖層,把層顏色設置成紅色,并把該層置為當前。
在眾多的CAD命令中,LAYER是同時有對話框版本和命令行版本的命令之一,通常CAD會執行命令的對話框版本。雖然便于操作,但是SCRIPT腳本卻并不能和對話框交互。所以,我們就必須明確地告訴CAD執行命令的命令行版本。通常我們只需要在命令前面加上一個小橫杠(-)。相應的,我們鍵入-LAYER,而不是LAYER,返回如下提示
輸入選項
[?/生成(M)/設置(S)/新建(N)/重命名(R)/開(ON)/關(OFF)/顏色(C)/線型(L)/線寬(LW)/透明度(TR)/材質(MAT)/打印(P
)/凍結(F)/解凍(T)/鎖定(LO)/解鎖(U)/狀態(A)/說明(D)/協調(E)]:
如果我們想改變顏色,我們就鍵入C,想設置材質鍵入MAT,當然我們也可以鍵入全稱colar和materiel。
那么我們要新建一個名叫ABC的圖層,自然就輸入N了
然后出現提示:"輸入新圖層的名稱列表:",輸入“ABC”
然后根據提示輸入“C”
提示新顏色 [真彩色(T)/配色系統(CO)],我們輸入“yellow”,
提示輸入圖層名列表,這些圖層使用顏色 2 (黃) <0>,我們輸入“ABC”
最后輸入兩個空格,結束命令。
把這一組命令依次記下來,我們就得到一個腳本文件,如下
Script Description
-LAYER LAYER 命令的命令行形式
N 新建圖層(new)
ABC 新圖層名
C 設置顏色(color)
Yellow 黃色(也可以輸入2)
ABC 想設置黃色的圖層名
空格,代表回車
空格,代表回車
把左邊這列命令拷貝下來,打開記事本粘貼,然后另存為abc.scr(注意擴展名),我們也可以寫成一行,即:
-layer n ABC C yellow ABC
腳本文件寫好了,我們如何讓運行它呢.AutoCAD里面有兩種方式運行:
1、 在命令行輸入Script,或者簡寫的SCR
2、 在菜單中選擇工具>運行腳本
這兩種方式都會彈出一個選擇腳本文件的對話框,選擇腳本文件即可運行。
我們新建一個dwg文檔,然后執行剛才我們創建的abc.scr文件,就會發現得到的結果和我們在CAD中輸入一條條命令得到的結果一樣。
3.多文檔腳本的實現
顯然這時我們只是對一個單獨的文檔進行了處理,CAD腳本的威力并沒有發揮出來,腳本的強大之處在于它可以對CAD文檔進行批量處理。假設我有100個dwg文件,存放在G:\abc目錄下,我們要對它們執行清理操作,以減小文檔體積。最原始的方法就是一個個打開文檔,在命令行執行如下步驟(這里我用的是常規清理):
1、打開文檔open
2、輸入要打開的圖形文件名
3、命令: -PURGE
4、輸入要清理的未使用對象的類型
[塊(B)/標注樣式(D)/組(G)/圖層(LA)/線型(LT)/材質(MA)/多重引線樣式(MU)/打印樣式(P)/形(SH)/文字樣式(ST)/多線樣式(M)/表格樣式(T)/視覺樣式(V)/注冊應用程序(R)/零長度幾何圖形(Z)/空文字對象(E)/全部(A)]: a
5、輸入要清理的名稱 <*>: *
6、是否確認每個要清理的名稱?[是(Y)/否(N)]
7、保存文件命令: qsave
8、關閉文檔命令: close
9、打開下一個文檔,重復上面的步驟,直至100個文檔處理完畢。
顯然,這樣費時又費力,要批量處理文檔,我們首先需要獲得這些文檔的文件名列表,當然我們不可能一個個自己把文件名敲出來,這顯然和我們快速處理的宗旨相違背。其實我們只需要在從windows開始菜單中運行CMD命令,打開dos窗口:
輸入
cd abc
dir *.dwg /b > list.txt
這樣,我們就在G:\abc目錄下得到一個包含所有dwg文件名的文本文件list.txt.
但實現批量處理,我們還需要加入命令,變成如下格式:
open 1.dwg -purge A * n qsave close
open 2.dwg -purge A * n qsave close
open 3.dwg -purge A * n qsave close
open 4.dwg -purge A * n qsave close
open 5.dwg -purge A * n qsave close
怎么實現呢?看上面這種格式,我們應該馬上就想到微軟的office程序excel。打開excel,把list中的內容粘貼到新建表格的第二列,如下圖:
1、選中A1單元格,雙擊右下角的小黑點
2、選中C1:A1單元格,雙擊右下角的小黑點
3、另存為jiaoben.txt,打開文本文件,替換TAB為一個空格:
4、改文件后綴為.scr,腳本文件就編輯好了。
在運行這段腳本之前,我們還有一件事情要做,就是必須定義文件支持路徑以便CAD能順利找到這些dwg文件。在AutoCAD菜單點工具>選項或者在CAD命令行輸入窗口上點右鍵選擇選項。將G:\ABC目錄添加進去,點確定。
現在就可以在AutoCAD中運行該腳本來實現對文檔的批量清理工作了。
4.總結和擴展
這只是一個拋磚引玉的例子,想要完成其他復雜的批處理,只需要把文件名和qsave之間的文本改成你想要執行的操作。如果需要執行其他自定義程序中的命令,需要把程序添加到,自動啟動組中,然后把指定命令添加到上面的腳本中即可。
參考文獻:
[1]郭朝勇等.AUTOCAD2002定制與開發.清華大學出版社.2002-6
[2]Sham Tickoo,AutoCAD 2000高級用戶指南:設計、定制、開發.機械工業出版社.2000-6
[3]方晨.Excel 2007 中文版實例教程.上海科學普及出版社.2010-1
[4]趙全斌.Excel工程應用實用教程參數.清華大學出版社.2009-7