The Creation of Bending Activities Tables in
AVEVA Marine PipeSketches
AM管子零件圖中彎管參數(shù)表的生成
一、引言
AVEVA Marine生成的管子零件圖中包含以下幾種表格:
l MTO Tables; ——材料表;
n MTO Tables主要為管子下料長度及一些閥附件數(shù)據(jù);
l Bending Tables;
l Bending Activities Tables; ——彎管表;
n 彎管信息表,主要為彎管機(jī)加工所需數(shù)據(jù);
l Automatic Welding Tables; ——自動焊接表;
l Assembly Activities Tables; ——裝配表;
l End Points Tables; ——端點(diǎn)表;
n 管子端部的坐標(biāo)值,用于管子安裝時位置的確認(rèn);
有了以上數(shù)據(jù),可以對管子進(jìn)行數(shù)控加工,節(jié)約材料,簡單正確安裝,提高生產(chǎn)效率。
本文主要講述彎管機(jī)所需的彎管參數(shù)的計算方法,以及在AVEVA Marine中利用PML編程時如何獲取這些彎管信息,理解這些內(nèi)容可對管子零件圖進(jìn)行靈活地控制,也可以自己編程實(shí)現(xiàn)對彎管參數(shù)的自動計算,生成數(shù)控彎管機(jī)加工管子零件所需要數(shù)據(jù)。
因AVEVA Marine中彎管參數(shù)是在管子工藝檢查后自動生成,管子工藝檢查程序未以PML的形式公開,而是以PipeCheckAddin.dll動態(tài)庫的形式發(fā)布的,看不到源代碼,所以,本文是本人學(xué)習(xí)總結(jié),僅為個人觀點(diǎn),歡迎討論。若有錯誤或建議請聯(lián)系:eryar@163.com。
二、彎管參數(shù)計算
由彎管機(jī)進(jìn)行彎曲的管子,必須有相應(yīng)的彎管程序,即彎管參數(shù)的計算。彎管參數(shù)計算分成兩部分:一部分是關(guān)于管段實(shí)長、彎角和轉(zhuǎn)角的計算;一部分是關(guān)于彎管的起彎點(diǎn)和管長總長度及無余量下料長度的計算。其中,下料長度的計算要根據(jù)管子加工工藝決定,如果采用先焊的加工工藝,則要考慮到兩端連接件的形式、彎曲部分的伸長量、彎子彎曲后回彈所引起的彎曲半徑的變化等。
現(xiàn)對彎管參數(shù)中的彎角、管段長度、旋轉(zhuǎn)角的概念及其計算方法進(jìn)行介紹。
2.1 彎角
彎角是指一根直管子彎成一定形狀時,管子一端所彎過的角度,即彎管機(jī)彎模旋轉(zhuǎn)的角度,一般用α表示。
由兩管段所組成的角度稱為成形角,用β表示。它與彎角互補(bǔ)。
管子的彎角數(shù)Nα與管段數(shù)N的關(guān)系為:Nα=N-1。
2.2 管段長度
管子中心線的長度稱為管段實(shí)長,通常也是管子零件圖上尺寸線標(biāo)出的長度。管子彎曲部分實(shí)際上是一段圓弧,并不是一條直線。圓弧的長度與管子彎曲半徑及彎角有關(guān),設(shè)彎管半徑為R,彎角為α時彎管的弧長計算公式為:
因?yàn)楣芏螌?shí)長中包含彎管處圓弧的切線長,在進(jìn)行彎管參數(shù)計算時它的直管段長必須減去與彎角對應(yīng)的切線長,計算公式為:
采用先彎后焊的管子加工工藝時,下料長度就是彎制成形的管子的總長。理論上它時直管段長度和彎管圓弧長度的總和,即管段實(shí)長減去彎角對應(yīng)的切線長加上彎管部分的圓弧長度。
若采用“先彎后焊”工藝,管子彎曲成形后,還要進(jìn)行二次畫線和切割,可以不考慮以下因素。若采用“先焊后彎”工藝,在求管子長度時,還需要考慮以下幾個因素:在彎制管子時,彎管部分的圓弧因材料的塑性變形等原因略有伸長,伸長的量稱為伸長量;其次,不同的管端連接件形式也會要求管子比計算長要短。如對于搭焊法蘭必須減去端距,若是對焊法蘭需要減去整個法蘭的厚度。
2.3 轉(zhuǎn)角
一根彎管中,任何兩個相鄰彎管所在的平面間的夾角稱為轉(zhuǎn)角,也可稱為彎管間直管段的轉(zhuǎn)角。把管子相鄰的三段作為一個單元,并依次稱為三段管子的首段、中段、尾段。規(guī)定尾段向首段的旋轉(zhuǎn)方向?yàn)檗D(zhuǎn)角的旋轉(zhuǎn)方向。從首段向尾段看,順時針為正轉(zhuǎn),逆時針為負(fù)轉(zhuǎn)。因此,轉(zhuǎn)角也可表述為:以中段管子為旋轉(zhuǎn)軸,尾段管子和中段管子組成的平面轉(zhuǎn)到與首段管子與中段管子所組成的平面重合時,所轉(zhuǎn)過的角度即為轉(zhuǎn)角。
求取轉(zhuǎn)角比較復(fù)雜,若使用矢量代數(shù)法來計算,則可對轉(zhuǎn)角進(jìn)行統(tǒng)一計算,便于計算機(jī)程序?qū)崿F(xiàn)。
2.4 應(yīng)用矢量代數(shù)計算管子曲形參數(shù)
用幾何、三角函數(shù)法來計算管子曲形參數(shù)的過程較為復(fù)雜,特別遇到曲形復(fù)雜的管子零件時,要經(jīng)過投影變換、解三角形、求中間參數(shù)等過程,往往耗費(fèi)較多時間。即便將各種彎曲形狀歸結(jié)為幾種基本形式,并導(dǎo)出相應(yīng)的計算公式,實(shí)際應(yīng)用也甚感不便。矢量代數(shù)法是把一根曲形管子上的每一段看作是一個矢量,并根據(jù)各管段的坐標(biāo)值,運(yùn)用矢量代數(shù)數(shù)量積、矢量積、模推導(dǎo)出一組完整、通用的曲形求解公式。應(yīng)用這些公式計算不需要進(jìn)行復(fù)雜的投影變換,也不需要解三角形和求解中間變量,可以大減輕計算工作量,更可用于計算機(jī)編程實(shí)現(xiàn)管子曲形參數(shù)的自動計算,應(yīng)用于三維管子設(shè)計系統(tǒng)中的管子零件圖自動生成彎管數(shù)據(jù)。
圖1 空間任意三段管
上圖中彎管為任意空間三段管,坐標(biāo)系中X、Y、Z分別表示艏艉、舷、高度方向。A、B、C、D為彎管曲形中心點(diǎn)位置。根據(jù)上圖推導(dǎo)出彎管曲形參數(shù)的計算方法。推導(dǎo)過程如下:
1. 管段實(shí)長l:
求出管段實(shí)長后,還需要計算出彎角對應(yīng)的切線長和圓弧長,然后再用實(shí)長減去切線長加上圓弧長度即得管子的下料長度。
2. 由數(shù)量積推出彎角α的求解公式:
3. 由矢量積推出轉(zhuǎn)角的求解公式:
4. 根據(jù)行列式計算管子旋轉(zhuǎn)方向:
若行列式大于零,則為逆時針方向旋轉(zhuǎn);若行列式小于零,則為順時針方向旋轉(zhuǎn)。若為零,則為平面彎管。
至此,我們得到了空間任意彎曲管子的彎管參數(shù)計算公式,這些是計算三段管子為一個單元的曲形參數(shù)的基本公式。因?yàn)槊咳喂芙M成兩個平面,具有兩個彎角和一個轉(zhuǎn)角,所以三段以上的彎管同樣可以利用上述公式,先計算第一、第二、第三段管,再計算第二、第三、第四段管,依次類推。
具體編程實(shí)現(xiàn)時,可用鏈表或棧來存儲一個管子零件的所有節(jié)點(diǎn)坐標(biāo)值,再把節(jié)點(diǎn)值轉(zhuǎn)化為向量值,然后以每三段為一個單元來計算相關(guān)參數(shù)。
三、C++編程實(shí)現(xiàn)
1: //------------------------------------------------------------------------------
2: // Copyright (c) 2011 eryar All Rights Reserved.
3: //
4: // File : Vector.h
5: // Author : eryar@163.com
6: // Date : 2011-12-2 21:34
7: // Version : 1.0v
8: //
9: // Description :
10: //
11: //==============================================================================
12:
13: #ifndef _VECTOR_H_
14: #define _VECTOR_H_
15:
16: #include <cmath>
17: #include <string>
18: #include <iostream>
19: using namespace std;
20:
21: class CVector
22: {
23: public:
24: CVector();
25: CVector(const CVector& v);
26: CVector(double x, double y, double z);
27: virtual ~CVector();
28:
29: // Overload operators
30: CVector& operator = (const CVector& v);
31: bool operator == (const CVector& v) const;
32: bool operator != (const CVector& v) const;
33: CVector operator + (const CVector& v) const;
34: CVector operator - (const CVector& v) const;
35: CVector operator * (double k) const;
36: // 向量點(diǎn)乘
37: double operator * (const CVector& v) const;
38:
39: // 向量叉乘
40: CVector CrossProduct(const CVector& v);
41:
42: // 求向量的模
43: double Magnitude(void) const;
44:
45: // 顯示向量
46: void Show(void) const;
47:
48: private:
49: double m_x;
50: double m_y;
51: double m_z;
52: };
53:
54: #endif // _VECTOR_H_
計算實(shí)例:
1: //------------------------------------------------------------------------------
2: // Copyright (c) 2011 eryar All Rights Reserved.
3: //
4: // File : Main.cpp
5: // Author : eryar@163.com
6: // Date : 2011-12-4 10:05
7: // Version : 1.0v
8: //
9: // Description :
10: //
11: //==============================================================================
12:
13: #include "Vector.h"
14:
15: int main(int argc, char* argv[])
16: {
17: // One Pipe piece
18: // CVector aVector(287, 0, 0);
19: // CVector bVector(313, 204, 165);
20: // CVector cVector(0, 746, 0);
21:
22: // Another pipe piece
23: // CVector aVector(150, 0, 0);
24: // CVector bVector(50, 150, 150);
25: // CVector cVector(50, 250, 0);
26:
27: // Test Vectors
28: CVector aVector(1, 0, 0);
29: CVector bVector(1, 2, 0);
30: CVector cVector(1, 1.732, 1);
31:
32: CVector alpha;
33: CVector beta;
34: double phi = 0;
35:
36: aVector.Show();
37: bVector.Show();
38: cVector.Show();
39:
40: alpha = aVector.CrossProduct(bVector);
41: beta = bVector.CrossProduct(cVector);
42:
43: phi = (alpha * beta) / (alpha.Magnitude() * beta.Magnitude());
44: cout<<"Rotate : "<<acos(phi) * 180 / 3.1416<<endl;
45:
46: return 0;
47: }
四、AVEVA Marine中獲取彎管參數(shù)
AVEVA Marine中彎管參數(shù)由類PipeSpoolManager來管理,其方法如下:
使用方法:(對通過工藝檢查后的管子PIPE使用)
通過PipeSpoolManager對象可以得到管子零件圖所需要的各種數(shù)據(jù)。如彎管參數(shù):管段長度Feed、彎角Bend、轉(zhuǎn)角Rotate則由其成員函數(shù)getPipePieces()來得到,結(jié)果保存為一個數(shù)組。
AVEVA Marine中取得這些彎管數(shù)據(jù)很簡單,其計算方法我估計是按上述矢量代數(shù)法來計算得出。若你有更好的計算方法,請聯(lián)系我:eryar@163.com。
彎管機(jī)工藝檢查由對象BendingMachineResult來管理,檢查項(xiàng)目由其成員函數(shù)來實(shí)現(xiàn):
五、結(jié)論
用矢量代數(shù)法計算彎管參數(shù)簡單通用,可用于計算程序自動計算。
AVEVA Marine可用對象PipeSpoolManager來取得彎管參數(shù)及其它數(shù)據(jù),深入理解此對象可自定義管子零件圖上的一些信息,也可根據(jù)船廠實(shí)際需要編寫管子零件圖的出圖程序。
六、參考資料
1. 章煒梁、許正權(quán). 船舶管系工. 國防工業(yè)出版社. 2008
2. 陸金銘. 船舶動力裝置安裝工藝. 國防工業(yè)出版社. 2006
3. 付錦云. 船舶管路系統(tǒng). 哈爾濱工程大學(xué)出版社. 2006
4. 黃廣茂. 造船生產(chǎn)設(shè)計. 哈爾濱工程大學(xué)出版社. 2008
5. Pipework Design User Guide
PDF 版本: