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

AVEVAMARINE軟件的二次開發

2023-07-02 14:40:51羅海友
廣東造船 2023年2期

羅海友

摘 ? ?要:AVEVA MARINE是一個功能強大的CAD設計平臺,但各船廠的實際情況千差萬別,故幾乎每個船廠都要針對不同的項目進行客戶化配置及二次開發。本文對我司的AVEVA MARINE軟件二次開發進行了系統論述,并對二次開發實例《自動生成零件明細表》進行了詳細介紹,希望能夠起到拋磚引玉的效果,為有志于AVEVA MARINE軟件二次開發的同仁提供參考。

關鍵詞:AVEVA MARINE;軟件二次開發;C#

中圖分類號:U662.9 ??? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A

Redevelopment for AVEVA Marine

Luo Haiyou

( COSCO Shipping Heavy Industry (Guangdong) Co., Ltd., Dongguan 523146 )

Abstract: AVEVA Marine is an extremely powerful CAD design platform, but the actual situation of each shipyard is different. Almost every shipyard needs to carry out the customized configuration and redevelopment for different projects. This paper provides a systematic discussion of the redevelopment of AVEVA MARINE software, and the development example "automatic generation of parts list" was introduced in detail. It provides reference for people interested in redevelopment of AVEVA MARINE software.

Key words: AVEVA MARINE; Redevelopment ; C#

1 ? ? 前言

目前比較流行的3D船舶生產設計軟件,主要有:AUTO CAD ;滬東東欣;CATIA;AVEVA MARINE等。其中,AVEVA MARINE幾乎占據了國內船舶生產設計軟件領域的半壁江山。

AVEVA公司在船舶和海洋工程、石油、天然氣、電力、造紙、制藥、化工等工業領域都能提供全生命周期解決方案服務。該公司總部位于英國劍橋,是國際知名的工程信息技術企業,也是目前世界領先的工程信息技術企業之一。AVEVA Marine是AVEVA公司的一系列軟件產品之一,是用于設計、建造船舶和海洋工程項目的集成軟件。該軟件采用以對象為中心的技術,提供一系列解決方案、加載項以及單機版應用程序所構成的產品組合,貫穿造船業務過程中的每個環節。

AVEVA Marine雖然是一個功能強大的CAD設計平臺,但各船廠的實際情況千差萬別,故幾乎每個船廠都要針對不同的項目進行客戶化配置及二次開發。鑒于AVEVA Marine是一款專業性極強的設計軟件,對該軟件進行二次開發的門檻很高,既要精通編程語言,又要有豐富的設計經驗及相應專業知識,不然開發出來的東西可能和實際需求相差甚遠。目前國內有能力進行二次開發的船廠不多,但需求卻很大,很多船廠都是直接向AVEVA或是第三方購買開發服務,成本很高。為了實現自主可控,降低成本,在各船廠建立二次開發部門培養自己的開發人才迫在眉睫。

2 ? ?AVEVA MARINE軟件二次開發平臺

2.1 ?開發工具

由于歷史原因,AVEVA MARINE軟件的大舾裝和船體優先選擇的編程語言有所不同。其中:大舾裝優先選擇PML;而船體則優先選擇C#。PML無需編譯AM 即可直接讀取,C#則需要以Visual Studio 為載體進行編寫及封裝。

Visual Studio是美國微軟公司開發的一個相對完整的開發工具集,它包括了整個軟件生命周期中所需的包括UML工具、代碼管控工具、集成開發環境等大部分工具,支持的所有平臺都能與用VS寫的目標代碼完美匹配。由于使用習慣問題,確定選擇Visual Studio 2017版。

2.2 ? ?編程語言

PML 全稱Programamable Macro Language,是PDMS內置的開發語言,已從開始的PML升級到了PML .Net版本。其功能強大,并且與PDMS無縫連接,還能簡化用戶界面,在大舾裝開發方面具有一定的優勢。

C#是一種新的、面向對象的編程語言。它可以幫助程序員快速地編寫各種基于Microsoft .NET平臺而開發的應用程序,是構建各類組件的理想之選。使用簡單的C#語言結構,這些組件可以方便的轉化為XML 網絡服務,從而通過Internet進行調用。

AVEVA MARINE 的船體部分是以C#編寫為主,本文主要研究船體的二次開發,所以選擇C#語言。

3 ? ?AVEVA MARINE軟件二次開發實例《自動生成分段零件明細表》

一套完整的船體分段生產設計圖紙,包括:分段工作圖、板材切割圖、型材切割圖、板材加工圖、型材加工圖、板材清單、零件明細表,有些分段還包括小組立圖和預密性試驗圖。其中,船體分段零件明細表包含了零件名、組立流向、板厚材質、套料位置、型材規格、加工信息等幾乎所有的零件屬性信息,是一套必不可少的圖紙。

用AM軟件在出圖的最后階段,需要生成一個完整的零件明細表。AM本身可以生成一個零件明細表,但比較粗糙,很難滿足各船廠的個性化需求,因此很多船廠的零件表是通過外部開發在AM生成的零件表基礎上進行數據再提取,并手動填入所缺的信息后重新生成一個符合本廠要求的零件明細表。這種方式的弊端,是圖紙和模型不同步。由于分段模型圖紙修改是一種常態,后期很容易出現零件明細表漏更新的情況,所以開發一個嵌入AM軟件直接提取模型數據的生成零件表的插件迫在眉睫。

3.1 ? 開發流程及整體框架

根據我司生產及施工需求,零件明細表需要提供如下信息:組立名、零件號、零件數量、組立流向、零件規格、材質、套料圖名、零件重量。通過對比發現,AM自帶的功能生成零件表缺少了組立流向及另存后的型材下料位置,所以無法直接從生成的零件表中提取所有需要的信息。為了簡化流程,節省時間,決定從模型中直接提取。

軟件整體開發流程,見圖1。

3.2 ? 開發細則

3.2.1 需求調研

需求調研是軟件開發的基礎,其目的是了解用戶想實現什么樣的功能,在這個基礎上進行更深入的分析,實現用戶的需求。

3.2.2 軟件算法流程

軟件算法流程,如圖2所示。

3.2.3 設計軟件界面

(1)插件圖標

為便于識別,采用零件明細表的英文名PARTLIST 的首字母“P”作為插件的圖標。

(2)操作界面

結合零件明細表需要涵蓋的信息及AM模型中所包含的屬性信息,操作界面中需要提供船號、分段號的填寫框,以及是否為左右對稱分段的復選框。

AM模型完善后,可自動生成型材下料草圖,其圖面和模型是互不關聯的。也就是說,即使生成了型材下料草圖,AM分段模型零件中也不包含零件明細表中所需要的型材下料草圖的位置信息,所以操作界面中需要提供一個可以使型材下料和分段模型關聯起來的按鈕。

船體分段中所有的零件都需要提供流向信息,因AM軟件在進行粗建模時是沒有零件流向填入選項的,需要等模型校對完成開始正式繪制施工圖前,打開裝配計劃模塊按照分段的裝配流程進行組立流程的設計和建模,并逐個填寫組立的流向信息;AM軟件的裝配計劃模塊在填寫組立流程的操作上有一個弊端,就是每次只能填寫一個小組立的流程信息,這樣不但耗時而且操作繁瑣。考慮到零件明細表需要提取所有零件的流向信息,在主界面中提供一個裝配計劃編輯器按鈕,通過點擊該按鈕,可以彈出批量編輯或添加組立流程信息的對話框。

船體的分段是根據場地及起吊能力來劃分的,不同船廠的起吊能力不同,劃分的船體分段大小及組立數量也不同。另外,有些分段(比如機艙分段)雖然不算大,但是結構復雜,零件數量龐大,并且C#的dataGridView功能比較難實現分頁顯示,一個界面可能無法將零件顯示出來。考慮到插件的通用性問題,在界面中提供顯示零件總數量,以便核對。

《自動生成零件明細表》程序實現過程,就是一個從AM模型中提取零件屬性信息,通過排列組合,再調用EXCEL功能模塊,最后實現生成符合船廠要求的標準格式的《零件明細表》的過程;AM模型提供的零件屬性信息本身是有些雜亂無章的,并且有些客戶化信息也顯示不出來,為了便于檢查核對,在操作界面中提供數據預覽按鈕及預覽窗口;此外,操作界面中還需提供清空列表和生成零件表這兩個必需的按鈕。

3.2.4 代碼編寫

(1)數據預覽功能實現

操作主界面設計好后,首先應實現數據預覽功能,以方便核對所提取的模型零件數據正確與否。

數據預覽功能的整體思想,是通過設計人員輸入的船號、分段號、左右對稱信息定位數據所在的位置,并通過對話框列表顯示出來。

① 首先判斷船號和分段號是否為空,如果都不為空則開始執行主程序,否則如果有一個或者兩個為空則彈出報錯信息,提示未填船號或分段號;

② 通過對模型零件信息分析發現,板材和型材所存儲的目錄有所差異,并且各自的屬性中都無法提供零件表所需要的全部信息;對比模型數據庫及零件數據庫后,發現零件數據中的屬性信息比模型數據庫中的屬性信息全面,于是決定從零件數據庫中的零件提取信息,并通過寫入用戶自定義屬性的方式把缺失的信息補全;

③ 要提取軟件的相關信息,首先要找到該軟件的接口程序-API。API的英文全稱Application Programming Interface,意思是應用程序編程接口。 AM軟件提供了較為完整的API程序:先找到AM提供的過濾器TypeFilter,通過分段號信息篩選出本分段的板材及型材零件,歸入到一維數組中,并通過C#的foreach函數遍歷整個數組,在dataGridView中列表顯示出來。至此,該程序的數據預覽功能已初步實現,但信息還不完整;

④ 通過零件數據庫中的零件屬性,利用AM提供的API程序可以提取到組立名、零件號、零件數量、零件規格、材質、重量和板材套料位置,但缺失了零件流向和型材的套料位置。

(2)型材套料位置功能實現

AM模型完善后,可自動生成型材下料草圖,但圖面和模型是互不關聯的,將圖紙另存后圖中的型材信息和模型就完全脫鉤了,所以通過寫入型材套料位置按鈕實現將圖紙中的零件信息寫到模型中,并在數據預覽時顯示出來;

寫入型材套料位置實現的基本原理,是通過定位圖紙中圖框的坐標找到型材的零件名,然后再和零件數據庫中的零件名進行匹配,匹配成功后將圖紙名字寫入零件屬性中。

(3)裝配計劃編輯器 功能實現

AM軟件的Hulldesign模塊中嵌入有一個assembly(裝配計劃)模塊。在模型校對完成后,需要根據分段實際情況,進行組立流程的設計和建模,并逐個填寫組立的流向信息。

AM軟件的裝配計劃模塊,在填寫組立流程的操作上有一個弊端,就是每次只能填寫一個小組立的流程信息,而且操作流程較為復雜,如果分段的組立比較多的話,很容易遺漏或出錯。裝配計劃編輯器開發的初衷,除了要將流向寫入零件屬性外,就是把所有的組立流向填寫信息都集成在一個窗口里,并且通過算法實現只填當前組立流向,自動生成下級組立流向。

該功能的基本原理,是將用戶指定的裝配樹列表顯示出來,并在API中找到相應的接口程序,把用戶所填寫的數據寫入到AM模型中,寫入完成后再將數據集成到零件的屬性中,便于數據提取。

(4)生成零件表功能實現

數據預覽功能將所需要的數據全部提取,并在dataGridView中顯示出來后,接下來的工作是將數據按零件表模版整理出來,并輸出EXCEL格式文件。

該功能的基本原理是,通過引用Excel的組件Microsoft.Office.Interop.Excel實現在C#中打開Excel,并將dataGridView中的數據寫入Excel,再通過C#編寫方法進行處理,最后輸出符合要求的Excel格式文件。

3.2.5 軟件調試與異常處理

(1)軟件調試

軟件調試是軟件開發過程必不可少的一個環節。對AM二次開發進行調試,首先要將編譯后的程序放到AM的安裝目錄下,并將程序加載到指定模塊中,比如船體模塊需要通過HullDesignAddins來加載。

Visual Studio提供了編輯器和調試器進行調試。在使用Visual Studio2017開發C#程序時,編輯器既能為開發者提供代碼編寫的各種輔助提示及實時編譯等功能,還提供了源代碼快捷修改、重構以及語法糾錯等操作。通過Visual Studio2017,可以快速地發現各種語法錯誤,并提示修改建議進行快速修正。

當代碼不能正常運行時,可以通過調試器定位錯誤。常用的程序調試包括:增加斷點;開始、中斷、停止程序的執行;單行代碼執行和使程序運行到指定的位置。

(2)異常處理

在進行軟件開發時,既要考慮軟件后期是否能正常運行,還要注意編寫代碼時可能出現的筆誤和各種不可預測的邏輯錯誤。在C#提供的 .NET類庫中,有處理各種異常情形所設計的各種異常類,這些類包含了很多異常的相關信息。

3.2.6 軟件交付

軟件調試完成后,需交設計人員進行實測,修復完實測過程中暴露出來缺陷后才可以正式交付,同時提交軟件開發文檔。

4 ? ?結束語

對AVEVA MARINE軟件的二次開發是一個比較復雜的過程,特別是一些專業性較強的軟件,對開發人員要求更高,既要精通編程語言,又要有相應專業知識。目前國內許多大中型船廠和設計公司都在嘗試組建自己的軟件開發團隊,但真正有能力進行二次開發的船廠尚不多。

本文對AVEVA MARINE 軟件二次開發進行了系統論述,并通過AM二次開發的實例《自動生成零件明細表》對整個開發過程進行了詳細介紹,希望能夠起到拋磚引玉的效果,為有志于AVEVA MARINE軟件二次開發的同仁提供參考。

參考文獻

[1] 明日科技.C#項目開發實戰入門[M].吉林:吉林大學出版社, 2019.

主站蜘蛛池模板: 国产精品99久久久久久董美香| 女人av社区男人的天堂| h网站在线播放| 久久黄色影院| 人人妻人人澡人人爽欧美一区| 欧美日韩国产精品va| 99热这里只有精品免费| 日韩黄色大片免费看| 91麻豆精品国产91久久久久| 亚洲人人视频| 精品国产香蕉伊思人在线| 久久久久亚洲AV成人网站软件| 国产丝袜精品| 精品成人一区二区| 欧美日韩国产在线人成app| 久久综合伊人77777| 伊人无码视屏| 国产成人免费视频精品一区二区| 精品国产自| 99re这里只有国产中文精品国产精品 | 久久综合亚洲鲁鲁九月天| 国产精品亚欧美一区二区| 亚洲精品免费网站| 欧美日韩一区二区三区四区在线观看 | 在线亚洲小视频| 国产精女同一区二区三区久| 青青青国产免费线在| 久久美女精品| 夜夜操天天摸| 无码中字出轨中文人妻中文中| 国产69精品久久久久妇女| 亚洲天天更新| 国产在线观看91精品亚瑟| 日日碰狠狠添天天爽| 永久在线播放| 无码av免费不卡在线观看| 亚洲成AV人手机在线观看网站| 91蝌蚪视频在线观看| 色天堂无毒不卡| 久久性妇女精品免费| 国产精品视频第一专区| 精品视频一区二区三区在线播 | 97在线视频免费观看| 久久综合丝袜日本网| 日韩天堂网| 日本在线视频免费| 欧美日韩国产在线人成app| 中文纯内无码H| 免费不卡视频| 91娇喘视频| 久久一色本道亚洲| 国产资源免费观看| 国产91透明丝袜美腿在线| 青青草一区| 久久久久青草大香线综合精品| 在线观看亚洲人成网站| 国产精选自拍| 91精品国产丝袜| 青青草欧美| 热久久综合这里只有精品电影| 怡春院欧美一区二区三区免费| 亚洲一区无码在线| 国产在线观看91精品| 久久视精品| 伊人婷婷色香五月综合缴缴情| 美女被操黄色视频网站| 国产精品hd在线播放| 久久久噜噜噜| 黄片一区二区三区| 国产黄在线免费观看| 亚洲一区毛片| 亚洲成人黄色在线| 亚洲福利网址| YW尤物AV无码国产在线观看| 黄色不卡视频| 国产91成人| 日韩精品成人在线| 亚洲欧美色中文字幕| 99ri精品视频在线观看播放| av大片在线无码免费| 日韩精品久久无码中文字幕色欲| 国产女人在线视频|