向小勇 吳從容 張松平 葉劍文
(廣州特種承壓設(shè)備檢測研究院,廣州510663)
壓力管道單線圖對壓力管道整個行業(yè)包括設(shè)計單位、安裝單位、使用單位、監(jiān)察機構(gòu)和檢驗機構(gòu)都很重要,能夠準(zhǔn)確快速繪制壓力管道單線圖具有重要的意義[1]。目前一般是通過現(xiàn)場手工記錄數(shù)據(jù)繪制草圖,然后回辦公室后用CAD等軟件繪制單線圖。這種做法動強度大繪圖效率低,并且現(xiàn)場繪制與軟件繪制脫節(jié),容易造成錯漏[2]。
AutoCAD作為一款成功的計算機輔助軟件在機械、建筑、電子等領(lǐng)域的工程繪圖得到了廣泛的應(yīng)用,但不是專門針對壓力管道單線圖的,因此在實際使用過程中有許多不便之處。目前AutoCAD二次開發(fā)的方法較多,如Visual Lisp、VBA、ObjectARX和基于.NET托管的開發(fā)方法。AutoCAD的.NET API提供了一系列托管的外包類,使開發(fā)人員可在.NET框架下,使用任何支持.NET的語言,如VB.NET,C#和Managed C++等對AutoCAD進行二次開發(fā)[3-4]。本研究采用基于.Net API的AutoCAD二次開發(fā)方法,對壓力管道單線圖測繪系統(tǒng)進行研究,實現(xiàn)在測量現(xiàn)場就可以生成單線圖,提高壓力管道單線圖的繪制效率。
在現(xiàn)場測繪壓力管道單線圖,需要知道管路的終點相對于起點的長度和方向、管路元素的位置等數(shù)據(jù)。即數(shù)據(jù)的獲取以及單線圖的繪制2大部分??傮w技術(shù)方案如下:設(shè)計一個測繪裝置,包括數(shù)據(jù)測量和單線圖繪制2部分,如圖1所示。
圖1 測繪系統(tǒng)外部結(jié)構(gòu)Fig 1 External structure of surveying andmapping system
數(shù)據(jù)由測繪儀獲取,單線圖繪制部分在平板電腦上完成。測繪儀和平板電腦安裝在具有水平調(diào)整基座的三角架上,方便現(xiàn)場安裝測繪。測繪儀和平板上的繪圖系統(tǒng)通過串口通訊完成數(shù)據(jù)的傳輸。測量部分向繪圖部分提供方位角、俯仰角和距離等數(shù)據(jù),繪圖部分根據(jù)這些數(shù)據(jù)通過CAD軟件的二次開發(fā)接口在CAD中繪圖。
有一些比較規(guī)則的管路,可以通過目測得到長度和方向,則無需經(jīng)過測量來獲取數(shù)據(jù),直接在繪圖軟件上輸入數(shù)據(jù)即可完成繪圖。
圖2是壓力管路單線繪圖系統(tǒng)工作原理,系統(tǒng)由測量儀器和單線圖繪圖系統(tǒng)2部分組成。
從圖2可以看出,單線繪圖系統(tǒng)主要由繪圖數(shù)據(jù)獲取模塊和CAD二次開發(fā)模塊組成。對于單線圖的CAD二次開發(fā)部分,需要外部提供長度和方向2個數(shù)據(jù)。如果長度和方向可以目測得到,則通過界面輸入,否則通過測量儀器分別測量2個位置的坐標(biāo)來計算2個位置之間的長度和方向。在獲取到目標(biāo)位置距離起點位置的長度和方向之后,通過CAD二次開發(fā)接口,在CAD中繪制管線。在繪制完管線之后,根據(jù)管路元素在管線的位置添加管路元素,并且將管線和管路元素劃分為管路集合進行管理,最終生成壓力管道單線圖。
對于不能目測得到的長度和方向數(shù)據(jù),需要通過測量儀器來獲取見圖3。
測量儀器主要包括了1個水平軸編碼器、1個俯仰軸編碼器,1個激光測距儀,1個AHRS(Attitude and Heading Reference System,姿態(tài)航向參考系統(tǒng))。在測量過程中使用水平軸編碼器的角度和俯仰軸編碼器的角度分別作為激光測距儀的水平旋轉(zhuǎn)角度和俯仰角度,激光測距儀測量目標(biāo)的距離。數(shù)據(jù)通過串口通訊模塊和平板上的繪圖系統(tǒng)。
測量和繪圖的時候?qū)尉€圖中的方向和笛卡爾坐標(biāo)軸的方向?qū)?yīng)起來,在本系統(tǒng)設(shè)計中,以正東方向作為笛卡爾坐標(biāo)系的x軸正方向,以正北方向作為坐標(biāo)系的z軸正方向,以正上方作為坐標(biāo)系的y軸正方向。通過測量儀器獲取回來的水平旋轉(zhuǎn)角度、俯仰角度和目標(biāo)距離可以計算該目標(biāo)位置在該坐標(biāo)系下的坐標(biāo)值,根據(jù)兩點坐標(biāo)可以計算它們之間的距離以及矢量方向[5-6]。
根據(jù)GB/T 6567.1~5—2008以及實際操作中的壓力管道單線圖,先把單線圖的組成如圖4所示劃分,以此可以根據(jù)劃分進行繪圖系統(tǒng)的設(shè)計[7]。1個單線圖文件對應(yīng)1個管路系統(tǒng)。1個管路系統(tǒng)由1個或者多個管路集合組成;1個管路集合由管路一覽表、管路注釋以及1條或者多條管路組成。1條管路管線和管路元素組成;管線有1條或者多條直管線組成;管路元素進一步劃分為管件、閥門、控制元件、傳感元件、設(shè)備等幾類(分類方法以GB/T 6567.1~5—2008為依據(jù))。
在AutoCAD中,以直線表示直管線,以塊文件表示管路元素、管路注釋和管路一覽表。因此,基于AutoCAD的壓力管道單線圖的研發(fā)通過Visual Studio 2010開發(fā)平臺開發(fā)界面,通過計算單線圖數(shù)據(jù),然后調(diào)用AutoCAD二次開發(fā)接口進行畫線和添加塊的操作。在C#語言環(huán)境下,可以直接引用acdbmgd.dll和acmgd.dll這2個動態(tài)庫來進行AutoCAD的二次開發(fā)。
圖2 系統(tǒng)工作原理Fig 2 System work principle
圖3 測量儀器硬件Fig 3 Hardware of measuring instrument
圖4 壓力管道單線圖的組成Fig 4 The composition of pressure piping single line diagram
繪制直線的方法為給定圖紙上起點和終點的坐標(biāo),創(chuàng)建“Line”類型的對象,然后將該直線添加到模型空間,關(guān)鍵代碼如下:
Line l=new Line(stPoint,edPoint);//創(chuàng)建“Line”類型的對象,即直線
Database Db=HostApplicationServices.Working-Database;//獲取當(dāng)前的數(shù)據(jù)庫
using(Transaction trans=Db.TransactionManager.StartTransaction())
{Db.AddToModelSpace(l);//添加實體到模型空間trans.Commit();//完成實物提交}
對于添加塊的操作,使用了調(diào)用CAD指令的方法,即AcadDocument類的SendCommand方法,管件的代碼如下:
AcadDoc.SendCommand(“-insert ”);//AcadDoc是CAD當(dāng)前激活的文檔,insert是插入塊指令
AcadDoc.SendCommand(fileName+“ ”+x+“,”+y+“,”+z+“ ”+“1 ”+“1 ”+“0 ”);//指定塊的文件名以及插入的位置,完成塊的插入。
單線圖繪圖系統(tǒng)主要包括管線的繪制、管路元素的繪制和管路集合的管理等幾個部分。
繪制管線的關(guān)鍵在于獲取目標(biāo)位置相對于起點的距離和方向,根據(jù)數(shù)據(jù)是使用測量儀器測量還是目測得到的可以分為自動連續(xù)測繪方式和手動連續(xù)繪制方式,繪制管線的界面如圖5所示。
分別說明如下:
1)自動連續(xù)測繪方式。在界面上先勾選“測量”復(fù)選框,啟動測繪儀器獲取數(shù)據(jù),首先選擇管線的起點,使用測量儀器測量目標(biāo)位置數(shù)據(jù)后,由繪圖數(shù)據(jù)獲取模塊計算得到目標(biāo)位置相對起點位置的距離和方向(在界面上自動顯示長度和選擇方位選項),然后點擊“繪制管路”按鈕通過CAD二次開發(fā)接口繪制直線,并以該目標(biāo)位置為起點,重復(fù)上述步驟,直到完成連續(xù)管線的繪制。
2)連續(xù)繪制方式。去除勾選界面的“測量”復(fù)選框。首先選擇管路的起點,然后估算管路目標(biāo)點距離起點的長度以及管路的走向方位,然后在界面上輸入長度和選擇方位,點擊“繪制管路”按鈕通過CAD二次開發(fā)接口繪制直線,并以該目標(biāo)位置為起點,重復(fù)上述步驟,直到完成連續(xù)管線的繪制。
圖5 繪制管線界面Fig 5 Interface of line drawing
以添加塊文件的方式添加管路元素。首先根據(jù)標(biāo)準(zhǔn)將管路元素繪制成CAD的dwg塊文件,保存在指定的文件夾。設(shè)計添加管路元素的操作界面,管路元素按標(biāo)準(zhǔn)GB/T 6567.1~5—2008的說明進行分類,如圖6(a)所示。針對實際使用某種使用管路元素的頻率,將最常用的管路元素設(shè)置為放在“默認(rèn)”列,將上一次使用的管路元素放在“上一次”列,如果需要其他管路元素,則通過“其他”按鈕進行選擇,“上一次”列會根據(jù)當(dāng)前的選擇進行更新?!澳J(rèn)”列通過設(shè)置面板進行設(shè)置,如圖6(b)所示,通過對每一類管路元素設(shè)置“默認(rèn)類型”和“默認(rèn)連接方式”來實現(xiàn)。
圖6 管路元素界面Fig 6 Interface of line element
管路元素的添加方法為:在CAD圖上選擇管路對應(yīng)的線,在添加管路元素界面上選擇需要添加的管路元素按鈕之后,再回到繪圖界面選擇要插入管路元素的位置。系統(tǒng)會根據(jù)管路的方向以及管路元素的名稱從系統(tǒng)中選擇對應(yīng)的管路元素塊插入。
繪制完管路和添加完管路元素之后,需要將管路及管路元素劃分到不同的集合方便管理,如圖7所示。
圖7 管路集合管理界面Fig 7 Management interface of line collection
比如選中管路集合中的起始管路或者結(jié)束管路,按自動編號按鈕,則會將不同管路元素按管路的走向進行編號;按管路標(biāo)注按鈕之后,通過設(shè)置標(biāo)注的數(shù)據(jù),則可用手在CAD圖上指定插入標(biāo)注的位置;選中管路集合之后,自動在界面顯示管路總長度、焊點數(shù)等數(shù)據(jù)。在管路繁多的情況下,可以通過設(shè)置集合分層顯示來切換不同的顯示內(nèi)容,如顯示管路或者顯示標(biāo)注等。
基于AutoCAD二次開發(fā)的壓力管道單線圖測繪系統(tǒng),使用方法簡單,可以在管道安裝及檢驗現(xiàn)場獲得管道上各目標(biāo)點的精確位置并自動繪制單線圖,也可以根據(jù)需要利用系統(tǒng)提供豐富的管路元素塊文件對管路單線圖進行編輯,提高了壓力管道單線圖的繪圖效率,具有一定的使用價值。
[1]楊永信.淺談壓力管道單線圖[J].中國特種設(shè)備安全,2007,24(3):21-23.
[2]陳孝富.淺談壓力管道單線圖及其在檢測中的應(yīng)用[J].機電信息,2010(12):216.
[3]李玉強.基于ObjectARX.NET的AutoAD二次開發(fā)及應(yīng)用[J].山西建筑,2007,7(4):361-362.
[4]方毅.基于C#與AutoCAD的斷面圖繪制程序設(shè)計與應(yīng)用[J].地理空間信息,2012,10(5):143-145.
[5]謝存禧,張鐵.機器人技術(shù)及其應(yīng)用[M].北京:機械工業(yè)出版社,2005.
[6]John JCraig.機器人學(xué)導(dǎo)論[M].3版.北京:機械工業(yè)出版社,2006.
[7]GB/T 6567.1~5—2008技術(shù)制圖[S].