王江 徐艷 李輝
基于AutoCAD和VBA的河道橫斷面圖自動(dòng)繪制軟件的應(yīng)用
王江 徐艷 李輝
AutoCAD(Auto Computer Aided Design)是美國(guó)Autodesk公司首次于1982年發(fā)明的計(jì)算機(jī)輔助設(shè)計(jì)軟件,用于二維繪圖和基本的三維設(shè)計(jì)?,F(xiàn)已經(jīng)成為國(guó)際上廣為流行的繪圖工具。AutoCAD具有良好的用戶界面,通過(guò)交互菜單或命令行方式便可以進(jìn)行各種操作。VBA(Visual Basic for Applications)是Visual Basic的一種宏語(yǔ)言,主要能用來(lái)擴(kuò)展Windows的應(yīng)用程式功能,特別是Microsoft Office軟件。VBA是一種應(yīng)用程式視覺(jué)化的Basic Script。1994年發(fā)行的Excel 5.0版本中,開(kāi)始具備了VBA的宏功能。
制橫斷面圖的實(shí)現(xiàn)過(guò)程
(1)讀取河道現(xiàn)狀斷面數(shù)據(jù)、工程后斷面數(shù)據(jù)和斷面設(shè)計(jì)參數(shù)等文件。
(2)取得在VB環(huán)境中取得CAD的控制權(quán)。
CAD2008進(jìn)行完全安裝后,在“VB—工程—引用”菜單內(nèi)選取“AutoCAD2008 TypeLibrary”,然后把Auto CAD應(yīng)用程序引用為一個(gè)“對(duì)象”,具體代碼如下:
On Error Resume Next
Set ac adapp= GetObject(,"autocad.application")
IfErr Then Err.Clear
Setac adapp=CreateObject ("autocad.application")
End If
(3)設(shè)置圖層名稱、圖層顏色、線形、字體等。這里分別定義了設(shè)計(jì)斷面線、現(xiàn)狀斷面線、坐標(biāo)軸和網(wǎng)格、標(biāo)注等4個(gè)圖層,在CAD中默認(rèn)字體設(shè)為“新宋體”。
Dimcolor1 As AcadAcCmColor
Set Layer1=acaddoc.Layers.Add
(“現(xiàn)狀斷面線”)
Set Layer2=acaddoc.Layers.Add
(“設(shè)計(jì)斷面線”)
acaddoc.ActiveTextStyle.SetFont“新宋體”,Bold,Italic,charSet,PitchandFamily
(4)繪制斷面線。這里,設(shè)置現(xiàn)狀斷面線的線形為虛線,設(shè)計(jì)斷面線的線形為實(shí)線。由于CAD環(huán)境中默認(rèn)不加載虛線線形,故還需另外載入虛線線形。
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)設(shè)定基點(diǎn),轉(zhuǎn)換坐標(biāo)。一般以測(cè)量斷面起始點(diǎn)為基點(diǎn),將起點(diǎn)距按1∶1000~1∶2000轉(zhuǎn)換為橫坐標(biāo),高程系統(tǒng)采用1985國(guó)家高程基準(zhǔn),縱向比例為1∶100~1∶200。定義兩個(gè)Function:
TranX=1000 si/Hxbl
TranY=1000 si/Zxbl
其中:Hxbl——橫向比例;
Zxbl——縱向比例。
(6)繪制坐標(biāo)軸、標(biāo)注等。其中標(biāo)注坡度需要計(jì)算文字傾斜角度。標(biāo)注坡度代碼如下:
TextString1=“1:X”
Angle2=-Atn((1/Zxbl)/ (YQTPD(aa)/Hxbl))
Textpoints8(1)=TranX(起點(diǎn)距)Textpoints8(2)=TranY(點(diǎn)高程)
SetTexts8=acaddoc.ModelSpace. AddMText
(Textpoints8,2,TextString1)
Texts8.Rotate Textpoints8,angle2
Texts8.Width=13
Texts8.Update
(7)最后在VB中生成可執(zhí)行的程序文件。在Windows 98、Windows XP、Windows 7等操作系統(tǒng)下都可以應(yīng)用。
該軟件應(yīng)用方便,啟動(dòng)軟件后會(huì)自動(dòng)引用AutoCAD窗體,在左側(cè)的菜單中選擇數(shù)據(jù)源,設(shè)置好橫向比例、縱向比例和網(wǎng)格線密度即可自動(dòng)生成橫斷面圖。橫斷面圖圖名與斷面號(hào)一致。該軟件著作權(quán)屬中水淮河規(guī)劃設(shè)計(jì)研究有限公司,軟件界面見(jiàn)圖1。
圖1 軟件界面圖示
洪汝河治理工程是進(jìn)一步治淮38項(xiàng)重點(diǎn)工程之一。工程按除澇標(biāo)準(zhǔn)5年、防洪標(biāo)準(zhǔn)20年一遇規(guī)劃。治理范圍包括大洪河、洪河分洪道和汝河宿鴨湖以下段。其中大洪河河道過(guò)流能力將提升至3080m3/s,工程措施為全線河道疏浚結(jié)合局部堤防退建。大洪河河道總長(zhǎng)74km,測(cè)量斷面間距方集以上采用250m,方集以下采用500m。為滿足初步設(shè)計(jì)要求,共需繪制255張橫斷面圖。使用本軟件繪圖,僅需將測(cè)量數(shù)據(jù)和斷面設(shè)計(jì)參數(shù)導(dǎo)入,標(biāo)注、坐標(biāo)軸、網(wǎng)格線和A3圖框均無(wú)需手動(dòng)繪制,可全部自動(dòng)生成。該軟件繪制的大洪河HRH001橫斷面圖見(jiàn)圖2■
圖2 使用該軟件繪制的大洪河HRH001河道堤防工程橫斷面圖
(作者單位:中水淮河規(guī)劃設(shè)計(jì)研究有限公司 233001)
(專欄編輯:張 婷)