宋 春,郭雪琦,喬向國(guó),李文勝,劉 通,高海峰
中國(guó)石油集團(tuán)海洋工程有限公司,山東青島 266555
在導(dǎo)管架加工設(shè)計(jì)工作中,腳印圖是指撐桿馬鞍口外邊緣在弦桿表面所成輪廓的展開(kāi)圖,用于桿件安裝施工中的精確定位,是結(jié)構(gòu)管單件圖繪制的難點(diǎn)部分。結(jié)構(gòu)管單件圖中腳印圖具體示例見(jiàn)圖1。在導(dǎo)管架安裝施工過(guò)程中,結(jié)構(gòu)安裝圖和結(jié)構(gòu)管單件圖配套使用[1]。前者僅含桿件中心線位置信息,難以直接指導(dǎo)施工,所以需要將后者的腳印輪廓放樣到弦桿表面,以實(shí)現(xiàn)撐桿在弦桿上的精確定位。
圖1 結(jié)構(gòu)管單件圖中的腳印圖
TEKLA軟件雖有展開(kāi)圖出圖功能[2-3],但由于撐桿不對(duì)弦桿進(jìn)行實(shí)體切割,展開(kāi)圖不含腳印輪廓,所以無(wú)法利用軟件直接出圖。
按照傳統(tǒng)的腳印圖繪制方法,每次作圖前都要在TEKLA模型中進(jìn)行多次視圖方向切換和空間尺寸測(cè)量操作,以完成腳印圖中上、下、左、右4個(gè)定位點(diǎn)的坐標(biāo)測(cè)算工作。但導(dǎo)管架中的桿件多為空間方向,視圖切換操作更為繁瑣復(fù)雜,測(cè)量關(guān)鍵點(diǎn)的捕捉更加困難易錯(cuò)。
以陸豐12-3WHP項(xiàng)目為例,導(dǎo)管架整體尺寸達(dá)到85 m×85 m×253 m(寬×長(zhǎng)×高),節(jié)點(diǎn)形式復(fù)雜多樣。如果不算井口基盤(pán)結(jié)構(gòu),項(xiàng)目總桿件數(shù)量超過(guò)500根,需要繪制的腳印輪廓多達(dá)1 000多個(gè)。傳統(tǒng)繪圖方法的效率和質(zhì)量已難以滿足項(xiàng)目工期和安裝精度要求。陸豐12-3WHP導(dǎo)管架的TEKLA模型見(jiàn)圖2。
圖2 陸豐12-3 WHP導(dǎo)管架模型
首先在模型中進(jìn)行多次視圖創(chuàng)建和尺寸測(cè)量工作,然后根據(jù)測(cè)量值計(jì)算繪圖尺寸,最后在CAD中進(jìn)行圖形繪制。具體步驟如下。
在TEKLA模型中進(jìn)行如下操作:
(1)選擇與弦桿和撐桿同時(shí)平行的視圖,將工作平面設(shè)置為平行于視圖平面。
(2)選取弦桿軸線上兩端點(diǎn),使用“兩點(diǎn)創(chuàng)建視圖”功能創(chuàng)建新視圖(記作視圖a),將工作平面設(shè)置為平行于視圖平面。
(3)在視圖a中,使用“增加輔助線”功能創(chuàng)建參考線。
(4)僅顯示當(dāng)前測(cè)量對(duì)象,隱藏其他實(shí)體。
(5)測(cè)量4個(gè)定位點(diǎn)與參考線之間的水平距離。
(6)在原視圖中沿直徑方向選取弦桿上兩點(diǎn),使用“兩點(diǎn)創(chuàng)建視圖”功能創(chuàng)建垂直于弦桿軸線的新視圖(記作視圖b),將工作平面設(shè)置為平行于視圖平面。
(7)在視圖b中,測(cè)量弦桿圓心和弦桿焊縫的連線與撐桿軸線之間的夾度。
(8)在視圖b中,以弦桿軸心為圓心,分別測(cè)量撐桿和弦桿外壁兩個(gè)交點(diǎn)與弦桿焊縫之間的夾角。
根據(jù)測(cè)量值,結(jié)合參考線和0°線在CAD中確定的基準(zhǔn)點(diǎn)位置,分別計(jì)算左、右、上和下4個(gè)定位點(diǎn)在CAD中的坐標(biāo)值。
首先繪制4個(gè)定位點(diǎn),然后以相鄰兩點(diǎn)為長(zhǎng)、短半軸端點(diǎn),分別繪制4個(gè)橢圓弧,作為腳印圖的近似圖形。
(1)測(cè)量過(guò)程復(fù)雜。至少需在模型中進(jìn)行2次視圖創(chuàng)建和7次尺寸測(cè)量,傾斜方向桿件的測(cè)量過(guò)程更加繁瑣。
(2)測(cè)量精度不足。部分切點(diǎn)在測(cè)量中難以精確捕捉,導(dǎo)致上下定位點(diǎn)的水平坐標(biāo)精度不足,只能用于輪廓繪制,而不能用作精確定位點(diǎn)。
(3)整體擬合度低。除定位點(diǎn)之外的輪廓都用橢圓弧代替,導(dǎo)致某些情況下腳印圖走樣嚴(yán)重?,F(xiàn)場(chǎng)只能根據(jù)左、右定位點(diǎn)進(jìn)行組對(duì)施工,不利于精度控制和錯(cuò)誤檢查。擬合腳印示例相對(duì)于實(shí)際腳印的輪廓偏差見(jiàn)圖3中的弦桿展開(kāi)圖。
圖3 兩桿相交的三視圖、斜視圖和弦桿展開(kāi)圖
(4)錯(cuò)誤率高。視圖創(chuàng)建方向不準(zhǔn)確,誤操作導(dǎo)致視圖方向輕微旋轉(zhuǎn),空間點(diǎn)捕捉錯(cuò)誤,尺寸方向測(cè)量錯(cuò)誤,這些都有可能導(dǎo)致腳印變形、反向或偏移,嚴(yán)重影響現(xiàn)場(chǎng)施工質(zhì)量。
首先分析輸入輸出條件,確定繪圖所需最簡(jiǎn)參數(shù),減少測(cè)量次數(shù),簡(jiǎn)化測(cè)量步驟;然后通過(guò)分析計(jì)算,確定輸入?yún)?shù)與繪圖數(shù)據(jù)之間的函數(shù)關(guān)系;最后利用AutoLISP語(yǔ)言編制繪圖程序,實(shí)現(xiàn)圖形繪制的自動(dòng)化。
弦桿與撐桿相交的一般情況見(jiàn)圖3,其中包括各關(guān)鍵點(diǎn)和關(guān)鍵參數(shù)在三視圖、斜視圖和弦桿展開(kāi)圖共5個(gè)視角下的對(duì)應(yīng)位置。結(jié)合圖3進(jìn)行具體的優(yōu)化分析計(jì)算。
輸入條件:
(1)腳印圖的形狀可由以下參數(shù)唯一確定:弦桿半徑R、撐桿半徑r、兩桿交角a和兩桿中心線距離E。
(2)腳印圖的定位可由以下參數(shù)唯一確定:基準(zhǔn)點(diǎn)(參考線與0°線的交點(diǎn)) 在CAD圖紙中的坐標(biāo)值(x0,y0),腳印圖點(diǎn)L(左定位點(diǎn)) 相對(duì)于基準(zhǔn)點(diǎn)的坐標(biāo)值(x10,y10)。
上述8個(gè)參數(shù)中,a、E、x10、y10這4個(gè)參數(shù)需在模型中測(cè)量。
輸出結(jié)果:腳印圖上任意點(diǎn)P在CAD圖紙中的坐標(biāo)位置,記作(xp,yp)。
計(jì)算腳印圖軌跡的本質(zhì)是求解兩桿柱面交點(diǎn)在弦桿柱面展開(kāi)圖中的坐標(biāo),其求解方法包括純幾何計(jì)算、柱面標(biāo)準(zhǔn)方程聯(lián)立計(jì)算和柱面向量參數(shù)方程聯(lián)立計(jì)算。經(jīng)比較,最后一種方法計(jì)算過(guò)程相對(duì)簡(jiǎn)單。
圖3中,點(diǎn)L和P分別為腳印上的左定位點(diǎn)和任意點(diǎn),θr是點(diǎn)P在撐桿橫截面上對(duì)應(yīng)的方位角,各參數(shù)規(guī)定為正方向。以O(shè)為坐標(biāo)原點(diǎn),Z軸沿弦桿軸線向量方向,X軸沿?fù)螚U軸線向量在弦桿截面上投影的反方向,建立空間坐標(biāo)系。
結(jié)合圖3,以輸入?yún)?shù)R、r、a、E為已知量,θr為自變量,求解點(diǎn)P在弦桿展開(kāi)圖中的坐標(biāo) (xp,yp)。
由于需要在CAD中創(chuàng)建圖形,所以選擇CAD的內(nèi)置語(yǔ)言AutoLISP進(jìn)行編程。
根據(jù)繪圖功能需求,分析幾何實(shí)體樣條曲線的數(shù)據(jù)結(jié)構(gòu)[5],編制五個(gè)子函數(shù),分別實(shí)現(xiàn)參數(shù)輸入、數(shù)值計(jì)算、定位點(diǎn)繪制、腳印圖繪制、定位點(diǎn)和腳印圖的分割移動(dòng)功能,然后使用主程序依次調(diào)用。
程序編制過(guò)程中出現(xiàn)的主要問(wèn)題、原因分析及解決辦法如下:
4.4.1 定位尺寸不準(zhǔn)確
原因:使用繪圖命令對(duì)圖形進(jìn)行移動(dòng)時(shí),會(huì)自動(dòng)調(diào)整到捕捉點(diǎn)位置。
解決:程序中修改控制環(huán)境變量osmode的取值,繪圖前自動(dòng)取消對(duì)象捕捉,繪圖后自動(dòng)復(fù)原。
4.4.2 剪切命令有時(shí)失效
原因:操作對(duì)象處于視圖窗口之外時(shí),剪切命令不被執(zhí)行。
解決:對(duì)圖元的處理有兩種方式,第一種是使用command函數(shù)調(diào)用各種繪圖命令,第二種是使用entmake和entmod函數(shù)直接對(duì)圖元數(shù)據(jù)進(jìn)行創(chuàng)建和修改。前者簡(jiǎn)便易用,后者強(qiáng)大高效。所以解決辦法是改用第二種圖元處理方式。
4.4.3 腳印圖形有時(shí)不顯示
原因:計(jì)算機(jī)符點(diǎn)運(yùn)算誤差導(dǎo)致負(fù)數(shù)開(kāi)方運(yùn)算,進(jìn)而引起程序執(zhí)行中斷。
解決:開(kāi)方之前進(jìn)行判斷,被開(kāi)方數(shù)為負(fù)時(shí)修正為0。
進(jìn)步:
(1) 出圖效率提升。對(duì)傳統(tǒng)出圖方法進(jìn)行改進(jìn)優(yōu)化之后,測(cè)量值由7個(gè)縮減至4個(gè),測(cè)量步驟減少一半,繪圖過(guò)程實(shí)現(xiàn)自動(dòng)化,出圖效率顯著提高。
(2) 腳印擬合度提升。采用計(jì)算值描點(diǎn)繪制樣條曲線,代替4段橢圓弧近似模擬的繪圖方法,實(shí)現(xiàn)了腳印整體輪廓的完全擬合,方便施工現(xiàn)場(chǎng)的精度控制。
不足:
(1)仍未免除模型測(cè)量步驟。模型手工測(cè)量過(guò)程的存在是提高出圖效率和準(zhǔn)確率的最大制約因素。應(yīng)用優(yōu)化方法出圖時(shí)發(fā)現(xiàn),測(cè)量錯(cuò)誤和誤差雖有減少但仍然存在,其中測(cè)量值符號(hào)判斷錯(cuò)誤成為主因。
(2)未實(shí)現(xiàn)批量化出圖。每次出圖僅完成一個(gè)腳印圖的自動(dòng)繪制,未實(shí)現(xiàn)多個(gè)腳印圖的批量繪制,這是出圖效率的又一制約因素。
針對(duì)第一次優(yōu)化后的不足,研究TEKLA模型導(dǎo)出文件,編寫(xiě)相應(yīng)程序?qū)ζ溥M(jìn)行數(shù)據(jù)提取、計(jì)算分析和符號(hào)判斷,以取代手工測(cè)量過(guò)程;每個(gè)導(dǎo)出文件應(yīng)包含多個(gè)桿件信息,以實(shí)現(xiàn)數(shù)據(jù)的批量處理和圖形的批量繪制。
輸出結(jié)果:本次優(yōu)化是在初次優(yōu)化的基礎(chǔ)上向前延伸,所以除了(x0,y0) 只能從CAD圖紙中獲取外,其余輸入條件應(yīng)作為本次優(yōu)化的輸出結(jié)果,包括R、r、a、E和(x10,y10)。
輸入條件:要提取模型數(shù)據(jù)作為輸入條件,就要選擇合適的模型導(dǎo)出文件。TEKLA軟件可導(dǎo)出的文件格式繁多,包括NC、DGN、CAD、SDNF、STEP等。對(duì)比發(fā)現(xiàn),其中NC文件是標(biāo)準(zhǔn)XML格式,文件結(jié)構(gòu)規(guī)則,便于數(shù)據(jù)提取,有效信息全面,包含弦桿和撐桿編號(hào)、直徑及起止點(diǎn)三維坐標(biāo)等數(shù)據(jù),所以適合選用。
源自NC文件的輸入條件定義如下:弦桿軸線起點(diǎn)坐標(biāo)Pms,終點(diǎn)坐標(biāo)Pme,直徑D;撐桿軸線起點(diǎn)坐標(biāo)Pbs,終點(diǎn)坐標(biāo)Pbe,直徑d。
源自模型查詢的輸入條件定義如下:基準(zhǔn)點(diǎn)坐標(biāo)Pds,從基準(zhǔn)點(diǎn)出發(fā)在展開(kāi)方向上選取一點(diǎn),坐標(biāo)Pde。
后面均以坐標(biāo)符號(hào)代指各點(diǎn)本身。
5.3.1 符號(hào)定義
在輸入輸出條件符號(hào)定義的基礎(chǔ)上,補(bǔ)充定義以下符號(hào):
5.3.2 輸入?yún)?shù)修正
5.3.2.1 弦桿軸線起點(diǎn)Pms和終點(diǎn)Pme坐標(biāo)
5.3.2.2 撐桿軸線起點(diǎn)Pbs和終點(diǎn)Pbe坐標(biāo)
5.3.2.3 展開(kāi)方向點(diǎn)Pde坐標(biāo)
5.3.3 輸出結(jié)果計(jì)算
5.3.3.1 弦桿半徑R和撐桿半徑r
5.3.3.2 弦桿與撐桿軸線距離E
5.3.3.3 兩桿軸線交角a
5.3.3.4 左定位點(diǎn)相對(duì)于基準(zhǔn)點(diǎn)坐標(biāo)(x10,y10)
首先對(duì)坐標(biāo)系進(jìn)行平移和旋轉(zhuǎn)以簡(jiǎn)化運(yùn)算,然后聯(lián)立方程求解弦桿柱面與撐桿軸線之間的交點(diǎn)參數(shù),最后計(jì)算其在展開(kāi)圖中的相對(duì)坐標(biāo)。
(1)坐標(biāo)系變換。
將原模型坐標(biāo)系記作O,此時(shí)各點(diǎn)名稱和位置見(jiàn)圖4;平移后的坐標(biāo)系以Pms為原點(diǎn),記作O′,此時(shí)各點(diǎn)名稱和位置見(jiàn)圖5。
圖4 坐標(biāo)系O下的各點(diǎn)
圖5 坐標(biāo)系O′下的各點(diǎn)
圖6 坐標(biāo)系O″下的各點(diǎn)
5.4.1 語(yǔ)言選擇
第二次改進(jìn)本可以對(duì)之前編制的AutoLISP程序進(jìn)行修改,但此程序已在項(xiàng)目中實(shí)際應(yīng)用并形成路徑依賴,修改代價(jià)較大。再考慮到需要對(duì)XML格式文件進(jìn)行操作,所以選擇批處理作為編程語(yǔ)言。批處理的文件處理功能強(qiáng)大,語(yǔ)句格式簡(jiǎn)捷,不需要編譯,所以開(kāi)發(fā)周期短,修改調(diào)試方便,但它無(wú)法進(jìn)行符點(diǎn)運(yùn)算,所以計(jì)算部分需要其他語(yǔ)言完成。MATLAB雖是向量和矩陣運(yùn)算語(yǔ)言的首選,但它需要安裝運(yùn)行環(huán)境進(jìn)行支持,所以最終選擇WINDOWS環(huán)境中可以直接調(diào)用的VBS程序完成計(jì)算部分的工作。
5.4.2 程序結(jié)構(gòu)
編制批處理文件“生成參數(shù).bat”作為主程序,首先讀取NC文件內(nèi)容,然后通過(guò)調(diào)用JREPL正則工具對(duì)文件進(jìn)行規(guī)范化處理,再然后編寫(xiě)XPath語(yǔ)句調(diào)用XML工具進(jìn)行信息檢索并提取關(guān)鍵數(shù)據(jù),再然后調(diào)用VBS程序“參數(shù)計(jì)算.vbs”進(jìn)行相關(guān)計(jì)算,最后將計(jì)算結(jié)果生成到新的文件中。
其中,VBS程序的計(jì)算過(guò)程與5.3節(jié)中的方法和順序一致。但由于VBS沒(méi)有向量和矩陣運(yùn)算功能,所以專門(mén)編制了嵌套數(shù)組與二維數(shù)組轉(zhuǎn)換,向量求模、點(diǎn)積、叉積、混合積,行列式求值,矩陣相乘、轉(zhuǎn)置、求逆,空間距離計(jì)算等多個(gè)子函數(shù)供調(diào)用。
進(jìn)行二次優(yōu)化后,腳印圖的最終出圖步驟如下:
(1) 分別選中弦桿和與其相貫的多個(gè)撐桿后,導(dǎo)出各自的NC文件,并將其放入程序指定位置。導(dǎo)出操作具體方法見(jiàn)圖7。
圖7 導(dǎo)出NC文件
(2) 在弦桿上創(chuàng)建基準(zhǔn)點(diǎn)和方向點(diǎn),并獲取其坐標(biāo)值。查看坐標(biāo)值屬性的具體方法見(jiàn)圖8。
圖8 獲取基準(zhǔn)點(diǎn)和方向點(diǎn)坐標(biāo)值
(3) 在CAD中使用ID命令獲取基準(zhǔn)點(diǎn)的平面坐標(biāo)。
(4) 雙擊運(yùn)行“生成參數(shù).bat”程序,自動(dòng)生成文件“output.txt”。文件內(nèi)容見(jiàn)圖9。
圖9 output.txt文件內(nèi)容
(5) 將“output.txt”中內(nèi)容全部復(fù)制并粘貼到CAD的命令行中,即可生成一個(gè)弦桿的全部腳印輪廓。程序執(zhí)行后生成的腳印圖見(jiàn)圖10。
圖10 批量生成的腳印圖
通過(guò)對(duì)出圖方法的兩次優(yōu)化,簡(jiǎn)化了出圖步驟,降低了操作難度,實(shí)現(xiàn)了模型數(shù)據(jù)提取、計(jì)算和腳印繪制的自動(dòng)化和批量化。以陸豐12-3WHP項(xiàng)目為例,需要繪制的腳印圖多達(dá)1 000多個(gè),相比于傳統(tǒng)方法,優(yōu)化后的出圖效率提升33倍左右,具體對(duì)比分析見(jiàn)表1。如果算上節(jié)省的檢查時(shí)間和降低的錯(cuò)誤率,其對(duì)項(xiàng)目加工設(shè)計(jì)工作的提升作用更大。
表1 陸豐12-3WHP項(xiàng)目腳印圖出圖效率對(duì)比分析
隨著各種新的建模和出圖軟件的不斷出現(xiàn)和更新,出圖方法也在不斷發(fā)生變化。但軟件功能的通用性與現(xiàn)場(chǎng)施工圖紙個(gè)性化需求之間的矛盾一直存在,不可能用軟件包辦一切。只有熟悉軟件功能,明確出圖需求,掌握相應(yīng)開(kāi)發(fā)原理和手段,才能充分發(fā)揮軟件優(yōu)勢(shì),走完“最后一公里”,針對(duì)當(dāng)前的軟件資源配置和項(xiàng)目特點(diǎn)形成一整套優(yōu)質(zhì)高效的加工設(shè)計(jì)流程。