樊國剛,邢 傳
(遼寧省水利水電勘測設(shè)計研究院有限責(zé)任公司,遼寧 沈陽 110006)
我國水資源總量充沛,但水資源在空間上和時間上分布不均衡,導(dǎo)致人均水資源量貧乏,制約城市的發(fā)展和經(jīng)濟(jì)產(chǎn)業(yè)的整體布局[1- 2]。隨著國民經(jīng)濟(jì)的快速發(fā)展,部分地區(qū)已經(jīng)出現(xiàn)了水資源過度開發(fā)的現(xiàn)象,比如湖泊水環(huán)境惡化、超采地下水導(dǎo)致地面塌陷等問題??缌饔蛞{(diào)水[3- 4]可以有效緩解這一矛盾。通過跨流域引調(diào)水工程來優(yōu)化和配置區(qū)域間的有限水量,重新分配空間和時間上的供給水量,緩解供需矛盾,改善供水地區(qū)的生活和生產(chǎn)條件,并有效地支撐供水地區(qū)的經(jīng)濟(jì)發(fā)展;但跨流域引調(diào)水工程在帶來諸多生產(chǎn)、生活效益的同時也會對生態(tài)環(huán)境造成一定影響[5- 6],有積極的影響,也有消極的影響,因此在修建引調(diào)水工程前,應(yīng)進(jìn)行全面的分析論證。
管線輸水是引調(diào)水工程常采用的輸水形式。管線施工中涉及大量的土石方開挖和回填工作,這些工作需要考慮臨時征占地以滿足施工要求,而臨時征占地過程中常常面臨很多困難[7- 9],而且征占地范圍的大小會直接影響水利工程的投資金額[10];因此,為了工程順利實(shí)施且節(jié)約投資,應(yīng)盡量使臨時征占地面積最小化,本文提出了臨時征占地設(shè)計方案。但在繪制征占地布置圖時,需要處理大量的數(shù)據(jù)信息,很繁瑣,易出錯,且效率低,還常常因設(shè)計方案改變而返工,鑒于此,可采用VBA編程語言對AutoCAD進(jìn)行二次開發(fā)[11- 12]來進(jìn)行數(shù)據(jù)處理。
采用VBA編程語言對AutoCAD進(jìn)行二次開發(fā)十分方便[13],VBA編程語言是一種面向?qū)ο蟮目梢暬幊坦ぞ?,其語法比較簡單、易于設(shè)計人員掌握,且功能很強(qiáng)大。目前,許多流行的商業(yè)通用軟件,如AutoCAD、Microsoft Office Word、Microsoft Office Excel等都內(nèi)置了VBA開發(fā)工具[14- 15],其強(qiáng)大的功能為各軟件的二次開發(fā)提供了良好的框架平臺,同時也為各軟件之間建立了便利的信息互通渠道。
遼寧省北鎮(zhèn)市供水工程是以白石水庫為水源,通過一根DN800球墨鑄鐵管輸水管線輸水至北鎮(zhèn)市凈水廠,給整個北鎮(zhèn)市城區(qū)供水的基礎(chǔ)設(shè)施工程,管線全長32.64km,途經(jīng)5個鄉(xiāng)鎮(zhèn)、1個工業(yè)園,穿越河流5次,穿越高速3次。
工程臨時征占地具有范圍跨度大、點(diǎn)多、線長、面廣、涉及土地性質(zhì)復(fù)雜的,既有基本農(nóng)田,也有城鎮(zhèn)建設(shè)用地,并且附近村民對征地政策及爭取征地補(bǔ)償款均有豐富的經(jīng)驗。因此,優(yōu)化臨時征占地范圍,減小臨時征占地投資,十分必要。
圖1 管線施工臨時征占地斷面圖
在滿足經(jīng)濟(jì)合理的施工條件下,管線施工臨時征占地設(shè)計,一方面需要滿足臨時堆存用于管溝回填的開挖土石料的需求(以下簡稱堆土側(cè));另一方面需要滿足臨時交通的需求,(以下簡稱交通側(cè))。管線施工臨時征占地設(shè)計方案圖1所示。
根據(jù)設(shè)計方案,臨時征占地總寬度Z可由式(T+A1)+(P1+B+P2)+(A2+L+D)計算得到,其中參數(shù)T的確定最為關(guān)鍵,計算公式:
式中,T—堆土側(cè)臨時堆土石寬度,m;S—設(shè)計開挖斷面臨時堆存的土石方面積(松散態(tài)),m2;H—臨時堆土高度,m;m—臨時堆土坡比;f—輔助參數(shù),當(dāng)S≥H2m,取f1=1、f2=0;反之,取f1=0、f2=1;B—設(shè)計開挖斷面管溝寬度,m;h—設(shè)計開挖斷面總開挖深度,m;h=h1+h2;n1—設(shè)計斷面靜荷載側(cè)的坡度;n2—設(shè)計斷面動荷載側(cè)的坡度;k1—土方松散系數(shù);k2—石方松散系數(shù)。
以遼寧省北鎮(zhèn)市供水工程樁號0+000—0+400段為例,計算堆土側(cè)臨時堆土石寬度,計算成果見表1。
基于AutoCAD內(nèi)置的VBA編程平臺,實(shí)現(xiàn)對AutoCAD進(jìn)行二次開發(fā),達(dá)到高效繪制臨時征占地布置圖的目的,首先是要找到數(shù)據(jù)和繪圖元素之間的對應(yīng)關(guān)系,然后編程調(diào)用數(shù)據(jù),批量操作繪圖元素,步驟如下。
首先,沿管道軸線布置樁號,提取管道中心線和樁號線交點(diǎn)的坐標(biāo);然后用提取的管道軸線坐標(biāo)繪制多段線并炸開成直線段,如此便獲得了樁號區(qū)間的基本繪圖元素(以下簡稱圖元)。
將各樁號區(qū)間計算得到的征占地寬度,按照堆
表1 堆土側(cè)臨時堆土石寬度計算表
土側(cè)征占地寬度和交通側(cè)征占地寬度分別計列,整理到Excel表格中,見表2,第四列為堆土側(cè)征占地寬度,第五列為交通側(cè)征占地寬度。
表2 樁號區(qū)間征占地寬度匯總表
利用AutoCAD內(nèi)置的VBA開發(fā)工具,建立AutoCAD和Excel之間的通信,使AutoCAD能夠調(diào)用Excel工作表中的中數(shù)據(jù)。
首先,聲明對象變量,用CreateObject函數(shù)創(chuàng)建Microsoft Excel引用,如引用F盤文件“管線征占地寬度數(shù)據(jù)源.xlsx”工作簿中的“堆土側(cè)征占地寬度數(shù)據(jù)”工作表。
Dim xlapp As Object
Dim xlbook As Object
Dim xlsheet As Object
Set xlapp=CreateObject("excel.application")
Set xlbook=xlapp.workbooks.Open("F:管線征占地寬度數(shù)據(jù)源.xlsx")
Set xlsheet=xlbook.worksheets("堆土側(cè)征占地寬度數(shù)據(jù)")
然后,便可在AutoCAD中可建立變量或數(shù)組,直接調(diào)用Excel工作表中的數(shù)據(jù)。
首先,在AutoCAD中創(chuàng)建數(shù)組p(i),再將Excel工作表中計算得到的占地寬度數(shù)據(jù)信息讀取到數(shù)組p(i)中;
For i=0 To (num_col- 1) Step 1
p(i)=xlsheet.Cells(i+row, col).Value
Next i
其次,在AutoCAD繪圖空間中遍歷圖元,實(shí)現(xiàn)圖元的批量化偏移操作;
For Each oBj In AcadApp.ActiveDocument.ModelSpace‘遍歷繪圖空間的圖元
If oBj.EntityName="AcDbLine" Then
offsetObj=oBj.Offset(-tt)
End If
If i <=951 Then ‘951指圖元個數(shù)
i=i+1
tt=p(i)
End If
Next oBj
然后,繪制偏移后圖元的外包線,并結(jié)合實(shí)際地形,對不可排除障礙物(如魚塘、房屋、涉河、跨路等重點(diǎn)部位)的外包線行進(jìn)修正。例如,在無空間用于臨時堆存土石料的部位,應(yīng)減小征占地寬度,并將土方向外倒運(yùn);在涉河、跨路的部位,應(yīng)增加占地寬度,以滿足施工作業(yè)面和交通通行的要求。修正后的圖元外包線即為臨時征占地范圍。
最后,編程批量提取征占地邊線坐標(biāo)點(diǎn)并標(biāo)識角點(diǎn),完成管線施工臨時征占地布置圖的繪制。
引調(diào)水工程管線施工臨時征占地的大小,直接影響水利工程的投資金額,為節(jié)約投資,合理劃定臨時征占地范圍、精細(xì)化繪制臨時占地邊線是十分必要的。本文從實(shí)際工程出發(fā),提出了引調(diào)水工程管線施工臨時征占地設(shè)計方案,并利用VBA對CAD進(jìn)行二次開發(fā),編程實(shí)現(xiàn)對繪圖單元的批量操作,高效、快速、準(zhǔn)確地繪制臨時征占地范圍。
本文對于管線施工的臨時征占地設(shè)計及布置圖繪制具有一定實(shí)踐意義。