張 鋼,楊松林,張力小,張莉莎
(1.河北科技大學(xué) 機(jī)械電子工程學(xué)院,石家莊 050018;2.北京師范大學(xué) 環(huán)境學(xué)院,北京100875)
在化工企業(yè)的圖紙?jiān)O(shè)計(jì)中涉及大量的管道設(shè)計(jì),多數(shù)采用二維的設(shè)計(jì)方式。二維電子圖紙不易看懂,其中的錯(cuò)誤很難被發(fā)現(xiàn),等到施工時(shí)才顯示出來(lái),這給工程施工造成嚴(yán)重后果。二維的表達(dá)方式也給改建或擴(kuò)建帶來(lái)不便。與二維設(shè)計(jì)相比,三維設(shè)計(jì)有利于全面考慮操作、檢查、安全的需要;容易發(fā)現(xiàn)施工時(shí)可能出現(xiàn)的問(wèn)題,并事先獲得解決;有利于工程建設(shè)制定計(jì)劃、編制預(yù)算、劃分分包范圍。針對(duì)化工廠中的大量的二維電子圖紙,對(duì)其進(jìn)行三維實(shí)體重建是很有必要的。
管道布置圖是在設(shè)備布置圖上增加了管道布置情況的圖樣。管道布置圖中所解決的主要問(wèn)題是如何用管道把設(shè)備連起來(lái)。根據(jù)管道布置圖的特點(diǎn)可知,需要對(duì)其進(jìn)行一定的預(yù)處理,內(nèi)容包括:
1)刪除多余信息:例如圖框、管架等。
2)重新表達(dá):將雙管線用其中心線表示轉(zhuǎn)為單管線表達(dá),重疊隱藏的管線重新表達(dá)清楚,刪除斷線號(hào)等。
3)工程語(yǔ)義的關(guān)聯(lián):采用建塊方法建立圖形與其屬性(工程語(yǔ)義)的關(guān)聯(lián),塊名按一定規(guī)則命名。
4)圖形分段處理:分別以主要設(shè)備為中心,手動(dòng)將一組相關(guān)聯(lián)的視圖存放在不同名的.dwg文件中,文件名用主要設(shè)備名稱命名,將這樣的圖段叫做“子圖”,子圖中的各個(gè)圖形的位置和原來(lái)管道布置圖中相應(yīng)坐標(biāo)一致。
選擇VB為編程工具,采用AutoCAD作為圖形處理平臺(tái),利用Access建立數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)三維重建數(shù)據(jù)。VB通過(guò)ActiveX Automation技術(shù)[1]與AutoCAD進(jìn)行接口和通信從而實(shí)現(xiàn)對(duì)AutoCAD的控制和操作,進(jìn)而實(shí)現(xiàn)AutoCAD圖形的信息提取、存儲(chǔ)和圖形的建立等。利用VB強(qiáng)大的數(shù)據(jù)庫(kù)訪問(wèn)功能將提取的數(shù)據(jù)信息按照一定的規(guī)則添加到Access數(shù)據(jù)庫(kù)中,以便三維重建時(shí)能夠從其中讀取所需信息。根據(jù)所存儲(chǔ)數(shù)據(jù)的內(nèi)容利用Access數(shù)據(jù)庫(kù)創(chuàng)建多個(gè)數(shù)據(jù)表,并創(chuàng)建它們的鏈接。利用ADO技術(shù)[2]可以實(shí)現(xiàn)Visual Basic對(duì)Access數(shù)據(jù)庫(kù)的訪問(wèn)和數(shù)據(jù)交互更新等。
圖形識(shí)別和信息匹配是三維重建的一個(gè)重點(diǎn)也是難點(diǎn),是根據(jù)二維工程圖,對(duì)圖形對(duì)象進(jìn)行識(shí)別判斷,通過(guò)編程方法和用戶交互選擇方式實(shí)現(xiàn)圖形與工程語(yǔ)義的匹配及視圖之間的匹配,進(jìn)而得到圖形對(duì)象所在的空間的位置和方位三維數(shù)據(jù)及其圖形對(duì)象本身的數(shù)據(jù)。
1) 圖形識(shí)別
根據(jù)對(duì)象名稱和線寬識(shí)別管道和一般彎頭。通過(guò)塊名識(shí)別管道標(biāo)注、退化彎頭、三通、異徑管、閥門、儀表、附件和設(shè)備;通過(guò)塊的屬性值來(lái)判斷是何種閥門、儀表、附件或設(shè)備。
2)圖形匹配
管道往往由好幾個(gè)管段組成,管段之間是由閥門、儀表、附件、一般彎頭和異徑管連接的,管道標(biāo)注只標(biāo)注在其中的一個(gè)管段上。圖形匹配[3]方法是首先找與管道標(biāo)注塊相交的且交點(diǎn)是管道標(biāo)注塊基點(diǎn)的管段,直接把管道標(biāo)注相關(guān)信息賦值相應(yīng)管段,例如標(biāo)高直接賦值給管段的Z方向值,把已匹配的管道標(biāo)注刪除,給已匹配的管段賦予顏色以區(qū)分是否匹配。接下來(lái)需要對(duì)其它對(duì)象匹配,這里依據(jù)深度優(yōu)先搜索算法[4]原理沿管道方向的管段端點(diǎn)去遍歷圖形,識(shí)別其它對(duì)象并對(duì)它們進(jìn)行匹配,通過(guò)管道端點(diǎn)的對(duì)象來(lái)判斷繼續(xù)還是終止搜索,例如對(duì)象是設(shè)備就會(huì)終止這個(gè)方向的搜索。最后把匹配的數(shù)據(jù)存入建好的數(shù)據(jù)庫(kù)中。
3) 視圖匹配
根據(jù)表達(dá)的需要,管道布置圖采用一組視圖:平面圖、剖視圖、向視圖和局部放大視圖。所有視圖都放在同一坐標(biāo)下,為了還原它們?cè)谌S重建坐標(biāo)系下的坐標(biāo),需要先在主視圖上確定三維重建的坐標(biāo)系,通過(guò)人機(jī)交互選擇方式來(lái)對(duì)視圖進(jìn)行匹配,然后對(duì)除主視圖以外的其它視圖進(jìn)行坐標(biāo)變換[5]。
三維實(shí)體重建基本思路:首先,通過(guò)編程方法結(jié)合化工三維圖形庫(kù)[6]和三維重建數(shù)據(jù)庫(kù)實(shí)現(xiàn)設(shè)備自動(dòng)重建并準(zhǔn)確在空間定位;其次,根據(jù)三維重建數(shù)據(jù)庫(kù)進(jìn)行管道和管道連接件的三維實(shí)體重建;再次,實(shí)現(xiàn)閥門、儀表和管道附件的三維實(shí)體重建;最后,人機(jī)交互處理空間三維模型,例如與設(shè)備管口相連的直管段是由設(shè)備管口確定位置的,需要人機(jī)交互處理。
從三維重建數(shù)據(jù)庫(kù)得到管道的起點(diǎn)P1( X1, Y1, Z1)、終點(diǎn)P2( X2, Y2, Z2)和管徑D。根據(jù)這幾個(gè)參數(shù)可以得到管道半徑R,點(diǎn)P1到點(diǎn)P2的三維向量P,點(diǎn)P1和點(diǎn)P2這兩點(diǎn)的距離L,空間坐標(biāo)系Z軸正方向的單位方向向量為Iz,向量P和向量Iz的向量積為向量H,選HAxis為向量H正方向上的一點(diǎn),向量P和向量Iz的夾角為θ。
三維管道實(shí)體重建思路:首先在空間坐標(biāo)下以原點(diǎn)繪制管道截面和拉伸路徑,在XY平面上以原點(diǎn)center ( 0 , 0 , 0 )為圓心,R為半徑繪制管道截面,以原點(diǎn)center ( 0 , 0 , 0 )和點(diǎn) point_z ( 0 , 0 , L )為兩端點(diǎn)繪制拉伸路徑,建立三維實(shí)體管道,效果如圖1中a所示;然后以向量H正方向?yàn)樾D(zhuǎn)軸旋轉(zhuǎn)三維實(shí)體管道,旋轉(zhuǎn)角度為θ,使管道中心線方向與向量P一致,效果如圖1中b所示;最后將三維管道移到P1點(diǎn),實(shí)現(xiàn)空間三維管道的重建,效果如圖1(c)所示。

圖1 三維管道重建示意圖
三通和異徑管的重建方法與管道的重建方法類似,三通可以看成是兩個(gè)管道三維重建的疊加,異徑管可以看成是截面繞X軸旋轉(zhuǎn)生成三維異徑管實(shí)體,其它過(guò)程和三維管道重建過(guò)程類似。
彎頭三維實(shí)體重建思路:從三維重建數(shù)據(jù)庫(kù)得到圓弧的圓心C ( X0, Y0, Z0)、起點(diǎn)P1( X1, Y1, Z1)、終點(diǎn)P2( X2, Y2, Z2)和半徑r。根據(jù)這幾個(gè)已知參數(shù)建立一個(gè)參考坐標(biāo)系,由參考坐標(biāo)系和固定坐標(biāo)系(空間坐標(biāo)系)可以得到變換矩陣。假設(shè)將點(diǎn)C移到固定坐標(biāo)系的原點(diǎn),按照管道重建的方法建立三維彎頭實(shí)體,然后使用該變換矩陣[7]將彎頭三維實(shí)體進(jìn)行幾何變換,最后完成彎頭的三維實(shí)體重建。
參考坐標(biāo)系的建立方法:以點(diǎn)C ( X0, Y0, Z0)為坐標(biāo)系原點(diǎn),點(diǎn)P1( X1, Y1, Z1)為X軸方向上的一點(diǎn),由該坐標(biāo)系下的XOY平面上的另一點(diǎn)為P2( X2, Y2, Z2)可得Y軸正方向上的一點(diǎn)P3( X3, Y3, Z3)。根據(jù)立體解析幾何的知識(shí)知,CP1⊥ CP3,有

根據(jù)C、P1、P2、P3四點(diǎn)共面得

由于P3是Y軸正半軸上的任一點(diǎn),假設(shè)其坐標(biāo)滿足

由以上三個(gè)式子結(jié)合起來(lái),可以得到X3、Y3和Z3的值,最終確定參考坐標(biāo)系。
由于閥門、儀表、附件和設(shè)備在管道布置圖中都是用圖形符號(hào)表示的,無(wú)法對(duì)它們提取足夠的信息進(jìn)行三維實(shí)體重建,所以必須建立相應(yīng)的化工三維圖形庫(kù)以便管道布置圖的三維實(shí)體重建的調(diào)用。重建方法:由三維重建數(shù)據(jù)庫(kù)可以得到閥門、儀表和附件與管道的兩個(gè)交點(diǎn)(由這兩個(gè)點(diǎn)可以計(jì)算出安裝角度)、安裝平面和型號(hào),設(shè)備的放置位置、放置角度和型號(hào)。根據(jù)型號(hào)調(diào)出相應(yīng)閥門、儀表、附件或設(shè)備,由安裝位置和角度把其放置在相應(yīng)空間位置完成閥門、儀表、附件和設(shè)備的三維實(shí)體重建。

圖2 管道布置圖的一個(gè)子圖
圖2為某石化集團(tuán)有限公司50萬(wàn)噸/年直柴脫酸精制改造的管道布置圖的一個(gè)子圖,現(xiàn)以此圖為實(shí)例說(shuō)明其三維重建過(guò)程,對(duì)此子圖進(jìn)行圖形識(shí)別、信息提取及匹配,將數(shù)據(jù)存放在三維重建數(shù)據(jù)庫(kù)中。根據(jù)上文的三維實(shí)體重建方法得到如圖3(a)所示,其中圖3(b)是(a)的一個(gè)局部放大效果圖,從(b)中可以看出管道和設(shè)備還沒(méi)有連接,這就需要對(duì)其進(jìn)行人機(jī)交互處理,得到如圖3(c)所示的效果,完成這個(gè)子圖的三維實(shí)體重建。

圖3 三維實(shí)體重建實(shí)例
三維實(shí)體重建追求的目標(biāo)是將化工二維管道布置圖進(jìn)行批量轉(zhuǎn)換,直接將二維電子圖紙翻譯成三維立體圖,使用戶直接看到最終設(shè)計(jì)效果,它不僅對(duì)其在化工行業(yè)普及有重要的意義,而且對(duì)三維技術(shù)發(fā)展也具有重要的意義。
[1] 宋小春, 陸載涵, 趙大興.AutoCAD考試系統(tǒng)中圖形數(shù)據(jù)的提取和自動(dòng)評(píng)分[J].湖北工學(xué)院學(xué), 2002,17(3): 10-12.
[2] 徐楓, 馬國(guó)之, 劉良旭.基于ADO技術(shù)的數(shù)據(jù)庫(kù)訪問(wèn)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2004, 25(1): 107-110.
[3] 薛峰, 張燕, 趙盼.二維化工工藝管道圖的三維重建[J].科學(xué)技術(shù)與工程, 2010, 10(14): 3523-3526.
[4] 王力強(qiáng), 常桂然, 王鳳, 申健.工廠管道設(shè)計(jì)軟件管段圖提取方法的研究[J].小型微型計(jì)算機(jī)系統(tǒng), 1998, 19(1):62-67.
[5] 趙曉峰, 孫靜波, 孔慶.面向三維重建的工程圖信息預(yù)處理的研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2008, 2: 47-49.
[6] 朱長(zhǎng)江.工程設(shè)計(jì)中建立AutoCAD圖形庫(kù)新方法[J].武漢造船, 1999, 4: 36-38.
[7] 李清泉, 嚴(yán)勇, 楊必勝, 等.地下管線的三維可視化研究[J].武漢大學(xué)學(xué)報(bào)·信息科學(xué)版, 2003, 28(3): 277-282.