徐 堰 中石化寧波工程有限公司 寧波 315300
隨著煉油、化工、煤化工等裝置規(guī)模日益擴(kuò)大,項(xiàng)目節(jié)奏也日益加快,各大設(shè)計(jì)院和工程公司均采用三維模型設(shè)計(jì)軟件進(jìn)行常規(guī)設(shè)計(jì)和成品輸出。三維模型設(shè)計(jì)以其直觀、高效、便于管理和可批量操作和輸出等優(yōu)點(diǎn),得到了廣泛的認(rèn)可和應(yīng)用;尤其是配管專業(yè),模型的使用極大地提高了設(shè)計(jì)的效率和質(zhì)量?;ば袠I(yè)工廠設(shè)計(jì)軟件套件主要有??怂箍?HEXAGON)公司的Intergraph_S3D系列以及AVEVA公司的PDMS系列。其中??怂箍倒镜腎ntergraph_S3D軟件作為一款工廠設(shè)計(jì)集成平臺(tái),可供配管、電氣、儀表、消防、水道、結(jié)構(gòu)等主要專業(yè)協(xié)同工作,設(shè)計(jì)要素統(tǒng)一實(shí)時(shí)體現(xiàn),輔以統(tǒng)一參考坐標(biāo)、實(shí)時(shí)碰撞檢查等常規(guī)手段,設(shè)計(jì)質(zhì)量和效率均得到有效提升。但是,各專業(yè)的設(shè)計(jì)工作和專業(yè)間配合并非只是空間定位和碰撞檢查那么簡(jiǎn)單,各相關(guān)專業(yè)間存在大量的設(shè)計(jì)要素?cái)?shù)據(jù)需要傳遞和交換,而且有的設(shè)計(jì)要素?cái)?shù)據(jù)的形式結(jié)構(gòu)較為復(fù)雜,傳遞路由也較為曲折往復(fù)。為了挖掘軟件最大的效用,克服設(shè)計(jì)軟件間交流的壁壘,梳理軟件間數(shù)據(jù)流的傳遞樣本、構(gòu)建數(shù)據(jù)流傳遞的通道,是大型工程設(shè)計(jì)軟件應(yīng)用到一定程度必須面對(duì)的問(wèn)題。
長(zhǎng)期以來(lái),S3D與CAESAR II(以下簡(jiǎn)稱C2)是存在數(shù)據(jù)壁壘的,許多設(shè)計(jì)單位在進(jìn)行管道設(shè)計(jì)時(shí),配管專業(yè)在S3D軟件中建庫(kù)建模,添加邏輯支架,抽取ISO圖供應(yīng)力專業(yè)作為設(shè)計(jì)輸入。而由于數(shù)據(jù)壁壘的存在,只能通過(guò)人工處理圖紙,應(yīng)力專業(yè)需要經(jīng)過(guò)人工讀圖,人工參數(shù)輸入,導(dǎo)致效率低下。目前裝置的大型化更是加劇了這個(gè)情況的發(fā)生。裝置內(nèi)框架上的情況尚可,在全廠多輒幾公里的大型管廊上,由于支架設(shè)置的雷同,管道支架不可避免的增減調(diào)整給上述2個(gè)專業(yè)設(shè)計(jì)人員帶來(lái)巨大的核對(duì)工作量。因此,為了減輕雙方設(shè)計(jì)人員的壓力,實(shí)現(xiàn)配管和應(yīng)力雙方軟件層面的有效溝通,引入了S3D邏輯支架唯一標(biāo)識(shí)符(ID code)的概念,并通過(guò)一系列數(shù)據(jù)轉(zhuǎn)換,打通S3D-C2-S3D的路由,提高了三維模型的設(shè)計(jì)深度,也為設(shè)計(jì)人員對(duì)于管道應(yīng)力相關(guān)內(nèi)容的把握提供了模型、圖紙和報(bào)表上靈活、全方位的幫助。
2.1.1 邏輯支架唯一標(biāo)識(shí)符的確定
在項(xiàng)目詳細(xì)設(shè)計(jì)階段,重要管線的配管研究一般是和管道支架的準(zhǔn)確設(shè)置(甚至支架選型)同步進(jìn)行的,為了實(shí)現(xiàn)管道支架在兩個(gè)甚至多個(gè)軟件之間流轉(zhuǎn),給予其一個(gè)唯一標(biāo)識(shí)符是必須的。有的文章[1]提到為了實(shí)現(xiàn)管道支架Pcf導(dǎo)入支架約束類型而不采用支架流水號(hào)的做法,將支架選型的初步工作轉(zhuǎn)移給了配管專業(yè)人員,但是支架約束類型的最終確定是由應(yīng)力專業(yè)人員通過(guò)軟件計(jì)算得出。因此,分析比較多種情況,從S3D和C2的配置需求、整個(gè)流程的貫通性等綜合因素考慮,選擇邏輯支架的名字(Name屬性)作為唯一標(biāo)識(shí)符。其實(shí)現(xiàn)方法有兩種。
第一種方法是:全廠采用統(tǒng)一命名規(guī)則,設(shè)置支架,批量命名。見(jiàn)圖1。
圖1 邏輯支架命名規(guī)則界面
第二種方法采用支架名、管線號(hào)批量導(dǎo)出的方法,在Excel中定制專屬流水號(hào),再批量導(dǎo)入S3D系統(tǒng),該方法較靈活,但作業(yè)人員應(yīng)對(duì)模型數(shù)據(jù)結(jié)構(gòu)和SQL查詢較熟悉。管道支架SQL查詢結(jié)果見(jiàn)圖2。
圖2 管道支架SQL查詢結(jié)果界面
這里必須確定的是:作為唯一標(biāo)識(shí)符,支架流水號(hào)應(yīng)在全廠范圍內(nèi)唯一,且符合一定的規(guī)范(一般為設(shè)計(jì)統(tǒng)一規(guī)定)。為了程序的便利和后期報(bào)表的美觀,建議前期多添加一些支架(如長(zhǎng)跨距管子中間支撐可以多設(shè)置一些),減少后期由于增減支架帶來(lái)的流水號(hào)不通順或流水號(hào)程序越界等問(wèn)題。
2.1.2 S3D-CAESAR II數(shù)據(jù)
在S3D導(dǎo)出Pcf之前,要對(duì)Pcf的內(nèi)容和C2系統(tǒng)設(shè)置文件進(jìn)行一些討論。
C2是可以進(jìn)行靜力學(xué)(Static)分析和動(dòng)力學(xué)(Dynamic)分析的,然而一般設(shè)計(jì)院和工程公司常規(guī)做靜力學(xué)分析,只在某些特殊工況(如安全閥泄放,壓縮機(jī)脈動(dòng)分析等)時(shí)做動(dòng)力學(xué)計(jì)算。靜力學(xué)計(jì)算需要的管道和介質(zhì)參數(shù)不多,詳見(jiàn)表1。
表1 管道應(yīng)力分析S3D-C2參數(shù)傳遞
觀察上表,需要映射的屬性組有管道材料(PCF_MAT_MAP),以及一些屬性單位(PCF_UNITS_MAP)、應(yīng)力放大系數(shù)(PCF_SIF_MAP)、約束類型(PCF_RES_MAP),相關(guān)文章[1]有過(guò)介紹,在此不再贅述。
2.1.3 Pcf文件輸出及內(nèi)容分析
為了確保S3D-C2數(shù)據(jù)傳遞的有效性,需要定制Pcf文件。Pcf文件的組成見(jiàn)圖3。
圖3 Pcf文件內(nèi)容界面
目前研究對(duì)象是集中載荷即支架,圖3中給出了支架的類型、位置、載荷方向、支架ID碼、oid和名字,確保支架Name的唯一有效。
在映射定制完成后,C2可以按JOBNAME進(jìn)行Pcf的導(dǎo)入,并在C2中進(jìn)行應(yīng)力分析和支架選類(Restraint),Restraint類型見(jiàn)圖4。
圖4 約束類型界面
在應(yīng)力專業(yè)完成計(jì)算后,可以按常規(guī)輸出計(jì)算書,也可以按JOBNAME進(jìn)行C2_MDB文件的輸出,常規(guī)計(jì)算書的數(shù)據(jù)格式為Excel文件,可以編寫各類程序如VBA進(jìn)行數(shù)據(jù)處理,按列整理出支架流水號(hào)(NAME)、應(yīng)力節(jié)點(diǎn)號(hào)(NODE)、各類載荷大小、彈簧數(shù)據(jù)等,此處S3D屬性導(dǎo)入也需增添相關(guān)的Interface,定制相關(guān)的xml映射文件,通過(guò)支架流水號(hào)串聯(lián)oid(S3D)以實(shí)現(xiàn)基于logic support oid的支架屬性導(dǎo)入。支架屬性導(dǎo)入映射代碼見(jiàn)圖5。
圖5 支架屬性導(dǎo)入映射代碼(部分)界面
注:Pcf導(dǎo)入C2時(shí),邏輯支架Name不能帶有”,”等特殊字符,否則C2無(wú)法獲取RES_NAME(即S3D中Name)。
此處也可以批量替換支架名(Name),將支架確定約束類型(Restraint)添加到Name上,實(shí)現(xiàn)S3D中ISO圖的表達(dá),以減輕應(yīng)力專業(yè)人員手工添加ISO圖節(jié)點(diǎn)號(hào),約束類型的工作。添加支架類型后ISO見(jiàn)圖6。
圖6 添加支架類型后ISO圖
在工廠設(shè)計(jì)中,框架初步設(shè)計(jì)、均布及集中載荷點(diǎn)的提出是管道專業(yè)需要完成的工作,尤其是集中載荷點(diǎn)的繪制,是傳統(tǒng)AutoCAD(以下簡(jiǎn)稱ACAD)模式下比較耗時(shí)耗力、錯(cuò)誤率較高的工作。在按支架流水號(hào)把應(yīng)力節(jié)點(diǎn)各類載荷信息導(dǎo)入S3D模型之后,進(jìn)一步考慮是否可以從模型中輸出結(jié)構(gòu)載荷條件。但經(jīng)過(guò)多番嘗試,由于專業(yè)分工、模型深度、風(fēng)格包定制或切圖效果等原因,從模型中直接輸出載荷條件圖效果較不理想。
于是,采用ACAD_VBA編程進(jìn)行框架集中載荷點(diǎn)定位和標(biāo)號(hào),MTEXT進(jìn)行載荷表導(dǎo)入方案逐步形成。其邏輯圖見(jiàn)圖7。
圖7 集中載荷條件程序繪圖邏輯圖
為了實(shí)現(xiàn)圖7功能,需要對(duì)S3D邏輯支架位置進(jìn)行SQL查詢,此處用到的Partclass有JHgrPipeSupport,Interface有JLocalCoordinateSystem,關(guān)系數(shù)據(jù)庫(kù)表間關(guān)系有XHgrSup port_RSLT、XSupportedPorts,查詢結(jié)果見(jiàn)圖8。
圖8 支架位置查詢界面
由于SQL查詢無(wú)法進(jìn)行參考坐標(biāo)系運(yùn)算,需要對(duì)導(dǎo)出的笛卡爾坐標(biāo)系坐標(biāo)值進(jìn)行換算,這個(gè)換算坐標(biāo)系的原點(diǎn)應(yīng)與ACAD集中載荷條件圖紙上的(0,0,0)點(diǎn)重合,以利于后續(xù)ACAD支架塊定位程序的編寫。
在S3D中,坡度管可能導(dǎo)致支架定位不準(zhǔn),在報(bào)表導(dǎo)出時(shí)產(chǎn)生零碎值,需要Excel進(jìn)行數(shù)據(jù)圓整處理;支架定位有了之后,再基于流水號(hào)把載荷信息通過(guò)Vlookup函數(shù)從應(yīng)力計(jì)算報(bào)告上取過(guò)來(lái),此時(shí),對(duì)于應(yīng)力計(jì)算各工況數(shù)據(jù)的分析是必須的。支架位置Excel數(shù)據(jù)整理見(jiàn)圖9。
圖9 支架位置Excel數(shù)據(jù)整理界面
以下是ACAD_VBA該部分程序片段:
●建立支架圖塊
For i=0 To ThisDrawing.Blocks.Count-1
Set supportblock=ThisDrawing.
Blocks.Item(i) '查找舊塊
If supportblock.Name="支架" Then GoTo insblock
Next i
Set supportblock=ThisDrawing.
Blocks.Add(basep, "支架") '新建一個(gè)"支架"塊
pline(0)=-200: pline(1)=-200: pline(2)=0
pline(3)=200: pline(4)=200: pline(5)=0
Set plineObj1=ThisDrawing.
ModelSpace.AddPolyline(pline)
linep2(1)=1
plineObj1.ConstantWidth=30
'設(shè)置線寬
Set plineObj2=plineObj1.Mirror(linep1, linep2) '鏡像
●獲取Excel數(shù)據(jù),并導(dǎo)入至支架圖塊屬性集
Dim Excelapp As Excel.Application '定義excle應(yīng)用程序變量
Dim Excelsheet As Worksheet '定義工作表變量
Set Excelapp=CreateObject
("Excel.application") '激活Excel程序
Excelapp.Workbooks.Open ("D:atta_loc.xlsx") '打開(kāi)工作薄
Set Excelsheet=Excelapp.
ActiveWorkbook.Sheets("atta_loc") '當(dāng)前工作表為sheet1
corow=Excelsheet.
UsedRange.Rows.Count '計(jì)算工作表的總行數(shù)
For i=2 To corow
Set supportlay=ThisDrawing.
Layers.Add(Excelsheet.Cells(i, 6).Value)
'新建圖層
supportlay.color=
Excelsheet.Cells(i, 7).Value '圖層顏色
ThisDrawing.ActiveLayer=supportlay '將當(dāng)前圖層設(shè)置為支架圖層
attrtxt0=Excelsheet.Cells(i, 1).Value
attrtxt1=Excelsheet.Cells(i, 2).Value
p(0)=Excelsheet.Cells(i,3).Value
p(1)=Excelsheet.Cells(i, 4).Value
Set blockRef=ThisDrawing.
ModelSpace.InsertBlock(p, "支架", 1, 1, 1, 0) '插入塊
Attr3=blockRef.GetAttributes '獲取塊屬性
Attr3(0).TextString=attrtxt0 Attr3(1).TextString=attrtxt1
Next i
在支架導(dǎo)入前按位置和層高進(jìn)行分類,通過(guò)程序定制,同類支架將歸入相同圖層,并通過(guò)不同顏色體現(xiàn),后期在進(jìn)行ACAD分圖時(shí),可根據(jù)圖層進(jìn)行批量移動(dòng),其最終效果見(jiàn)圖10。
圖10 支架圖塊批量繪制
下一步,將根據(jù)支架所在Piperun保溫情況、彈簧是否配置等進(jìn)行支架安裝高度計(jì)算,實(shí)現(xiàn)支架底標(biāo)高與梁頂標(biāo)高差值計(jì)算,結(jié)合管徑、隔熱厚、支架導(dǎo)向方向等確定結(jié)構(gòu)T型架的位置、方向、規(guī)格、載荷與標(biāo)高。集中載荷表批量導(dǎo)入效果見(jiàn)圖11。
圖11 ACAD集中載荷導(dǎo)入(局部)
本文進(jìn)行了在S3D-C2-S3D-ACAD框架下集中載荷數(shù)據(jù)流轉(zhuǎn)的分析,通過(guò)目標(biāo)管道支架編寫流水號(hào),提高配管與應(yīng)力設(shè)計(jì)人員溝通效率,減少應(yīng)力設(shè)計(jì)人員手畫單線圖上支架類型的時(shí)間和錯(cuò)誤,使S3D模型的深度也有了一定程度的加強(qiáng);結(jié)合Excel的數(shù)據(jù)處理功能,編寫ACAD_VBA代碼,實(shí)現(xiàn)了集中載荷條件的自動(dòng)繪制,在此基礎(chǔ)上,甚至可以批量繪制T型架、平臺(tái)開(kāi)孔、管墩等設(shè)計(jì)要素,實(shí)現(xiàn)模型與提出條件的一致性。