王江 徐艷 李輝
基于AutoCAD和VBA的河道橫斷面圖自動繪制軟件的應用
王江 徐艷 李輝
AutoCAD(Auto Computer Aided Design)是美國Autodesk公司首次于1982年發明的計算機輔助設計軟件,用于二維繪圖和基本的三維設計。現已經成為國際上廣為流行的繪圖工具。AutoCAD具有良好的用戶界面,通過交互菜單或命令行方式便可以進行各種操作。VBA(Visual Basic for Applications)是Visual Basic的一種宏語言,主要能用來擴展Windows的應用程式功能,特別是Microsoft Office軟件。VBA是一種應用程式視覺化的Basic Script。1994年發行的Excel 5.0版本中,開始具備了VBA的宏功能。
制橫斷面圖的實現過程
(1)讀取河道現狀斷面數據、工程后斷面數據和斷面設計參數等文件。
(2)取得在VB環境中取得CAD的控制權。
CAD2008進行完全安裝后,在“VB—工程—引用”菜單內選取“AutoCAD2008 TypeLibrary”,然后把Auto CAD應用程序引用為一個“對象”,具體代碼如下:
On Error Resume Next
Set ac adapp= GetObject(,"autocad.application")
IfErr Then Err.Clear
Setac adapp=CreateObject ("autocad.application")
End If
(3)設置圖層名稱、圖層顏色、線形、字體等。這里分別定義了設計斷面線、現狀斷面線、坐標軸和網格、標注等4個圖層,在CAD中默認字體設為“新宋體”。
Dimcolor1 As AcadAcCmColor
Set Layer1=acaddoc.Layers.Add
(“現狀斷面線”)
Set Layer2=acaddoc.Layers.Add
(“設計斷面線”)
acaddoc.ActiveTextStyle.SetFont“新宋體”,Bold,Italic,charSet,PitchandFamily
(4)繪制斷面線。這里,設置現狀斷面線的線形為虛線,設計斷面線的線形為實線。由于CAD環境中默認不加載虛線線形,故還需另外載入虛線線形。
acaddoc.ActiveLayer=Layer1
Set pLine1=acaddoc.ModelSpace.
AddLightWeightPolyline(points1)
acaddoc.Linetypes.Load"JIS_02_4. 0","acadiso.lin"
pLine1.Linetype="JIS_02_4.0"
pLine1.Update
(5)設定基點,轉換坐標。一般以測量斷面起始點為基點,將起點距按1∶1000~1∶2000轉換為橫坐標,高程系統采用1985國家高程基準,縱向比例為1∶100~1∶200。定義兩個Function:
TranX=1000 si/Hxbl
TranY=1000 si/Zxbl
其中:Hxbl——橫向比例;
Zxbl——縱向比例。
(6)繪制坐標軸、標注等。其中標注坡度需要計算文字傾斜角度。標注坡度代碼如下:
TextString1=“1:X”
Angle2=-Atn((1/Zxbl)/ (YQTPD(aa)/Hxbl))
Textpoints8(1)=TranX(起點距)Textpoints8(2)=TranY(點高程)
SetTexts8=acaddoc.ModelSpace. AddMText
(Textpoints8,2,TextString1)
Texts8.Rotate Textpoints8,angle2
Texts8.Width=13
Texts8.Update
(7)最后在VB中生成可執行的程序文件。在Windows 98、Windows XP、Windows 7等操作系統下都可以應用。
該軟件應用方便,啟動軟件后會自動引用AutoCAD窗體,在左側的菜單中選擇數據源,設置好橫向比例、縱向比例和網格線密度即可自動生成橫斷面圖。橫斷面圖圖名與斷面號一致。該軟件著作權屬中水淮河規劃設計研究有限公司,軟件界面見圖1。

圖1 軟件界面圖示
洪汝河治理工程是進一步治淮38項重點工程之一。工程按除澇標準5年、防洪標準20年一遇規劃。治理范圍包括大洪河、洪河分洪道和汝河宿鴨湖以下段。其中大洪河河道過流能力將提升至3080m3/s,工程措施為全線河道疏浚結合局部堤防退建。大洪河河道總長74km,測量斷面間距方集以上采用250m,方集以下采用500m。為滿足初步設計要求,共需繪制255張橫斷面圖。使用本軟件繪圖,僅需將測量數據和斷面設計參數導入,標注、坐標軸、網格線和A3圖框均無需手動繪制,可全部自動生成。該軟件繪制的大洪河HRH001橫斷面圖見圖2■

圖2 使用該軟件繪制的大洪河HRH001河道堤防工程橫斷面圖
(作者單位:中水淮河規劃設計研究有限公司 233001)
(專欄編輯:張 婷)