黃偉
深圳市華陽國際工程設計股份有限公司518000
摘要:本文介紹一款利用ObjectARX二次開發(fā)技術實現(xiàn)的圖紙批量處理程序,程序?qū)崿F(xiàn)了對批量圖紙進行圖框信息填寫、檢查、生成圖紙目錄、拆分圖紙、自動命名文件、批量打印等功能,可以極大的提高設計人員的工作效率。
關鍵詞:ObjectARX;二次開發(fā);批量處理
1前言
圖紙的整理、歸檔、打印是完成工程設計的最后一個環(huán)節(jié),同時也是一個工作量較大、繁瑣、容易出現(xiàn)錯漏的環(huán)節(jié)。通常要花費設計人員大量的時間去填寫圖框信息,編寫圖紙目錄,核對圖框信息,拆分圖紙,歸檔命名等,圖紙的打印也需要耗費設計人員大量的時間去對每個文件選擇頁面、打印設定,通過手工一張張向打印機發(fā)送打印請求,時常還會出現(xiàn)遺漏打印某幾張圖紙等人為失誤。
如何減輕繁瑣的圖紙歸檔打印工作,同時減少出圖過程中人為因素造成的圖紙缺失、圖框信息錯漏、文件命名不規(guī)范等問題,是設計人員非?释鉀Q的一個難題。
2程序開發(fā)概述
2.1開發(fā)環(huán)境
本程序運用ObjectARX技術對AutoCAD進行二次開發(fā)。
ObjectARX是AutoDesk公司針對AutoCAD平臺上的二次開發(fā)而推出的一個開發(fā)軟件包,它提供了以C++為基礎的面向?qū)ο蟮拈_發(fā)環(huán)境及應用程序接口,能真正快速的訪問AutoCAD圖形數(shù)據(jù)庫。ObjectARX應用程序是一個DLL(動態(tài)鏈接庫),共享AutoCAD的地址空間,對AutoCAD的API函數(shù)直接進行調(diào)用。所以,使用ARX編程的函數(shù)的執(zhí)行速度得以大大提高。
2.2ARX應用程序的裝載和運行
ARX應用程序在運行之前必須先打開AutoCAD,然后加載ARX應用程序。一般可通過AutoCAD的工具菜單下選擇加載應用程序,選擇加載指定ARX應用程序。也可將指定的ARX應用程序添加到加載啟動組應用程序列表中,這樣即可實現(xiàn)AutoCAD啟動時自動加載。以上操作在程序安裝時會自動初始化相關參數(shù)。
3程序功能詳解
程序功能主要分為三大塊:圖框信息和目錄、批量打印、批量拆分歸檔。
這三部分主要功能的一個基礎功能是對批量Dwg文件自動提取識別圖框,以及定位信息欄上各部分的信息內(nèi)容。程序能對Dwg文件中A0~A3的標準圖框和加長圖框進行有效的識別,圖框可以是一條閉合的多段線或者一個完整的圖塊。程序目前可以識別與坐標系正交的圖框,但只能識別旋轉(zhuǎn)角度為0和90度圖框的圖框信息。
對圖框信息的識別需要依賴各部分圖框信息所在矩形區(qū)域左下角點和右上角點相對于標準圖框左下角的坐標值,由于各設計院的圖框信息欄格式均有差異,此部分坐標值需要根據(jù)各設計院的標準圖框信息欄進行預先設定。有了這些預先設定好的坐標值,程序便能在搜索到圖紙中每個圖框時,定位到圖框?qū)母鞑糠謭D框信息信息。
3.1圖框信息和目錄
本部分的程序功能主要是對批量圖紙(同一項目或同一項目的子項)進行圖號編排,圖框工程信息和人員信息填寫,生成圖紙目錄,生成圖框信息檢查列表等。
程序根據(jù)用戶選擇,載入需要處理的Dwg文件。用戶選擇提取圖框信息,程序按列表順序依次打開每個Dwg文件對圖面進行搜索,根據(jù)預先設定的坐標值,自動提取圖簽信息。對于尚未進行圖號編排的Dwg文件,圖框信息只需填寫圖名即可,圖號和圖框信息欄的其他內(nèi)容可以為空。
信息提取完畢,程序會將提取到的圖框信息內(nèi)容顯示在對話框界面內(nèi),圖紙若有圖號,圖紙按圖號順序排列,若沒有圖號,則圖紙順序是亂序。接下來用戶可根據(jù)需要通過拖動,調(diào)整圖紙列表中圖紙的順序,然后選擇需要編排圖號的圖紙,點擊按當前順序更改圖號,然后輸入起始的圖號,程序修改列表中的圖號。注意此時修改好的圖號并未返回各Dwg文件的圖框信息欄中。
一般來說因為工程信息和專負以上的人員信息對同一項目(子項)是一樣的,因此可以統(tǒng)一設置。程序總是將提取到的最后一個有效的工程信息和人員信息顯示到對話框界面中,若是新項目,可以只填寫其中一個圖框信息欄的工程信息和人員信息,程序會將這個圖框信息欄的信息提取到對話框界面中。人員信息的每一欄均支持雙簽的識別,雙簽人員姓名之間需有空格分隔。在圖紙目錄列表中可以單獨設置設計師和繪圖員,對于未單獨設置設計師和繪圖員的圖紙,程序?qū)⒆詣痈鶕?jù)下方的人員信息中確定的設計和繪圖姓名進行填寫。
在編好圖號,確定工程信息和人員信息后,點擊選擇更新信息到文件,程序會按順序依次打開Dwg文件,將對話框中確定的信息更改至Dwg文件中的圖框信息欄中。
點擊選擇生成目錄,程序會根據(jù)對話框中的圖紙目錄列表,在當前打開的Dwg文件中自動生成圖紙目錄,并根據(jù)圖紙數(shù)量自動增加頁數(shù),由于各設計院的圖紙目錄格式有差異,此部分功能也需根據(jù)各種圖紙目錄格式進行預先設定。
對于已經(jīng)編排過圖號,填寫過圖框信息欄信息的圖紙。如果后續(xù)設計對圖紙有修改,在圖紙出圖或歸檔之前,我們希望對信息欄的信息做最后一次檢查,可以載入需要檢查的Dwg文件,點擊選擇生成圖框信息檢查表,程序?qū)⒃谇按蜷_的Dwg文件中生成一個圖框信息檢查表。檢查表按圖號順序排列,對于同一項目(子項)中內(nèi)容一般來說相同的工程信息和人員信息,若各圖紙之間前后有差異,程序會以不同顏色顯示,方便快速檢查。
3.2批量打印
本部分的程序功能是對批量Dwg圖紙進行打印。
打印機列表只會顯示已經(jīng)預先設定打印參數(shù)的打印機,打印機的設定參數(shù)保存在hwgpsdata.mdb數(shù)據(jù)庫文件中,可以通過調(diào)用命令hwsetplotterparam對打印機參數(shù)進行設置。在打印過程中,程序會先識別當前打印圖紙的圖幅,然后自動匹配數(shù)據(jù)庫中相應圖幅對應的打印參數(shù)。如果匹配不到對應的打印參數(shù),程序會跳過本張圖紙的打印,因此所有打印機在打印之前均需對打印參數(shù)進行設置。程序默認內(nèi)置一個PDF打印機,相應的參數(shù)也已經(jīng)在數(shù)據(jù)庫中保存,可以直接使用。
圖框搜索方式可以選擇自動識別圖框和指定圖框線兩種模式。自動識別圖框模式如前面所述,可以全圖搜索識別閉合多段線或圖塊形式的圖框。對于已經(jīng)打散的圖框,既不是圖塊,也沒有閉合多段線,可以先調(diào)用hwAddDrawFrame命令手動為每張圖紙?zhí)砑右粭l指定打印圖層的閉合多段線。
打印的范圍分為模型空間和布局空間兩個選項,可以選擇其中一個或全部選擇。打印的方式分為直接打印、打印PDF和打印PLT文件。選擇打印PDF和PLT時,需要選擇打印文件的保存路徑,同時程序會根據(jù)從圖框信息欄提取到的圖號+圖名對打印文件進行命名,若是提取不到信息,打印文件將會以“原始文件名+模型(或布局)名稱+編號”的格式命名。
3.3批量拆分歸檔
本部分的程序功能是批量Dwg文件進行拆分歸檔。
對圖框搜索的方式跟上一節(jié)批量打印所述一致。對拆分文件的命名,程序會根據(jù)從圖框信息欄提取到的圖號+圖名對拆分文件進行命名,若是提取不到信息,拆分文件將會以“原始文件名+模型(或布局)名稱+編號”的格式命名。對于拆分文件,程序會將文件的視口縮放至對應的圖框,以便于后續(xù)打開查看。
4結束語
雖然該程序是在本設計院圖框格式和打印機配置基礎上進行編程和設置的,但是程序編制之初也考慮了使其具有足夠的通用性,其他用戶只需對圖框格式信息、打印機配置進行適當?shù)脑O定,該程序工具便可同樣適用于其他設計院的圖框格式和打印機配置。由于篇幅有限,程序其他功能在這里就不一一贅述,如果讀者感興趣,可以共同探討研究。
參考文獻:
[1]梁雪松.AutoCAD2002二次開發(fā)技術指南.北京:清華大學出版社,2001
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/shuxuelw/7223.html