陳顏祥 陳愛平
一種基于VC的AutoCAD圖紙表格參數自動提取方法
陳顏祥 陳愛平
(武昌工學院 湖北武漢 430068)
在進行數控加工和數控系統設計時,AutoCAD設計圖紙中的參數信息,通常需要由人工輸入到數控系統中。這給設計參數的自動傳遞造成了不便,特別是當圖紙數量較多時也存在費時費力和參數輸入錯誤的可能。本文使用VC語言將AutoCAD圖紙通過DXF格式進行參數處理。讀取將AutoCAD圖紙的設計參數并寫入指定文檔中,實現了表格參數的自動提取與處理,便于后期數控工作的直接引用,并滿足并行工程中的數據交換需求。
AutoCAD;DXF 文件;Visual C
隨著中國工業化進程的不斷深化,工業產品在關鍵信息采集、信息的正確處理以及產品生產開發等各職能環節的相互協同之間的重要性日益凸顯。AutoCAD作為現在應用最為廣泛的二維繪圖軟件,在我們的生產過程中占據著舉足輕重的作用。在齒輪加工過程中,以往信息采集方法多是人工打開統計數據并輸入到數控系統中,過程繁瑣,不適合大批量的數據統計,數據準確性低?;诖?,本文所主要研究如何結合高級語言,快速準確的讀取AutoCAD中的表格參數,從而提高生產效率和后期方便的進行數據檢驗與數據的二次應用。
DXF(Drawing Exchange File)是Autodesk公司開發的用于AutoCAD與其它軟件之間進行CAD數據交換的CAD數據文件格式。DXF是一種開放的矢量數據格式,可以分為兩類:ASCII格式和二進制格式;ASCII具有可讀性好,但占有空間較大;二進制格式占有空間小、讀取速度快。由于AutoCAD現在是最流行的cad軟件,DXF也被廣泛使用,成為事實上的標準。絕大多數CAD軟件都能讀入或輸出DXF文件。
在CAD圖紙的DXF文本格式中,圖紙中所包含的所有信息均由組代碼及組代碼所對應的組值數據類型記載,所以明確各個代碼所對應的具體圖紙信息對于讀取想要的參數也就顯得至關重要,各組代碼范圍及相應組值數據類型如表1所示。

表1 各組代碼范圍及相應組值數據類型
2.1 參數關鍵字的定位
由于在繪制AutoCAD過程中,表格文字的輸入形式有單行文字輸入與多行文字輸入兩種,在DXF文檔中,這兩種輸入方法所表示的形式并不相同,單行文字輸入顯示為ASCII碼,即為漢字本身,多行文字輸入則以UNICODE碼顯示。由于在標準CAD制圖過程中,對表格中文字的輸入方式并沒有嚴格的規定,因此就需要在程序中加入判斷指令以在不清楚具體輸入方式的情況下準確的找到所需的關鍵字,同時提取出關鍵字的圖紙坐標與字高,這就需要在VC打開DXF格式文本后添加ASCII碼與UNICODE碼的轉化程序,然后經過或門判斷具體文字輸入的方式,這樣就在提取標準格式的AutoCAD圖紙中的參數時,即使要查找圖紙的數量較大而存在不同的圖紙文字信息輸入方式,也可以快速準確查找到相關參數。
2.2 參數關鍵字圖紙信息的確定
在定位到想要獲取的關鍵字后,我們便要獲取關鍵字在圖紙整體坐標下的具體坐標值,由于CAD圖紙的特點,我們默認關鍵字的Z軸坐標為0,利用VC判斷,循環函數和字符串處理功能,對之前所定位關鍵字的主要信息進行掃描,判斷和提取,并對各關鍵字的X坐標(組代碼為10),Y坐標(組代碼為20)及字高(組代碼40)以字符串進行儲存。而其他信息如字體,顏色,間距等文字信息由于對提取來說并沒有具體意義,則可以不予記錄。
2.3 關鍵字對應數值的確定
在得到關鍵字的X,Y坐標及文字字高后,由于CAD加工參數表格的格式為圖1所示,數據名稱與數據分別位于表格同行不同列的位置,所以在確定參數關鍵字的Y坐標后與某一數據相差不足一個字高時,認為其為表格中的同行數據,在同行坐標內,比較X的值,大于關鍵字X坐標且與其相距最近的數據則為關鍵字數據的X值。這樣便確定了關鍵字數據的具體坐標值,提取確定這組X,Y所對應的唯一缺省值(代碼為1),這個缺省值即為關鍵字所對應的具體數據。然后通過fputs函數對此缺省值以字符串形式保存在我們指定的文本文檔中以儲存AutoCAD圖紙中的表格信息。

圖1
本文提出了一種能夠快速提取標準AutoCAD圖紙參數表格中具體參數數值的方法,主要思路為:
(1)根據標準AutoCAD圖紙所生成的DXF文檔特點,利用VC語言字符串處理功能快速,準確的定位所需要的參數關鍵字。
(2)在找到關鍵字后,利用所對應的組代碼查找并記錄在圖紙全局坐標下參數關鍵字所對應的具體坐標值與關鍵字字高。
(3)根據標準AutoCAD圖紙參數表格特點與所記錄的參數關鍵字信息,確定其同行并相鄰右列的坐標區間,并通過該區間反向定位所對應的唯一缺省值,即參數信息的具體數值。
[1]胡勝紅.使用 vc++編程實現 DxF 文件數據提取.福建電腦,2006(11):21~23.
[2]劉傳亮.AutoCAD DxF文件格式與二次開發圖形軟件編程[J].微機發展,2004(9):52.
[3]李華,聶建國.在非CAD平臺環境下顯示CAD圖形的實用技術與方法[J].計算機工程與應用,2002(9):92~94.
[4]梁雪春,宋德明.Autocad用戶的二次開發技術指南[M]北京:清華大學出版,2001.
[5]孫鑫.C++深入詳解[M].北京:電子工業出版社,2006.
TP391.7
A
1004-7344(2016)31-0263-01
2016-10-19
陳顏祥(1988-),男,山東淄博人,武昌工學院機械學院教師,碩士研究生,主要研究方向為結構動力學,數控加工技術。