佟 強
(大慶油田設(shè)計院有限公司,黑龍江 大慶 163712)
在油田產(chǎn)能規(guī)劃設(shè)計中,總圖管理與設(shè)計專業(yè)承擔站外系統(tǒng)區(qū)域總平面的編制工作,其中井位展繪是規(guī)劃方案設(shè)計中的重要部分,通過Excel表中的井位信息將井位展繪在電子版地形圖上,以便開展產(chǎn)能項目方案規(guī)劃及工程設(shè)計的后續(xù)工作。(1)參見張雪琴:《敖南油田產(chǎn)能建設(shè)總圖設(shè)計》,《油氣田地面工程》2008年第1期。
目前,井位展繪的批量工作可基于CAD軟件和Excel VBA編寫腳本的方法實現(xiàn),但,在油田產(chǎn)能規(guī)劃中,總圖管理與設(shè)計工作主要面向電子版地形圖,線型數(shù)據(jù)量較多,在繪制區(qū)域總平面圖及匯報圖時,偏重對色彩的選用及具有匯報性質(zhì)的圖紙設(shè)計,導(dǎo)致CAD軟件在打開此類圖紙進行設(shè)計工作時容易出現(xiàn)卡頓甚至未響應(yīng)等一系列問題。(2)參見唐桂彬、李俊鋒、劉帥:《基于AutoCAD動態(tài)塊和腳本文件的批量展點方法》,《地理空間信息》2016年第2期等。另一方面CAD軟件的批量井位展繪的操作是通過對Excel表中數(shù)據(jù)進行復(fù)制,再粘貼到CAD命令中實現(xiàn),展繪的過程沒有實現(xiàn)CAD與Excel的實時關(guān)聯(lián),過度依賴手動操作,容易出現(xiàn)數(shù)據(jù)丟失、錯漏、異常等情況。為了提高工作效率、保證數(shù)據(jù)安全,提出一種基于Microstation二次開發(fā)的設(shè)計方法,通過Microstation VBA語言編程環(huán)境可直接與Excel中井位數(shù)據(jù)進行連接、識別、提取和修改,并在展繪結(jié)束后顯示井別及其數(shù)量。(3)參見鄭娜:《大慶油田站場總圖設(shè)計節(jié)約用地簡析》,《油氣田地面工程》2013年第6期。
MicroStation軟件是一套專業(yè)電腦輔助繪圖軟件,有多種二次開發(fā)接口幫助用戶擴展軟件的功能。(4)參見侯祥意、盧姍、陶超:《基于MicroStation平臺的CAD文件動態(tài)無損坐標轉(zhuǎn)換方法研究》,《城市勘測》2019年第1期。其中,Microstation VBA是MicroStation為用戶提供的二次開發(fā)接口之一,通過Microstation VBA程序與Microsoft Office應(yīng)用程序建立連接和通訊,可實現(xiàn)對Excel數(shù)據(jù)讀取及修改,實現(xiàn)數(shù)據(jù)龐大且操作重復(fù)性較高的井位展繪工作。(5)參見孫斌:《基于MicroStation二次開發(fā)的平原水閘參數(shù)化設(shè)計》,《三峽大學(xué)學(xué)報》(自然科學(xué)版)2016年第5期。
為了實現(xiàn)油、水、氣井的展繪,需將提前設(shè)置好的井別代表不同的元素符號,程序運行中讀取井別數(shù)據(jù),以便從.cel文件中找到相應(yīng)的元素符號。井位展繪程序(即.mvba文件)在運行時可利用DGN文件新建菜單欄啟動程序,程序啟動后:一方面與Excle進行連接,以便獲取井位數(shù)據(jù);另一方面在程序運行中遍歷井位相關(guān)數(shù)據(jù),反復(fù)調(diào)用.cel文件中的井元素符號,在圖中展繪油、水、氣井元素,程序結(jié)構(gòu)及運行原理見圖1。
圖1 程序結(jié)構(gòu)及運行原理示意圖
2.1 遍歷數(shù)據(jù)與井別判定
通過While語句對表中每一行“井號”進行遍歷,當無數(shù)據(jù)可讀時程序跳出While語句。部分代碼如下:
CurRow = 2
While myWSA.Cells(CurRow, 3) <> ""
在程序?qū)γ恳恍袛?shù)據(jù)進行讀取的同時對“井別”信息進行讀取,單元格中的字符應(yīng)含如下關(guān)鍵字:
(1)油井的關(guān)鍵字為“油”“撈”“采出”;
(2)水井的關(guān)鍵字為“水”“注”;
(3)如果沒有在單元格中搜索到油井、水井的關(guān)鍵字,則程序判定為氣井。
讀取井別信息的代碼如下:
myWSA.Cells(CurRow, "U").Formula = "=IF(OR(ISNUMBER(FIND(""油"",D" & CurRow & ")),(ISNUMBER(FIND(""撈"",D" & CurRow & "))),(ISNUMBER(FIND(""采出"",D" & CurRow & ")))),""油井"",IF(OR(ISNUMBER(FIND(""水"",D" & CurRow & ")),(ISNUMBER(FIND(""注"",D" & CurRow & ")))),""水井"",""氣井""))"
2.2 文本定義與展繪
需要展繪的文本信息包括平臺號和井號,如果產(chǎn)能井位全部都是單井則無平臺號。井號與井元素一一對應(yīng),程序?qū)τ?、水、氣井對?yīng)的井號進行顏色區(qū)分,分別為紅色、藍色和橙色,分別代表油井、水井和氣井。文本元素展繪的代碼如下:
Set myText1 = CreateTextElement1(Nothing, myWSA.Cells(CurRow, 3), textpt1, RotMatrix)
ActiveModelReference.AddElement myText1
2.3 元素定義與展繪
需要展繪的元素信息包括油、水、氣井的元素符號,通過井別判定和調(diào)用.cel元素庫文件,可在庫中讀取元素符號,再根據(jù)坐標數(shù)據(jù)展繪到圖中。元素符號展繪的代碼如下:
Set myText2 = CreateTextElement1(Nothing, myWSA.Cells(CurRow, 2) & "#", textpt2, RotMatrix)
ActiveModelReference.AddElement myText2
2.4 程序流程
操作、讀取、展繪井位信息的流程如下:
(1)程序啟動,從第2行開始,對C列數(shù)據(jù)進行遍歷,并判斷該單元格數(shù)據(jù)是否為空;
(2)通過讀取井別(油井、水井、氣井)數(shù)據(jù)得到相對應(yīng)的元素符號并展繪;
(3)將該井號顏色賦值并展繪;
(4)將該井元素符號、井號賦值一個圖層名稱;
(5)井位展繪完成后,行數(shù)加1,從第3行開始,對C列數(shù)據(jù)進行遍歷,并判斷該單元格數(shù)據(jù)是否為空,如不為空,繼續(xù)進行井位信息讀取及展繪,依次類推;
(6)直到單元格數(shù)據(jù)為空,程序結(jié)束。
程序流程如圖2所示:
圖2 程序流程圖
2.5 數(shù)據(jù)格式及功能實現(xiàn)
程序設(shè)定讀取Excel文件的產(chǎn)能井位數(shù)據(jù)格式為:A列為序號,B列為平臺號,C列為井號,D列為井別,E列為縱坐標,F(xiàn)列為橫坐標。井位數(shù)據(jù)格式如表1所示,9口獨立井,無平臺井。
表1 井位數(shù)據(jù)
井位展繪程序的遍歷從C2“油井1”開始,當讀到C10“氣井3”之后,由于C11為空值,則程序結(jié)束,井位元素完全按照表中E、F列所示的橫、縱坐標數(shù)據(jù)進行展繪,井號的文本元素展繪則依據(jù)坐標原點向右偏移與元素符號錯開,井位展繪結(jié)果見圖3。
圖3 井位展繪示意圖
井位展繪是油田產(chǎn)能建設(shè)規(guī)劃方案階段的前期工作,通過井位分布,總體規(guī)劃出本項目的產(chǎn)能中心區(qū)域,對是否新建站、間的決策、各種線路的路由選取有著極為重要的意義。通過2組井位數(shù)據(jù)的展繪效果及工作效率,對Microstation VBA程序進行井位展繪與傳統(tǒng)AutoCAD的方法進行對比分析。
(1)以某區(qū)塊平臺規(guī)劃井位坐標為例,如表2所示。
表2 井位數(shù)據(jù)
井位數(shù)據(jù)中包括2座平臺井位信息,分別通過AutoCAD和MicrostationVBA展繪的井位效果見圖4,通過展繪效果的對比分析,由于同一平臺井位的井位坐標相同,前者的井號文本出現(xiàn)重疊現(xiàn)象,而后者通過程序?qū)Ρ?,井號文本進行有序排列,同時,油、水井進行分層賦值、元素符號及文本顏色區(qū)分,最后平臺號也能一并展繪,而AutoCAD需要大量手動操作才能實現(xiàn)。
實例2,以某區(qū)塊完鉆井位坐標為例,與規(guī)劃井位不同,同一平臺相鄰井位的井口距離7-10m,假設(shè)相鄰井口距離7m,如表3所示:
兩種井位展繪效果見圖4,由于同一平臺相鄰井位距離較近,通過AutoCAD展繪的井位文本仍然有重疊情況,而通過Microstation VBA展繪的井位依然可以將井號文本有序排列。
兩種井位展繪的效果對比見表4,利用MicrostationVBA二次開發(fā)的方法進行井位展繪,可以有效減少人工對數(shù)據(jù)的操作,通過程序?qū)恍畔⒌闹苯幼x取,在操作上難度大大降低,同時對不同井別進行區(qū)分以及分層管理,還能對井號進行排序,為規(guī)劃設(shè)計的后續(xù)工作帶來便利。
表3 井位數(shù)據(jù)
圖5 優(yōu)化后的規(guī)劃井位展繪示意圖
表4 井位展繪效果對比
基于Microstation二次開發(fā)的油田產(chǎn)能井位的展繪方法,實現(xiàn)了Microstation與Excel的連接,實現(xiàn)一鍵展繪,減少了手動工作量,縮短了設(shè)計周期,提升了井位展繪及油田規(guī)劃工作的效率。從管理方面看,在展繪過程中對不同井位分層管理的實現(xiàn),也為油田產(chǎn)能建設(shè)工程的后期設(shè)計及調(diào)整工作提供了便利。實例證明,此方法保證了數(shù)據(jù)安全性的同時提高了工作效率,在油田產(chǎn)能設(shè)計工作中具有重要意義。