宋 春,郭雪琦,喬向國,李文勝,劉 通,高海峰
中國石油集團海洋工程有限公司,山東青島 266555
在導管架加工設計工作中,腳印圖是指撐桿馬鞍口外邊緣在弦桿表面所成輪廓的展開圖,用于桿件安裝施工中的精確定位,是結構管單件圖繪制的難點部分。結構管單件圖中腳印圖具體示例見圖1。在導管架安裝施工過程中,結構安裝圖和結構管單件圖配套使用[1]。前者僅含桿件中心線位置信息,難以直接指導施工,所以需要將后者的腳印輪廓放樣到弦桿表面,以實現撐桿在弦桿上的精確定位。

圖1 結構管單件圖中的腳印圖
TEKLA軟件雖有展開圖出圖功能[2-3],但由于撐桿不對弦桿進行實體切割,展開圖不含腳印輪廓,所以無法利用軟件直接出圖。
按照傳統的腳印圖繪制方法,每次作圖前都要在TEKLA模型中進行多次視圖方向切換和空間尺寸測量操作,以完成腳印圖中上、下、左、右4個定位點的坐標測算工作。但導管架中的桿件多為空間方向,視圖切換操作更為繁瑣復雜,測量關鍵點的捕捉更加困難易錯。
以陸豐12-3WHP項目為例,導管架整體尺寸達到85 m×85 m×253 m(寬×長×高),節點形式復雜多樣。如果不算井口基盤結構,項目總桿件數量超過500根,需要繪制的腳印輪廓多達1 000多個。傳統繪圖方法的效率和質量已難以滿足項目工期和安裝精度要求。陸豐12-3WHP導管架的TEKLA模型見圖2。

圖2 陸豐12-3 WHP導管架模型
首先在模型中進行多次視圖創建和尺寸測量工作,然后根據測量值計算繪圖尺寸,最后在CAD中進行圖形繪制。具體步驟如下。
在TEKLA模型中進行如下操作:
(1)選擇與弦桿和撐桿同時平行的視圖,將工作平面設置為平行于視圖平面。
(2)選取弦桿軸線上兩端點,使用“兩點創建視圖”功能創建新視圖(記作視圖a),將工作平面設置為平行于視圖平面。
(3)在視圖a中,使用“增加輔助線”功能創建參考線。
(4)僅顯示當前測量對象,隱藏其他實體。
(5)測量4個定位點與參考線之間的水平距離。
(6)在原視圖中沿直徑方向選取弦桿上兩點,使用“兩點創建視圖”功能創建垂直于弦桿軸線的新視圖(記作視圖b),將工作平面設置為平行于視圖平面。
(7)在視圖b中,測量弦桿圓心和弦桿焊縫的連線與撐桿軸線之間的夾度。
(8)在視圖b中,以弦桿軸心為圓心,分別測量撐桿和弦桿外壁兩個交點與弦桿焊縫之間的夾角。
根據測量值,結合參考線和0°線在CAD中確定的基準點位置,分別計算左、右、上和下4個定位點在CAD中的坐標值。
首先繪制4個定位點,然后以相鄰兩點為長、短半軸端點,分別繪制4個橢圓弧,作為腳印圖的近似圖形。
(1)測量過程復雜。至少需在模型中進行2次視圖創建和7次尺寸測量,傾斜方向桿件的測量過程更加繁瑣。
(2)測量精度不足。部分切點在測量中難以精確捕捉,導致上下定位點的水平坐標精度不足,只能用于輪廓繪制,而不能用作精確定位點。
(3)整體擬合度低。除定位點之外的輪廓都用橢圓弧代替,導致某些情況下腳印圖走樣嚴重。現場只能根據左、右定位點進行組對施工,不利于精度控制和錯誤檢查。擬合腳印示例相對于實際腳印的輪廓偏差見圖3中的弦桿展開圖。

圖3 兩桿相交的三視圖、斜視圖和弦桿展開圖
(4)錯誤率高。視圖創建方向不準確,誤操作導致視圖方向輕微旋轉,空間點捕捉錯誤,尺寸方向測量錯誤,這些都有可能導致腳印變形、反向或偏移,嚴重影響現場施工質量。
首先分析輸入輸出條件,確定繪圖所需最簡參數,減少測量次數,簡化測量步驟;然后通過分析計算,確定輸入參數與繪圖數據之間的函數關系;最后利用AutoLISP語言編制繪圖程序,實現圖形繪制的自動化。
弦桿與撐桿相交的一般情況見圖3,其中包括各關鍵點和關鍵參數在三視圖、斜視圖和弦桿展開圖共5個視角下的對應位置。結合圖3進行具體的優化分析計算。
輸入條件:
(1)腳印圖的形狀可由以下參數唯一確定:弦桿半徑R、撐桿半徑r、兩桿交角a和兩桿中心線距離E。
(2)腳印圖的定位可由以下參數唯一確定:基準點(參考線與0°線的交點) 在CAD圖紙中的坐標值(x0,y0),腳印圖點L(左定位點) 相對于基準點的坐標值(x10,y10)。
上述8個參數中,a、E、x10、y10這4個參數需在模型中測量。
輸出結果:腳印圖上任意點P在CAD圖紙中的坐標位置,記作(xp,yp)。
計算腳印圖軌跡的本質是求解兩桿柱面交點在弦桿柱面展開圖中的坐標,其求解方法包括純幾何計算、柱面標準方程聯立計算和柱面向量參數方程聯立計算。經比較,最后一種方法計算過程相對簡單。
圖3中,點L和P分別為腳印上的左定位點和任意點,θr是點P在撐桿橫截面上對應的方位角,各參數規定為正方向。以O為坐標原點,Z軸沿弦桿軸線向量方向,X軸沿撐桿軸線向量在弦桿截面上投影的反方向,建立空間坐標系。
結合圖3,以輸入參數R、r、a、E為已知量,θr為自變量,求解點P在弦桿展開圖中的坐標 (xp,yp)。


由于需要在CAD中創建圖形,所以選擇CAD的內置語言AutoLISP進行編程。
根據繪圖功能需求,分析幾何實體樣條曲線的數據結構[5],編制五個子函數,分別實現參數輸入、數值計算、定位點繪制、腳印圖繪制、定位點和腳印圖的分割移動功能,然后使用主程序依次調用。
程序編制過程中出現的主要問題、原因分析及解決辦法如下:
4.4.1 定位尺寸不準確
原因:使用繪圖命令對圖形進行移動時,會自動調整到捕捉點位置。
解決:程序中修改控制環境變量osmode的取值,繪圖前自動取消對象捕捉,繪圖后自動復原。
4.4.2 剪切命令有時失效
原因:操作對象處于視圖窗口之外時,剪切命令不被執行。
解決:對圖元的處理有兩種方式,第一種是使用command函數調用各種繪圖命令,第二種是使用entmake和entmod函數直接對圖元數據進行創建和修改。前者簡便易用,后者強大高效。所以解決辦法是改用第二種圖元處理方式。
4.4.3 腳印圖形有時不顯示
原因:計算機符點運算誤差導致負數開方運算,進而引起程序執行中斷。
解決:開方之前進行判斷,被開方數為負時修正為0。
進步:
(1) 出圖效率提升。對傳統出圖方法進行改進優化之后,測量值由7個縮減至4個,測量步驟減少一半,繪圖過程實現自動化,出圖效率顯著提高。
(2) 腳印擬合度提升。采用計算值描點繪制樣條曲線,代替4段橢圓弧近似模擬的繪圖方法,實現了腳印整體輪廓的完全擬合,方便施工現場的精度控制。
不足:
(1)仍未免除模型測量步驟。模型手工測量過程的存在是提高出圖效率和準確率的最大制約因素。應用優化方法出圖時發現,測量錯誤和誤差雖有減少但仍然存在,其中測量值符號判斷錯誤成為主因。
(2)未實現批量化出圖。每次出圖僅完成一個腳印圖的自動繪制,未實現多個腳印圖的批量繪制,這是出圖效率的又一制約因素。
針對第一次優化后的不足,研究TEKLA模型導出文件,編寫相應程序對其進行數據提取、計算分析和符號判斷,以取代手工測量過程;每個導出文件應包含多個桿件信息,以實現數據的批量處理和圖形的批量繪制。
輸出結果:本次優化是在初次優化的基礎上向前延伸,所以除了(x0,y0) 只能從CAD圖紙中獲取外,其余輸入條件應作為本次優化的輸出結果,包括R、r、a、E和(x10,y10)。
輸入條件:要提取模型數據作為輸入條件,就要選擇合適的模型導出文件。TEKLA軟件可導出的文件格式繁多,包括NC、DGN、CAD、SDNF、STEP等。對比發現,其中NC文件是標準XML格式,文件結構規則,便于數據提取,有效信息全面,包含弦桿和撐桿編號、直徑及起止點三維坐標等數據,所以適合選用。
源自NC文件的輸入條件定義如下:弦桿軸線起點坐標Pms,終點坐標Pme,直徑D;撐桿軸線起點坐標Pbs,終點坐標Pbe,直徑d。
源自模型查詢的輸入條件定義如下:基準點坐標Pds,從基準點出發在展開方向上選取一點,坐標Pde。
后面均以坐標符號代指各點本身。
5.3.1 符號定義
在輸入輸出條件符號定義的基礎上,補充定義以下符號:

5.3.2 輸入參數修正
5.3.2.1 弦桿軸線起點Pms和終點Pme坐標

5.3.2.2 撐桿軸線起點Pbs和終點Pbe坐標

5.3.2.3 展開方向點Pde坐標

5.3.3 輸出結果計算
5.3.3.1 弦桿半徑R和撐桿半徑r

5.3.3.2 弦桿與撐桿軸線距離E

5.3.3.3 兩桿軸線交角a

5.3.3.4 左定位點相對于基準點坐標(x10,y10)
首先對坐標系進行平移和旋轉以簡化運算,然后聯立方程求解弦桿柱面與撐桿軸線之間的交點參數,最后計算其在展開圖中的相對坐標。
(1)坐標系變換。
將原模型坐標系記作O,此時各點名稱和位置見圖4;平移后的坐標系以Pms為原點,記作O′,此時各點名稱和位置見圖5。

圖4 坐標系O下的各點

圖5 坐標系O′下的各點



圖6 坐標系O″下的各點

5.4.1 語言選擇
第二次改進本可以對之前編制的AutoLISP程序進行修改,但此程序已在項目中實際應用并形成路徑依賴,修改代價較大。再考慮到需要對XML格式文件進行操作,所以選擇批處理作為編程語言。批處理的文件處理功能強大,語句格式簡捷,不需要編譯,所以開發周期短,修改調試方便,但它無法進行符點運算,所以計算部分需要其他語言完成。MATLAB雖是向量和矩陣運算語言的首選,但它需要安裝運行環境進行支持,所以最終選擇WINDOWS環境中可以直接調用的VBS程序完成計算部分的工作。
5.4.2 程序結構
編制批處理文件“生成參數.bat”作為主程序,首先讀取NC文件內容,然后通過調用JREPL正則工具對文件進行規范化處理,再然后編寫XPath語句調用XML工具進行信息檢索并提取關鍵數據,再然后調用VBS程序“參數計算.vbs”進行相關計算,最后將計算結果生成到新的文件中。
其中,VBS程序的計算過程與5.3節中的方法和順序一致。但由于VBS沒有向量和矩陣運算功能,所以專門編制了嵌套數組與二維數組轉換,向量求模、點積、叉積、混合積,行列式求值,矩陣相乘、轉置、求逆,空間距離計算等多個子函數供調用。
進行二次優化后,腳印圖的最終出圖步驟如下:
(1) 分別選中弦桿和與其相貫的多個撐桿后,導出各自的NC文件,并將其放入程序指定位置。導出操作具體方法見圖7。

圖7 導出NC文件
(2) 在弦桿上創建基準點和方向點,并獲取其坐標值。查看坐標值屬性的具體方法見圖8。

圖8 獲取基準點和方向點坐標值
(3) 在CAD中使用ID命令獲取基準點的平面坐標。
(4) 雙擊運行“生成參數.bat”程序,自動生成文件“output.txt”。文件內容見圖9。

圖9 output.txt文件內容
(5) 將“output.txt”中內容全部復制并粘貼到CAD的命令行中,即可生成一個弦桿的全部腳印輪廓。程序執行后生成的腳印圖見圖10。

圖10 批量生成的腳印圖
通過對出圖方法的兩次優化,簡化了出圖步驟,降低了操作難度,實現了模型數據提取、計算和腳印繪制的自動化和批量化。以陸豐12-3WHP項目為例,需要繪制的腳印圖多達1 000多個,相比于傳統方法,優化后的出圖效率提升33倍左右,具體對比分析見表1。如果算上節省的檢查時間和降低的錯誤率,其對項目加工設計工作的提升作用更大。

表1 陸豐12-3WHP項目腳印圖出圖效率對比分析
隨著各種新的建模和出圖軟件的不斷出現和更新,出圖方法也在不斷發生變化。但軟件功能的通用性與現場施工圖紙個性化需求之間的矛盾一直存在,不可能用軟件包辦一切。只有熟悉軟件功能,明確出圖需求,掌握相應開發原理和手段,才能充分發揮軟件優勢,走完“最后一公里”,針對當前的軟件資源配置和項目特點形成一整套優質高效的加工設計流程。