常世超+王愛軍
摘 要:在道路橋梁施工過程中,測量工作是保證其精確定位以及工程質量不可或缺的一環,而測量內業工作又是外業工作的保障,盡管內業繪圖軟件越來越多,AutoCAD依舊是工程技術人員特別喜愛的一款軟件,但測量儀器導出的數據經常不能用CAD直接打開,處理這個問題的方法有好多種,常規方法可以利用Excel進行編輯而后導入CAD中,本文通過 Visual Basic 編程結合AutoCAD的文件DXF解決了這個問題。
關鍵詞:Visual Basic DXF;數據轉換
一、VB和DXF介紹
Visual Basic是一種由微軟公司開發的結構化的、模塊化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程序設計語言,其在測繪領域廣泛應用。
DXF-Drawing Exchange File是Autodesk公司開發的用于AutoCAD與其它軟件進行CAD數據交換的CAD數據文件格式。DXF文件可以是ASCII格式,也可以是二進制格式,ASCII具有可讀性好的特點,但占有空間比較大,二進制格式則占有空間小,讀取速度快。在這里,我主要討論ASCII DXF文件格式。
DXF文件完整的結構包括HEADER段、CLASSES段、TABLES段、BLOCKS段、ENTITIES段、OBJECTS段、THUMBNAILIMAGE段,但有時候并不是每個段都是我們必須的,甚至在某個段中也有我們不需要的組碼。圖元組碼在該文件格式中占有非常重要的地位,它包含了圖形中的圖形對象,具體來說,我們在AutoCAD里繪制的點、線、矩形、圓等圖形對象的核心部分就在此段,由此,我們有必要對此段做詳細了解。
二、點組碼
組碼 說明
100 子類標記 (AcDbPoint)
10 點位置(在 WCS 中)
DXF:X 值;APP:三維點
20, 30 DXF:點位置的 Y 值和 Z 值(在 WCS 中)
39 厚度(可選;默認值 = 0)
210 拉伸方向(可選;默認值 = 0, 0, 1)
DXF:X 值;APP:三維矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可選)
50 繪制點時所使用的 UCS 的 X 軸的角度(可選;默認值 = 0);當 PDMODE 非零時使用
三、文字組碼
組碼 說明
100 子類標記 (AcDbText)
39 厚度(可選;默認值 = 0)
10 第一對齊點(在 OCS 中)
DXF:X 值;APP:三維點
20, 30 DXF:第一對齊點的 Y 值和 Z 值(在 OCS 中)
40 文字高度
1 默認值(字符串本身)
50 文字旋轉角度(可選;默認值 = 0)
41 相對 X 比例因子 — 寬度(可選;默認值 = 1)
使用擬合類型的文字時,該值也將進行調整。
51 傾斜角(可選;默認值 = 0)
7 文字樣式名(可選;默認值 = 標準)
71 文字生成標志(可選;默認值 = 0):
2 = 文字反向(在 X 軸方向鏡像)
4 = 文字倒置(在 Y 軸方向鏡像)
21, 31 DXF:第二對齊點的 Y 值和 Z 值(在 OCS 中)(可選)
210 拉伸方向(可選;默認值 = 0, 0, 1)
DXF:X 值;APP:三維矢量
220, 230 DXF:拉伸方向的 Y 值和 Z 值(可選)
下面的任務就是把常見的點數據格式轉換成DXF數據格式。在這里,我以南方CASS數據格式說明一下。這些數據傳輸到電腦上為一行行的行記錄,其基本格式為:
點號,編碼,Y坐標,X坐標,Z坐標;
如果沒有用到編碼可以省略,但逗號不能省。上面介紹了一下DXF數據格式,但我們在應用過程中可以省略一些不必要的部分,如在本例中,我們轉換的對象為點數據,用到了其中的ENTITIES段,在該段中用了點組碼(POINT),文字組碼(TEXT),關于這些組碼的說明在上面均以說到。
四、用VB實現流程
創建TEXT控件,編寫Connand-Click將待轉換的點數據文件讀取到該控件當中,導入到電腦上的數據文件為txt文件格式,利用VB的文件處理函數打開和讀取目標轉換文件,將之寫到TEXT控件中,該步驟主要功能在于把目標文件數據進行分流和保存,為下一步做準備;編寫Command-Click將讀取的點數據文件轉換為DXF格式的點數據文件,這是整個過程的核心,該步驟用VB的文件寫入函數將上個步驟儲存好的數據按照DXF特有的數據格式寫入到另一個txt文件中;把新生成的文件名的后綴名改為dxf,用AutoCAD打開即可。
五、結論
AutoCAD應用領域非常廣泛,一個很重要的有原因就是其強大的二次開發能力,雖然很多公司在CAD基礎上開發出了很多功能齊全的軟件,但是作為路橋測量人員,我們仍有必要開發自己的一些測量程序以提高工作效率,畢竟只有自己知道自己最需要什么,再者,我們在工程上總會遇到新的難題,這時候我們的優勢便會凸顯出來,雖然上述程序還有很多不足之處,但這為我們打開了通往AutoCAD更深應用的一扇大門,以期今后更好的利用,提升自己的水平。
參考文獻:
[1]胡利達.計算機輔助制圖在測量工程中的應用[J]海河水利,2003,(01):56.