999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

海洋石油工程項目配管材料信息提取

2020-11-25 11:29:38豐興盛蔣小華黃太安王可民史其麒
山東化工 2020年20期
關(guān)鍵詞:圖紙案例信息

豐興盛,蔣小華,黃太安,王可民,史其麒

(海洋石油工程股份有限公司建造事業(yè)部加工設(shè)計中心,山東 青島 266520)

1 引言

建造事業(yè)部的海洋石油工程項目中,加工設(shè)計中心配管專業(yè)SPOOLGEN軟件生成的REPORT文件數(shù)量多、信息多。圖紙材料表包含五十多列內(nèi)容,一個項目圖紙的數(shù)據(jù)量動輒幾千張甚至上萬張,使用人工統(tǒng)計材料已經(jīng)占用越來越多的時間,急需通過其他手段批量處理這些數(shù)據(jù)。

SPOOLGEN軟件生成的REPORT文件為文本文件,主要有以下幾類文件:

(1)*ASSEMBLY.TXT文件,包含安裝信息,建造事業(yè)部圖紙材料表不包含此類信息,本案例只對數(shù)據(jù)提取屬性,不做后期處理;

(2)*Cut.CSV文件,包含管段信息,本案例只對數(shù)據(jù)提取屬性;

(3)*Material.MTC文件,包含材料的尺寸、規(guī)格等信息,需要將數(shù)據(jù)整理后導(dǎo)入圖紙材料表;

(4)*Spool.log文件,包含單管的延米、表面積等信息,需要將延米和表面積導(dǎo)入圖紙材料表;

(5)*Support.TXT文件,包含管支架信息,本案例只對數(shù)據(jù)提取屬性;

(6)*Welds.LIS文件,包含焊點信息,需要將焊點信息導(dǎo)入圖紙材料表。

SPOOGEN生成的REPORT文件以及文件中的數(shù)據(jù)結(jié)構(gòu)是由風(fēng)格包決定的,建造事業(yè)部已經(jīng)對國內(nèi)海洋石油工程項目進(jìn)行了標(biāo)準(zhǔn)化,編寫程序可以用于所有使用標(biāo)準(zhǔn)化風(fēng)格包的國內(nèi)項目。

綜上所述,本案例中的程序需要將*Material.MTC、*Spool.log、*Welds.LIS文件的數(shù)據(jù)處理后導(dǎo)入圖紙材料表中。本案例采用CSharp編程需要實現(xiàn)以下幾點:

(1)將REPORT文件數(shù)據(jù)提取屬性后導(dǎo)入EXCEL中;

(2)將*Material.MTC、*Spool.log、*Welds.LIS文件的數(shù)據(jù)處理后導(dǎo)入圖紙材料表中。

(3)將錯誤信息展現(xiàn)并導(dǎo)入EXCEL中。

2 程序流程

手動處理圖紙材料表,主要需要以下步驟:

(1)將REPORT文件逐個打開,按照不同類型的文件,分別復(fù)制到不同的EXCEL表格中.

(2)按照SPOOLGEN風(fēng)格包的格式,提取材料屬性(使用EXCEL提供的數(shù)據(jù)——分列功能).

(3)按照屬性的對照關(guān)系,將*Material.MTC文件的內(nèi)容,逐列復(fù)制到圖紙材料表中。

(4)將*Spool.log文件中的單管延米、面積按照管線號、單管號、尺寸填入圖紙材料表。

(5)計算*Welds.LIS文件中的不同管線、單管、尺寸、類型的焊點數(shù)量,填入圖紙材料表。

本案例用C Sharp編程遵循這種業(yè)務(wù)流程,設(shè)計的程序的基本流程參照圖1。

圖1 程序流程

3 程序核心功能的實現(xiàn)

本案例中程序先讀取不同類型的文件,再對數(shù)據(jù)提取屬性,對數(shù)據(jù)進(jìn)行處理后,分別寫入EXCEL中。

3.1 數(shù)據(jù)讀取和屬性提取

SPOOLGEN軟件REPORT文件都屬于文本文件,其數(shù)據(jù)的讀取,使用FileReadAllLines方法,如下所示,listFile為包含同一類型文件的集合:

List strList = new List();

for(int i = 0; i < listFile.Count; i++)

{string[]arr = File.ReadAllLines(listFile[i],Encoding.UTF8);

for(int j = 0; j < arr.Length; j++)

{strList.Add(arr[i]);

}

}

REPORT文件數(shù)據(jù)讀取完成后,需要對每一行數(shù)據(jù)進(jìn)行分割,提取出數(shù)據(jù)的各種屬性,數(shù)據(jù)提取依據(jù)SPOOLGEN風(fēng)格包,見圖2。

圖2 SPOOLGEN風(fēng)格包

REPORT文件數(shù)據(jù)的每個屬性都是固定長度的字段,不足部分為空格。SPOOLGEN軟件風(fēng)格包中確定了每個屬性的起始位置和字段長度。每個屬性只需要提取固定位置和長度的字段就可以,在程序中使用Substring方法,簡略代碼如下所示,其中intList為存儲SPOOLGEN風(fēng)格包中每個屬性起始起始位置的集合。

string[]arr = new string[strList.Count, intList.Count-1];

for(int i = 0; i < strList.Count; i++)

{

int intLen = strList[i].Length;

for(int j = 0; j < intList.Count-1; j++)

{

int start = intList[i];

int end = intList[j+1];

if(start > intLen)

{

arr[i,j]= "";

}

else

{

end = Math.Min(end, intLen);

arr[i,j]=strList[i].Substring(start, end-start).Trim();

}

}

}

3.2 圖紙材料表的生成

圖紙材料表中的數(shù)據(jù)主要來源于*Material.MTC文件,材料屬性位置不同,需要通過對照關(guān)系從*Material.MTC映射到圖紙材料表中,創(chuàng)建一個兩者關(guān)系的字典來實現(xiàn)。代碼如下所示,其中arrMat為存儲*Material.MTC文件的一個二維數(shù)組,dicMap為圖紙材料表和*Material.MTC文件中材料屬性位置的字典。

string[]arrMaterial = new string[arrMat.GetLength(0), 60];

for(int i = 0; i < arrMat.GetLength(0); i++)

{

arrMaterial[i,0]=(i + 1).ToString();

foreach(KeyValuePair kvp in dicMap)

{

arrMaterial[i,kvp.key]=arrMat[i,kvp.value].Trim();

}

}

3.3 焊點信息

為圖紙材料表添加焊點信息,需要先將*Welds.LIS文件中的管線號、單管號、尺寸相同的各種類型焊點匯總,再將焊點輸入圖紙材料表的合適位置。焊點類型主要包括預(yù)制對焊、現(xiàn)場對焊、插焊、管鞋預(yù)制焊、管鞋現(xiàn)場焊。判斷焊接類型根據(jù)Weld No和Weld Type屬性來判斷。在本案例中,Weld No帶“FW”前綴的為現(xiàn)場焊;不帶“FW”,且Weld Type為“BW”的為預(yù)制焊;Weld Type為“BW+T”的為現(xiàn)場預(yù)制焊,歸屬到現(xiàn)場焊中。

圖3 焊點類型判斷條件

3.4 單管延米、面積

單管的延米和面積信息在*Spool.log文件中,需要將對應(yīng)管線號、單管號、尺寸的延米和面積添加到圖紙材料表中。其中,“Length”列為單管長度“Acreage_Sqm”列為單管的表面積。

圖4 延米和面積

需要注意,由于SPOOLGEN的IDF文件可能會存在錯誤,*Welds.LIS文件和*Spool.log文件中,會存在尺寸丟失、尺寸錯誤的現(xiàn)象,在DO系統(tǒng)中地漏和管線之間的焊點經(jīng)常出現(xiàn)這一問題。這時候,焊點和延米的信息無法按照固有規(guī)則導(dǎo)入圖紙材料表中,需要程序能捕捉的這些錯誤,并提醒作圖人員根據(jù)圖紙上的信息核對并修改圖紙材料表。

3.5 信息的輸出

本案例中,圖紙材料表需要輸出到EXCEL文件中。在程序中添加引用,選擇Microsoft Office Excel應(yīng)用程序中的Microsoft.Office.Interop.Excel.dll文件,在程序引用命名空間部分,添加:“using Microsoft.Office.Interop.Excel;”。這樣C sharp編寫的程序就能讀寫EXCEL文件。

圖5 引用COM組件

使用Microsoft.Office.Interop.Excel.dll這個COM組件,可以將數(shù)組直接寫入表格中,在數(shù)據(jù)量大的時候,相比逐個單元格賦值,能獲得更快的寫入速度。其代碼如下所示,其中arr為存儲圖紙材料表的一個二維數(shù)組。

string path = System.Windows.Forms.Application.StartupPath;

string fullName = path + @"DataModule.xlsx";

Application exlApp = new Application();

exlApp.ScreenUpdating = false;

exlApp.Visible = false;

Workbook wb = exlApp.Workbooks.Open(fullName);

Worksheet ws =(Worksheet)wb.Sheets["圖料表"];

ws.Activate();

ws.Cells[3,1].Resize[arr.GetLength(0),arr.GetLength(1)]=arr;

exlApp.S

creenUpdating = true;

exlApp.Visible = true;

4 結(jié)語

本案例程序的開發(fā),實現(xiàn)了對SPOOLGEN軟件REPORT文件數(shù)據(jù)的讀取和圖紙材料表的生成。手工處理一張圖的材料需要10~20min,使用軟件處理一批圖紙(通常幾十張圖紙的REPORT文件一起處理)1~2min就能完成。從軟件完成至今,大約為建造事業(yè)部加工設(shè)計中心處理了50000多張圖紙,累計節(jié)省8000人工時以上。而海洋石油工程項目中,配管專業(yè)圖紙數(shù)量多的特性也讓軟件有較為廣闊的前景;建造事業(yè)部加工設(shè)計中心對SPOOLGEN風(fēng)格包的標(biāo)準(zhǔn)化也為軟件的推廣創(chuàng)造了有利的條件。

猜你喜歡
圖紙案例信息
案例4 奔跑吧,少年!
少先隊活動(2021年2期)2021-03-29 05:40:48
淺談汽車線束產(chǎn)品圖紙管理
看圖紙
隨機變量分布及統(tǒng)計案例拔高卷
發(fā)生在你我身邊的那些治超案例
中國公路(2017年7期)2017-07-24 13:56:38
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
一個模擬案例引發(fā)的多重思考
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
酒店室內(nèi)裝修圖紙深化設(shè)計淺析
河南科技(2014年12期)2014-02-27 14:10:44
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 91在线一9|永久视频在线| 中文字幕人成人乱码亚洲电影| 91视频首页| 免费无遮挡AV| 精品一區二區久久久久久久網站 | 国产剧情一区二区| 日韩第一页在线| 国产亚洲第一页| 国产永久无码观看在线| 国产女人18水真多毛片18精品| 国产午夜精品鲁丝片| 免费国产小视频在线观看| 久久人搡人人玩人妻精品| 久久精品这里只有国产中文精品| 国产三区二区| 亚洲精品天堂在线观看| 先锋资源久久| 中国国产一级毛片| 香蕉99国内自产自拍视频| 国产91色| 欧美福利在线播放| 四虎国产在线观看| 首页亚洲国产丝袜长腿综合| 亚洲视频四区| 白丝美女办公室高潮喷水视频| 中文字幕人妻av一区二区| 丁香婷婷综合激情| 日本一本正道综合久久dvd| 亚洲精品第一页不卡| 欧美.成人.综合在线| 五月激情婷婷综合| 国产一区三区二区中文在线| 天堂亚洲网| 国产免费久久精品99re不卡 | 国产杨幂丝袜av在线播放| 久久这里只有精品66| 日本久久久久久免费网络| 天堂成人在线| 日韩精品中文字幕一区三区| 亚洲日本精品一区二区| 亚洲中文无码h在线观看| 国产成人乱无码视频| 日韩二区三区| 日韩区欧美国产区在线观看 | 久久成人18免费| 性视频久久| 高h视频在线| 人妻丰满熟妇啪啪| 婷婷六月综合网| 欧美无专区| 国产aⅴ无码专区亚洲av综合网| 一级爱做片免费观看久久| 天天做天天爱夜夜爽毛片毛片| 在线观看av永久| 国产女主播一区| 99在线观看国产| 亚洲欧美成人在线视频| 国产偷国产偷在线高清| 亚洲综合专区| 日韩在线成年视频人网站观看| 91啦中文字幕| 久久青草免费91观看| 国产永久在线视频| 亚洲免费黄色网| 久久激情影院| 青青草欧美| 欧美一级在线| 国产女同自拍视频| 国内精品自在欧美一区| 色综合久久88色综合天天提莫| 美女无遮挡被啪啪到高潮免费| 亚洲人成亚洲精品| 91九色最新地址| 凹凸精品免费精品视频| 国产精品视频久| 无码内射在线| 国产精品网址你懂的| 亚洲国内精品自在自线官| 欧美精品成人| 国产真实二区一区在线亚洲| 666精品国产精品亚洲| 亚洲无码不卡网|