亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        AVEVAMARINE軟件的二次開(kāi)發(fā)

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

        羅海友

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

        關(guān)鍵詞:AVEVA MARINE;軟件二次開(kāi)發(fā);C#

        中圖分類號(hào):U662.9 ??? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: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船舶生產(chǎn)設(shè)計(jì)軟件,主要有:AUTO CAD ;滬東東欣;CATIA;AVEVA MARINE等。其中,AVEVA MARINE幾乎占據(jù)了國(guó)內(nèi)船舶生產(chǎn)設(shè)計(jì)軟件領(lǐng)域的半壁江山。

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

        AVEVA Marine雖然是一個(gè)功能強(qiáng)大的CAD設(shè)計(jì)平臺(tái),但各船廠的實(shí)際情況千差萬(wàn)別,故幾乎每個(gè)船廠都要針對(duì)不同的項(xiàng)目進(jìn)行客戶化配置及二次開(kāi)發(fā)。鑒于AVEVA Marine是一款專業(yè)性極強(qiáng)的設(shè)計(jì)軟件,對(duì)該軟件進(jìn)行二次開(kāi)發(fā)的門(mén)檻很高,既要精通編程語(yǔ)言,又要有豐富的設(shè)計(jì)經(jīng)驗(yàn)及相應(yīng)專業(yè)知識(shí),不然開(kāi)發(fā)出來(lái)的東西可能和實(shí)際需求相差甚遠(yuǎn)。目前國(guó)內(nèi)有能力進(jìn)行二次開(kāi)發(fā)的船廠不多,但需求卻很大,很多船廠都是直接向AVEVA或是第三方購(gòu)買(mǎi)開(kāi)發(fā)服務(wù),成本很高。為了實(shí)現(xiàn)自主可控,降低成本,在各船廠建立二次開(kāi)發(fā)部門(mén)培養(yǎng)自己的開(kāi)發(fā)人才迫在眉睫。

        2 ? ?AVEVA MARINE軟件二次開(kāi)發(fā)平臺(tái)

        2.1 ?開(kāi)發(fā)工具

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

        Visual Studio是美國(guó)微軟公司開(kāi)發(fā)的一個(gè)相對(duì)完整的開(kāi)發(fā)工具集,它包括了整個(gè)軟件生命周期中所需的包括UML工具、代碼管控工具、集成開(kāi)發(fā)環(huán)境等大部分工具,支持的所有平臺(tái)都能與用VS寫(xiě)的目標(biāo)代碼完美匹配。由于使用習(xí)慣問(wèn)題,確定選擇Visual Studio 2017版。

        2.2 ? ?編程語(yǔ)言

        PML 全稱Programamable Macro Language,是PDMS內(nèi)置的開(kāi)發(fā)語(yǔ)言,已從開(kāi)始的PML升級(jí)到了PML .Net版本。其功能強(qiáng)大,并且與PDMS無(wú)縫連接,還能簡(jiǎn)化用戶界面,在大舾裝開(kāi)發(fā)方面具有一定的優(yōu)勢(shì)。

        C#是一種新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它可以幫助程序員快速地編寫(xiě)各種基于Microsoft .NET平臺(tái)而開(kāi)發(fā)的應(yīng)用程序,是構(gòu)建各類組件的理想之選。使用簡(jiǎn)單的C#語(yǔ)言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML 網(wǎng)絡(luò)服務(wù),從而通過(guò)Internet進(jìn)行調(diào)用。

        AVEVA MARINE 的船體部分是以C#編寫(xiě)為主,本文主要研究船體的二次開(kāi)發(fā),所以選擇C#語(yǔ)言。

        3 ? ?AVEVA MARINE軟件二次開(kāi)發(fā)實(shí)例《自動(dòng)生成分段零件明細(xì)表》

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

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

        3.1 ? 開(kāi)發(fā)流程及整體框架

        根據(jù)我司生產(chǎn)及施工需求,零件明細(xì)表需要提供如下信息:組立名、零件號(hào)、零件數(shù)量、組立流向、零件規(guī)格、材質(zhì)、套料圖名、零件重量。通過(guò)對(duì)比發(fā)現(xiàn),AM自帶的功能生成零件表缺少了組立流向及另存后的型材下料位置,所以無(wú)法直接從生成的零件表中提取所有需要的信息。為了簡(jiǎn)化流程,節(jié)省時(shí)間,決定從模型中直接提取。

        軟件整體開(kāi)發(fā)流程,見(jiàn)圖1。

        3.2 ? 開(kāi)發(fā)細(xì)則

        3.2.1 需求調(diào)研

        需求調(diào)研是軟件開(kāi)發(fā)的基礎(chǔ),其目的是了解用戶想實(shí)現(xiàn)什么樣的功能,在這個(gè)基礎(chǔ)上進(jìn)行更深入的分析,實(shí)現(xiàn)用戶的需求。

        3.2.2 軟件算法流程

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

        3.2.3 設(shè)計(jì)軟件界面

        (1)插件圖標(biāo)

        為便于識(shí)別,采用零件明細(xì)表的英文名PARTLIST 的首字母“P”作為插件的圖標(biāo)。

        (2)操作界面

        結(jié)合零件明細(xì)表需要涵蓋的信息及AM模型中所包含的屬性信息,操作界面中需要提供船號(hào)、分段號(hào)的填寫(xiě)框,以及是否為左右對(duì)稱分段的復(fù)選框。

        AM模型完善后,可自動(dòng)生成型材下料草圖,其圖面和模型是互不關(guān)聯(lián)的。也就是說(shuō),即使生成了型材下料草圖,AM分段模型零件中也不包含零件明細(xì)表中所需要的型材下料草圖的位置信息,所以操作界面中需要提供一個(gè)可以使型材下料和分段模型關(guān)聯(lián)起來(lái)的按鈕。

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

        船體的分段是根據(jù)場(chǎng)地及起吊能力來(lái)劃分的,不同船廠的起吊能力不同,劃分的船體分段大小及組立數(shù)量也不同。另外,有些分段(比如機(jī)艙分段)雖然不算大,但是結(jié)構(gòu)復(fù)雜,零件數(shù)量龐大,并且C#的dataGridView功能比較難實(shí)現(xiàn)分頁(yè)顯示,一個(gè)界面可能無(wú)法將零件顯示出來(lái)。考慮到插件的通用性問(wèn)題,在界面中提供顯示零件總數(shù)量,以便核對(duì)。

        《自動(dòng)生成零件明細(xì)表》程序?qū)崿F(xiàn)過(guò)程,就是一個(gè)從AM模型中提取零件屬性信息,通過(guò)排列組合,再調(diào)用EXCEL功能模塊,最后實(shí)現(xiàn)生成符合船廠要求的標(biāo)準(zhǔn)格式的《零件明細(xì)表》的過(guò)程;AM模型提供的零件屬性信息本身是有些雜亂無(wú)章的,并且有些客戶化信息也顯示不出來(lái),為了便于檢查核對(duì),在操作界面中提供數(shù)據(jù)預(yù)覽按鈕及預(yù)覽窗口;此外,操作界面中還需提供清空列表和生成零件表這兩個(gè)必需的按鈕。

        3.2.4 代碼編寫(xiě)

        (1)數(shù)據(jù)預(yù)覽功能實(shí)現(xiàn)

        操作主界面設(shè)計(jì)好后,首先應(yīng)實(shí)現(xiàn)數(shù)據(jù)預(yù)覽功能,以方便核對(duì)所提取的模型零件數(shù)據(jù)正確與否。

        數(shù)據(jù)預(yù)覽功能的整體思想,是通過(guò)設(shè)計(jì)人員輸入的船號(hào)、分段號(hào)、左右對(duì)稱信息定位數(shù)據(jù)所在的位置,并通過(guò)對(duì)話框列表顯示出來(lái)。

        ① 首先判斷船號(hào)和分段號(hào)是否為空,如果都不為空則開(kāi)始執(zhí)行主程序,否則如果有一個(gè)或者兩個(gè)為空則彈出報(bào)錯(cuò)信息,提示未填船號(hào)或分段號(hào);

        ② 通過(guò)對(duì)模型零件信息分析發(fā)現(xiàn),板材和型材所存儲(chǔ)的目錄有所差異,并且各自的屬性中都無(wú)法提供零件表所需要的全部信息;對(duì)比模型數(shù)據(jù)庫(kù)及零件數(shù)據(jù)庫(kù)后,發(fā)現(xiàn)零件數(shù)據(jù)中的屬性信息比模型數(shù)據(jù)庫(kù)中的屬性信息全面,于是決定從零件數(shù)據(jù)庫(kù)中的零件提取信息,并通過(guò)寫(xiě)入用戶自定義屬性的方式把缺失的信息補(bǔ)全;

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

        ④ 通過(guò)零件數(shù)據(jù)庫(kù)中的零件屬性,利用AM提供的API程序可以提取到組立名、零件號(hào)、零件數(shù)量、零件規(guī)格、材質(zhì)、重量和板材套料位置,但缺失了零件流向和型材的套料位置。

        (2)型材套料位置功能實(shí)現(xiàn)

        AM模型完善后,可自動(dòng)生成型材下料草圖,但圖面和模型是互不關(guān)聯(lián)的,將圖紙另存后圖中的型材信息和模型就完全脫鉤了,所以通過(guò)寫(xiě)入型材套料位置按鈕實(shí)現(xiàn)將圖紙中的零件信息寫(xiě)到模型中,并在數(shù)據(jù)預(yù)覽時(shí)顯示出來(lái);

        寫(xiě)入型材套料位置實(shí)現(xiàn)的基本原理,是通過(guò)定位圖紙中圖框的坐標(biāo)找到型材的零件名,然后再和零件數(shù)據(jù)庫(kù)中的零件名進(jìn)行匹配,匹配成功后將圖紙名字寫(xiě)入零件屬性中。

        (3)裝配計(jì)劃編輯器 功能實(shí)現(xiàn)

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

        AM軟件的裝配計(jì)劃模塊,在填寫(xiě)組立流程的操作上有一個(gè)弊端,就是每次只能填寫(xiě)一個(gè)小組立的流程信息,而且操作流程較為復(fù)雜,如果分段的組立比較多的話,很容易遺漏或出錯(cuò)。裝配計(jì)劃編輯器開(kāi)發(fā)的初衷,除了要將流向?qū)懭肓慵傩酝?,就是把所有的組立流向填寫(xiě)信息都集成在一個(gè)窗口里,并且通過(guò)算法實(shí)現(xiàn)只填當(dāng)前組立流向,自動(dòng)生成下級(jí)組立流向。

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

        (4)生成零件表功能實(shí)現(xiàn)

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

        該功能的基本原理是,通過(guò)引用Excel的組件Microsoft.Office.Interop.Excel實(shí)現(xiàn)在C#中打開(kāi)Excel,并將dataGridView中的數(shù)據(jù)寫(xiě)入Excel,再通過(guò)C#編寫(xiě)方法進(jìn)行處理,最后輸出符合要求的Excel格式文件。

        3.2.5 軟件調(diào)試與異常處理

        (1)軟件調(diào)試

        軟件調(diào)試是軟件開(kāi)發(fā)過(guò)程必不可少的一個(gè)環(huán)節(jié)。對(duì)AM二次開(kāi)發(fā)進(jìn)行調(diào)試,首先要將編譯后的程序放到AM的安裝目錄下,并將程序加載到指定模塊中,比如船體模塊需要通過(guò)HullDesignAddins來(lái)加載。

        Visual Studio提供了編輯器和調(diào)試器進(jìn)行調(diào)試。在使用Visual Studio2017開(kāi)發(fā)C#程序時(shí),編輯器既能為開(kāi)發(fā)者提供代碼編寫(xiě)的各種輔助提示及實(shí)時(shí)編譯等功能,還提供了源代碼快捷修改、重構(gòu)以及語(yǔ)法糾錯(cuò)等操作。通過(guò)Visual Studio2017,可以快速地發(fā)現(xiàn)各種語(yǔ)法錯(cuò)誤,并提示修改建議進(jìn)行快速修正。

        當(dāng)代碼不能正常運(yùn)行時(shí),可以通過(guò)調(diào)試器定位錯(cuò)誤。常用的程序調(diào)試包括:增加斷點(diǎn);開(kāi)始、中斷、停止程序的執(zhí)行;單行代碼執(zhí)行和使程序運(yùn)行到指定的位置。

        (2)異常處理

        在進(jìn)行軟件開(kāi)發(fā)時(shí),既要考慮軟件后期是否能正常運(yùn)行,還要注意編寫(xiě)代碼時(shí)可能出現(xiàn)的筆誤和各種不可預(yù)測(cè)的邏輯錯(cuò)誤。在C#提供的 .NET類庫(kù)中,有處理各種異常情形所設(shè)計(jì)的各種異常類,這些類包含了很多異常的相關(guān)信息。

        3.2.6 軟件交付

        軟件調(diào)試完成后,需交設(shè)計(jì)人員進(jìn)行實(shí)測(cè),修復(fù)完實(shí)測(cè)過(guò)程中暴露出來(lái)缺陷后才可以正式交付,同時(shí)提交軟件開(kāi)發(fā)文檔。

        4 ? ?結(jié)束語(yǔ)

        對(duì)AVEVA MARINE軟件的二次開(kāi)發(fā)是一個(gè)比較復(fù)雜的過(guò)程,特別是一些專業(yè)性較強(qiáng)的軟件,對(duì)開(kāi)發(fā)人員要求更高,既要精通編程語(yǔ)言,又要有相應(yīng)專業(yè)知識(shí)。目前國(guó)內(nèi)許多大中型船廠和設(shè)計(jì)公司都在嘗試組建自己的軟件開(kāi)發(fā)團(tuán)隊(duì),但真正有能力進(jìn)行二次開(kāi)發(fā)的船廠尚不多。

        本文對(duì)AVEVA MARINE 軟件二次開(kāi)發(fā)進(jìn)行了系統(tǒng)論述,并通過(guò)AM二次開(kāi)發(fā)的實(shí)例《自動(dòng)生成零件明細(xì)表》對(duì)整個(gè)開(kāi)發(fā)過(guò)程進(jìn)行了詳細(xì)介紹,希望能夠起到拋磚引玉的效果,為有志于AVEVA MARINE軟件二次開(kāi)發(fā)的同仁提供參考。

        參考文獻(xiàn)

        [1] 明日科技.C#項(xiàng)目開(kāi)發(fā)實(shí)戰(zhàn)入門(mén)[M].吉林:吉林大學(xué)出版社, 2019.

        国产影片中文字幕| 一区二区三区四区在线观看日本| 久久午夜福利电影| 情侣黄网站免费看| 91情侣视频| 久久久亚洲一区二区三区| 草草影院发布页| 欧美大屁股xxxxhd黑色| 色www亚洲| 一道本加勒比在线观看| 久久国产劲爆∧v内射-百度| 国产99久久久久久免费看| 亚洲男人堂色偷偷一区| 国产一区二区三区小向美奈子| 肥老熟妇伦子伦456视频| 国产精品免费久久久久软件| 啪啪网站免费观看| 在线观看国产一区二区av| 艳妇臀荡乳欲伦69调教视频| 国产精品亚洲一区二区无码 | 久久久久人妻精品一区5555| 国产精品国产传播国产三级| 成在线人av免费无码高潮喷水| 中文亚洲av片在线观看不卡| 亚洲一区不卡在线导航| 在线观看午夜视频国产| 精品999日本久久久影院| 国产网站视频| 人妻少妇中文字幕av| 精品无码国产自产在线观看水浒传| 亚洲永久无码7777kkk| 大胸美女吃奶爽死视频| 99久久国内精品成人免费| 日韩人妻无码精品久久免费一| 国产无套视频在线观看香蕉| 在线观看中文字幕不卡二区| 成人爽a毛片免费视频| 亚洲av无码专区亚洲av桃| 国内精品熟女一区二区| 国产成人综合久久久久久| 国产又色又爽无遮挡免费 |