覃高杰 黃福偉,2 王靖波
(1.重慶交通大學(xué),重慶 400074;2.重慶交通科學(xué)研究設(shè)計(jì)院,重慶 400067)
隨著我國(guó)交通事業(yè)的迅猛發(fā)展,橋梁公路里程不斷增加,然而交通量亦迅猛增長(zhǎng),大量橋梁缺乏足夠的監(jiān)控養(yǎng)護(hù)措施,以致越來(lái)越多的橋梁因?yàn)楦鞣N原因發(fā)生結(jié)構(gòu)性的損傷.不少橋梁因?yàn)槿狈z測(cè)和及時(shí)進(jìn)行維修加固導(dǎo)致成為危橋,目前我國(guó)危橋數(shù)量約90 000多座,[1]因此橋梁檢測(cè)艱巨重要,如何提高橋梁檢測(cè)的質(zhì)量與效率將是橋梁檢測(cè)迫切需要解決的問(wèn)題.橋梁檢測(cè)中的外觀檢查是檢測(cè)的基本項(xiàng)目,檢測(cè)人員在檢測(cè)時(shí)會(huì)在橋梁各部位上發(fā)現(xiàn)多種病害,記錄人員通過(guò)簡(jiǎn)單文字描述、草圖描述和照片拍攝后回到住宿地方進(jìn)行報(bào)告的整理,病害的多少直接影響到檢測(cè)人員編制報(bào)告所花費(fèi)的工作量.手工進(jìn)行AutoCAD病害圖的繪制過(guò)于龐雜,需要花費(fèi)大量的時(shí)間.因此,研究 AutoCAD的二次開(kāi)發(fā)對(duì)于橋梁檢測(cè)來(lái)說(shuō)是有必要的,通過(guò)需要輸入少量相關(guān)數(shù)據(jù),使AutoCAD進(jìn)行智能生成病害圖,將會(huì)大大提高檢測(cè)報(bào)告的編制效率.
vb.net是一個(gè)非常出色的編程軟件,能方便地對(duì)AutoCAD進(jìn)行操作控制,因此本文采用vb.net語(yǔ)言對(duì)AutoCAD進(jìn)行二次開(kāi)發(fā).筆者認(rèn)為橋梁檢測(cè)中AutoCAD二次開(kāi)發(fā)主要有以下關(guān)鍵技術(shù).
AutoCAD軟件提供了與各種編程語(yǔ)言相銜接的接口,因此編程語(yǔ)言 vb.net能夠較為容易地引用,在vb.net中引用com中的AutoCAD 2004 Type Library(在此要查看安裝的AutoCAD版本).接下來(lái)要在vb.net中對(duì)CAD的連接與調(diào)用,代碼如下:
橋梁構(gòu)件三維圖形在橋梁檢測(cè)報(bào)告中查看不方便,因此現(xiàn)橋梁檢測(cè)報(bào)告中構(gòu)件病害圖多為構(gòu)件展開(kāi)圖(二維平面圖).由于橋梁構(gòu)件眾多且部分構(gòu)件不規(guī)則,對(duì)于結(jié)構(gòu)相對(duì)簡(jiǎn)單的構(gòu)件(如展開(kāi)圖形為矩形、平行四邊形、環(huán)形或它們的組合圖形)則可進(jìn)行構(gòu)件尺寸輸入而生成構(gòu)件圖.但當(dāng)構(gòu)件不規(guī)則時(shí)采用尺寸輸入不現(xiàn)實(shí),可通過(guò)導(dǎo)入預(yù)先手動(dòng)畫(huà)好的構(gòu)件CAD圖.
有了構(gòu)件CAD圖,需要vb.net語(yǔ)句來(lái)檢查構(gòu)件的最小x坐標(biāo)、最小y坐標(biāo)、最大x坐標(biāo)和最大y坐標(biāo),如此接下來(lái)才能準(zhǔn)確地定位構(gòu)件病害在構(gòu)件中的具體位置.通過(guò)循環(huán)查找每條線的坐標(biāo)對(duì)比,判斷出所求坐標(biāo).
構(gòu)件最小x坐標(biāo)xmin、最小y坐標(biāo)ymin、最大x坐標(biāo)xmax和最大y坐標(biāo)ymax確定后,就可以重新確定該構(gòu)件坐標(biāo)系.新坐標(biāo)系中原點(diǎn)為(xmin,ymin),x軸與y軸方向與原方向一致.
橋梁病害種類(lèi)繁多,規(guī)范中并沒(méi)用明確規(guī)定各種病害的準(zhǔn)確描述方法,因此在此定義了幾種典型病害的描述:(1)裂縫,CAD中采用樣條曲線來(lái)描述;(2)滲水、破損,采用樣條曲線繪制病害區(qū)域.構(gòu)件病害的標(biāo)示采用病害名稱(chēng)前兩個(gè)字母標(biāo)示.例:
構(gòu)件病害的準(zhǔn)確定位十分重要,這將決定了對(duì)病害描述的準(zhǔn)確程度.構(gòu)件病害分為區(qū)域型病害與單一的裂縫病害,裂縫病害與其他病害如下描述:
裂縫病害描述
裂縫采用紅色樣條曲線來(lái)描述,首先需要確定裂縫的中點(diǎn)(x0,y0),然后確定裂縫的長(zhǎng)度l,還需要確定裂縫與水平面的夾角 θ,最后輸入裂縫寬度 σ,由于裂縫的不規(guī)則性,所以繪制樣條曲線時(shí)采用隨機(jī)數(shù)對(duì)樣條曲線進(jìn)行擬合,如此可以得到逼真的裂縫描述圖.
區(qū)域病害(滲水)描述
區(qū)域病害有很多種,如滲水、破損、麻面、坑槽等等,區(qū)域病害可采用病害首字母來(lái)區(qū)分各種病害,區(qū)域病害也采用樣條曲線來(lái)描述,首先確定病害區(qū)域的中心點(diǎn)(x0,y0),然后確定病害長(zhǎng)度 l與寬度b,還需要確定病害與水平面的夾角θ,最后采用樣條曲線進(jìn)行擬合,可以得到區(qū)域病害圖.
程序中需要輸入的病害變量值如下表所示:
區(qū)域病害圖 病害類(lèi)型 x0 y0 l b θ裂縫圖 / x0 y0 l θ σ
采用AcadApp.ActiveDocument.ModelSpace.Ad dSpline函數(shù)進(jìn)行樣條曲線的繪制,AutoCAD.ACA D_COLOR函數(shù)設(shè)置曲線的顏色,AcadApp.Active Document.ModelSpace.AddText函數(shù)來(lái)輸入注釋文字,如此可以完成構(gòu)件病害的AutoCAD圖描述,在此要注意:一是病害位置和長(zhǎng)度不可超過(guò)構(gòu)件大??;二是設(shè)置注釋文字的時(shí)候文字大小要適當(dāng),否則將影響病害圖效果;三是病害的長(zhǎng)和寬都采用樣條曲線來(lái)描述,控制點(diǎn)少則病害描述不理想,可以選取更多控制點(diǎn),如此可以得到更加逼真的病害圖.
病害圖生成后需要進(jìn)行查看才能確定病害圖效果,可以采用 AcadApp.ActiveDocument.SendCo mmand("_z" + vbCr + "_e" + vbCr)可以得到 Aut oCAD的縮放視角,如此可以清楚查看構(gòu)件病害.
通過(guò)采用vb.net對(duì)AutoCAD進(jìn)行的二次開(kāi)發(fā),可以方便地實(shí)現(xiàn)橋梁病害圖的描述,對(duì)橋梁病害能有較準(zhǔn)確的定位,大大簡(jiǎn)化了檢測(cè)人員的畫(huà)圖工作,此外AutoCAD的二次開(kāi)發(fā)也可以運(yùn)用于隧道或者其他結(jié)構(gòu)的檢測(cè),對(duì)于各種結(jié)構(gòu)的病害檢測(cè)出圖也能大大加快效率.
[1]張勁泉.我國(guó)公路橋梁承載能力檢測(cè)評(píng)定技術(shù)的現(xiàn)狀與發(fā)展[J].公路交通科技,2006(S1):53-55.
[2]張帆.AutoCAD VBA 二次開(kāi)發(fā)教程[M].北京:清華大學(xué)出版社,2006.
[3]公路橋涵養(yǎng)護(hù)規(guī)范(JTG H11-2004)[S].