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

        ?

        TRIBON軟件與AM軟件二次開發(fā)方法的比較

        2021-11-12 13:18:29朱安慶
        江蘇船舶 2021年3期

        趙 旭,朱安慶,高 霆

        (1.江蘇現(xiàn)代造船技術(shù)有限公司,江蘇 鎮(zhèn)江 212003;2.江蘇科技大學(xué),江蘇 鎮(zhèn)江 212000)

        0 引言

        20世紀(jì)90年代以來,TRIBON軟件在國(guó)內(nèi)開始被廣泛使用,技術(shù)人員根據(jù)各自的特點(diǎn)和需求進(jìn)行了大量的研究和二次開發(fā)。鄭剛較為系統(tǒng)地闡述了TRIBON軟件二次開發(fā)的原理和方法;譚海蟬等研究了TRIBON軟件精確統(tǒng)計(jì)緊固件的方法。經(jīng)過多年的使用和發(fā)展,TRIBON軟件的二次開發(fā)程序已經(jīng)非常成熟。

        與TRIBON M系列有所不同,AM軟件集成了數(shù)字化三維工廠設(shè)計(jì)系統(tǒng)(PDMS軟件)的精華與TRIBON M3船體設(shè)計(jì)模塊而成的船舶設(shè)計(jì)軟件。AM軟件可以實(shí)現(xiàn)船舶設(shè)計(jì)的建模3D化,相對(duì)于TRIBON是個(gè)巨大的進(jìn)步。隨著船舶建造管理的現(xiàn)代化、高效化,以及生產(chǎn)設(shè)計(jì)內(nèi)容不斷加深,AM軟件開始被廣泛地應(yīng)用。但由于AM軟件二次開發(fā)工作的滯后,導(dǎo)致該軟件在國(guó)內(nèi)船舶企業(yè)的適配性反而不如TRIBON軟件。為此,本文分別介紹了TRIBON軟件和AM軟件的二次開發(fā)方法,重點(diǎn)從開發(fā)語言、建模類二次開發(fā)和出圖類二次開發(fā)分析出兩者的不同之處和相似之處。該研究有利于開發(fā)人員快速地進(jìn)行AM軟件的二次開發(fā)及將TRIBON軟件中出圖類二次開發(fā)程序快速地移植到AM軟件中,使TRIBON軟件升級(jí)到AM軟件具有連貫性。

        1 TRIBON軟件二次開發(fā)方法

        TRIBON軟件二次開發(fā)工具Vitesse是基于Python語言而創(chuàng)建的工具庫(kù)。Python語言配合第三方wxPython工具進(jìn)行Windows友好界面開發(fā),非常適合TRIBON軟件的應(yīng)用與開發(fā)。

        1.1 Vitesse二次開發(fā)方法

        Vitesse提供了許多函數(shù)接口,可以分為裝配計(jì)劃函數(shù)、電氣模型函數(shù)、用戶界面函數(shù)、用戶自定義函數(shù)、數(shù)據(jù)庫(kù)函數(shù)、數(shù)據(jù)抽取函數(shù)、圖紙函數(shù)、船體平面模型函數(shù)、用戶交互函數(shù)、用戶工具函數(shù)、設(shè)備模型函數(shù)、鐵舾模型函數(shù)、管子模型函數(shù)、實(shí)體模型函數(shù)、通用模型函數(shù)、結(jié)構(gòu)模型函數(shù)、船體曲面模型函數(shù)、規(guī)格書函數(shù)、焊接計(jì)劃函數(shù)等。一個(gè)簡(jiǎn)單的Vitesse主要包含3個(gè)部分:①用import關(guān)鍵字調(diào)入模塊;②用def關(guān)鍵字定義方法;③調(diào)用方法運(yùn)行。

        TRIBON提供了交互式的數(shù)據(jù)查詢程序SX700。SX700是數(shù)據(jù)抽取必備的輔助工具,其語法是由一系列的關(guān)鍵字(Keywords)組成的,例如Pipe、Hull、Structure等,第2個(gè)關(guān)鍵字是屬性,后面不同的類型有不同的關(guān)鍵字,關(guān)鍵字之間通過“.”分隔符連接,有些關(guān)鍵字后面會(huì)有一些參數(shù)(Arguments),參數(shù)中支持通配符模糊查詢。

        使用SX700查看和分析結(jié)果后,將合適的抽取命令引用到其他編程語言中。SX700.exe位于TRIBON安裝目錄的bin文件夾下,可以直接運(yùn)行。

        wxPython是Python語言一套GUI圖形庫(kù),運(yùn)行Python可以創(chuàng)建完整的、功能健全的GUI用戶界面。wxPython程序有5個(gè)基本步驟:

        (1)導(dǎo)入必須的wxPython包。

        (2)子類化wxPython應(yīng)用程序類。

        (3)定義一個(gè)應(yīng)用程序的初始方法。

        (4)創(chuàng)建一個(gè)應(yīng)用程序類的實(shí)例。

        (5)進(jìn)入這個(gè)應(yīng)用程序的主事件。

        利用Vitesse API和SX700輔助工具進(jìn)行py文件的編寫,就可以進(jìn)行TRIBON軟件的二次開發(fā)。

        1.2 COM二次開發(fā)方法

        TRIBON也可以利用自身軟件的COM接口進(jìn)行數(shù)據(jù)的抽取、項(xiàng)目的選擇和圖紙的打印等功能。利用COM接口進(jìn)行二次開發(fā)的優(yōu)點(diǎn)是能夠脫離TRIBON單獨(dú)運(yùn)行,可以用C、C++、VB、C#等語言進(jìn)行編程,且可以用更好的IDE和更多的第三方工具,缺點(diǎn)則是無法對(duì)模型進(jìn)行編輯和修改。

        2 AM軟件二次開發(fā)方法

        AM軟件的二次開發(fā)根據(jù)編程平臺(tái)可以分為兩類:AM軟件提供的PML(Programmable Macro Language)和.NET平臺(tái)的開發(fā)語言,如C#等。

        2.1 PML二次開發(fā)方法

        PML是直接在軟件平臺(tái)上執(zhí)行的解釋性語言,是AVEVA公司使用的定制語言,可以使PML將二次開發(fā)程序在AVEVA系列的軟件中無需編譯即可運(yùn)行。PML的文件類型共有3種,分別為函數(shù)文件functions(后綴名為.pmlfnc)、窗體文件forms(后綴名為.pmlfrm)和對(duì)象文件objects(后綴名為.pmlobj)。PML程序文件的后綴名必須是小寫。

        Functions文件用來定義全局變量,以define function開頭、endfunciton結(jié)尾。如:定義一個(gè)全局變量!!Area的函數(shù),其文件名為!!Area.pmlfnc,返回值為real類型,通過PML進(jìn)行編寫,并在AM軟件CommandWindow中運(yùn)行。

        Objects對(duì)象文件用來定義全局的對(duì)象。對(duì)象可定義多個(gè)成員屬性和方法,類似于現(xiàn)代面向?qū)ο笳Z言中對(duì)象類的概念,如:定義了一個(gè)PANEAREA的對(duì)象,可擁有l(wèi)ength、width、area 3個(gè)屬性。

        Forms窗體文件可用來定義界面,利用AM內(nèi)置的控件,可編寫出與用戶友好的界面,不用編譯,直接在AM軟件中運(yùn)行即可。其結(jié)構(gòu)形式為setup form開頭,以exit結(jié)尾。

        AM軟件中內(nèi)置了很多控件,包括按鈕、下拉菜單、列表、文字、單選框、勾選框、輸入框等,可以通過PML二次開發(fā)調(diào)用。

        AM軟件的PML編程方法有以下優(yōu)點(diǎn):

        (1)語法簡(jiǎn)單易懂,具備現(xiàn)代編程語言的大部分功能。

        (2)可以與AM軟件無縫銜接,直接在AM軟件中調(diào)試。

        (3)AM軟件中有很多PML開源的文件,可供參考。

        同時(shí),PML也有比較明顯的缺點(diǎn):

        (1)雖然有UE作為編輯器使用,但是其提示和輔助功能較弱。

        (2)PML在設(shè)計(jì)窗體界面時(shí),全靠代碼輸入,需要多次調(diào)試才能達(dá)到滿意的效果。

        (3)目前沒有完整的幫助文檔,只能通過查閱開發(fā)的源碼去尋找是否有想要的方法。

        2.2 .NET二次開發(fā)方法

        除了PML,AM軟件還引入了對(duì).NET技術(shù)的支持,開發(fā)人員可以在PML程序中直接調(diào)用.NET程序,也可以在.NET程序中調(diào)用PML代碼。此外,AM軟件提供了一系列的.NET API,使開發(fā)人員可以直接引用相關(guān)的動(dòng)態(tài)庫(kù)后直接使用API進(jìn)行C#編程。AM軟件提供的API覆蓋了絕大部分的功能實(shí)現(xiàn),并且.NET開發(fā)的界面可以直接加載到AM軟件的窗口中,因此開發(fā)者也可以完全使用C#進(jìn)行編程。其主要步驟如下:

        (1)生成動(dòng)態(tài)庫(kù)。在visual studio 2010(或以上版本)中創(chuàng)建新的項(xiàng)目,在模板中選擇類庫(kù),框架選擇.NET Framework 3.5,引用 Aveva.ApplicationFramework.dll和Aveva.ApplicaitonFramework.Presentation.dll,用using關(guān)鍵字導(dǎo)入命名空間Aveva.ApplicationFramework和Aveva.ApplicationFramework.Presentation。新建類繼承IAddin接口,并定義IAddin接口2個(gè)必須要定義的方法Start()和Stop():在Start()方法中傳遞ServiceManager實(shí)例,通過GetService的方法來獲取WindowManager的功能,并使用WindowManager和CreateDockedWindow方法創(chuàng)建1個(gè)浮動(dòng)窗口來放置新界面,加載新插件繼承Aveva.ApplicationFramework.Presentation中的Command類,定義base.Key的值,通過重寫Execute()方法來控制插入的控件。

        (2)動(dòng)態(tài)庫(kù)安裝目錄:將VS編譯后的DLL文件放置到AM軟件默認(rèn)的路徑下。

        (3)添加插件信息:定義AM軟件的插件控制文件,如Marine Drafting模塊控制文件為marinedraftingaddins.xml,將DLL名加入到XML文件中。

        (4)自定義插件的菜單或命令欄:在C:AVEVAMarineOH12.1.SP4路徑下新建1個(gè)UIC格式的文件,如取名為MyAddin,用于在AM軟件中定義工具條時(shí)使用,并將新建的UIC文件注冊(cè)到對(duì)應(yīng)模塊的自定義文件中即可完成注冊(cè)。

        AM軟件預(yù)留了很多接口供開發(fā)人員對(duì)數(shù)據(jù)庫(kù)、模型庫(kù)、幾何庫(kù)、功能庫(kù)、圖形庫(kù)等進(jìn)行開發(fā)。其主要的接口如下:

        (1)Aveva.Pdms.Database。這是最常用的接口之一,用于對(duì)數(shù)據(jù)的獲取和編輯。這個(gè)命名空間下有許多類供開發(fā)者使用:DbElement、DbElementType、DatabaseService、Db、DbCollection、DBAttribute、MDB等。

        (2)Aveva.Pdms.Shared。這個(gè)命名空間下有一個(gè)使用率高的類“CurrentElement.Element”,用來獲取當(dāng)前選擇的元素,返回值為DbElement實(shí)例。

        (3)Aveva.Marine.UI。這個(gè)命名空間下主要是與用戶交互的類,其中“MarUi”是最常用的類,Marine Drafting模塊中內(nèi)置的對(duì)話框都在這個(gè)類中。此外,該類還提供了即時(shí)刷新圖紙的方法。

        (4)Aveva.Marine.Geometry。這個(gè)命名空間下提供了平面出圖工作的所有類對(duì)象,包括平面圓弧、平面畫圓、平面直線、平面點(diǎn)、平面多邊形、平面多段線、平面移動(dòng)、平面向量和方向等。

        (5)Aveva.Marine.Drafting。這個(gè)命名空間是畫圖類開發(fā)最主要的命名空間,提供了對(duì)畫圖工作的各類操作,其中:MarDrafting類是畫圖工作必須要使用的類,包含了所有畫圖的操作方法,如所有圖形的創(chuàng)建、對(duì)子圖和圖層的操作、對(duì)圖形元素的識(shí)別和獲取、對(duì)圖紙的操作等。此外,MarColour、MarCursorType、MarElementHandle、MarHightlightSet、MarLinetype、MarModel、MarPrintOption、MarSymbol、MarText等類也是出圖類開發(fā)必須要用到的類。

        綜上,AM軟件在.NET平臺(tái)上的二次開發(fā)流程為:VS進(jìn)行代碼編寫→生成DLL文件→添加至AM軟件配置文件→在AM界面中配置二次開發(fā)按鈕→運(yùn)行二次開發(fā)程序。

        3 TRIBON軟件與AM軟件的二次開發(fā)方法對(duì)比

        3.1 TRIBON與AM二次開發(fā)平臺(tái)的對(duì)比

        TRIBON軟件可以用Python和.NET 2種平臺(tái)的語言。.NET平臺(tái)只能對(duì)數(shù)據(jù)進(jìn)行讀取和操作,而無法對(duì)TRIBON軟件的模型進(jìn)行修改。Python和Vitesse可以編寫TRIBON所有功能的二次開發(fā),但是wxPython的界面設(shè)計(jì)效率較低,且TRIBON軟件最高只支持Python2.3的較低版本。AM軟件可以用PML和.NET 2種平臺(tái)的語言。雖然是AM軟件內(nèi)置的語言,但是PML是小眾語言,且PML做界面與wxPython一樣效率較低。而AM軟件的.NET平臺(tái)的開發(fā)很強(qiáng)大,界面可以用visual studio來完成,并且.NET平臺(tái)有非常多的第三方資源可以使用。

        3.2 TRIBON軟件與AM軟件的二次開發(fā)方法的對(duì)比

        3.2.1 建模類的二次開發(fā)

        TRIBON軟件并未開放數(shù)據(jù)結(jié)構(gòu),因此建模類二次開發(fā)只能根據(jù)TRIBON提供的方法參數(shù)去進(jìn)行開發(fā);而AM各種類型的數(shù)據(jù)屬性都是開放的,可以用面向?qū)ο蟮倪壿媽傩再x值進(jìn)行二次開發(fā)。

        3.2.2 出圖類的二次開發(fā)

        由于AM軟件的Marine Drafting模塊是從TRIBON軟件的Drafting模塊移植的,兩者界面和操作基本一致,開發(fā)的方法也有類似之處;TRIBON軟件出圖類的方法都是以kcs_draft開頭。以新建圖紙調(diào)入模型的的方法為例:

        (1)插入模塊import kcs_draft。

        (2) 創(chuàng)建圖紙dwg_new。參數(shù)有3個(gè):第1個(gè)“DwgName”圖紙名稱是必須的參數(shù),第2個(gè)“FormName”圖框名稱和第3個(gè)“DwgType”圖紙類型不是必填的參數(shù)。

        (3)創(chuàng)建視圖view_new。參數(shù)有3個(gè):第1個(gè)“ViewName”視圖名稱是必須的參數(shù),第2個(gè)“Uvect”和“Vvect” 2個(gè)視向參數(shù)不是必填的參數(shù)。

        (4)定義模型KcsModel.Model。有2個(gè)必須的參數(shù):第1個(gè)“Type”是模型的類型,第2個(gè)“Name”是模型的名字。

        (5)調(diào)入模型model_draw。參數(shù)有2個(gè):第1個(gè)必須的參數(shù)“model”是第3步定義的模型類;第2個(gè)非必須的參數(shù)“viewhandle”是第2步創(chuàng)建視圖的返回值。

        AM軟件的.NET平臺(tái)出圖類二次開發(fā)與TRIBON軟件上方的示例在方法內(nèi)容上十分類似。AM軟件中出圖的方法都在Aveva.Marine.Drafting命名空間中。同樣以新建圖紙調(diào)入模型的的方法為例:

        (1)引用和實(shí)例化。引用類庫(kù)using Aveva.Marine.Drafting,實(shí)例化MarDrafting marDrafting = new MarDrafting()。

        (2)創(chuàng)建圖紙DwgNew。第1個(gè)參數(shù)“dwgName”是圖名,重載的方法中第2個(gè)參數(shù)“formName”是圖框名,第3個(gè)參數(shù)“DwgType”則是圖紙類型。

        (3)創(chuàng)建視圖ViewNew。第1個(gè)參數(shù)“ViewName”是視圖名,重載的方法中第2個(gè)參數(shù)“Uvect”和第3個(gè)參數(shù)“Vvect”是視圖的2個(gè)方向。

        (4)定義模型MarModel。有2個(gè)必須的參數(shù),分別是“Type”模型類型和“Name”模型名。

        (5)調(diào)入模型ModelDraw。參數(shù)有2個(gè):第1個(gè)

        必須的參數(shù)“model”是第3步定義的模型類,第2個(gè)非必須的參數(shù)“viewhandle”是第2步創(chuàng)建視圖的返回值。

        4 結(jié)論

        (1)TRIBON軟件與AM軟件二次開發(fā)相比,TRIBON軟件的開發(fā)語言版本更低。在界面設(shè)計(jì)時(shí):TRIBON軟件的效率和資源遠(yuǎn)低于AM軟件;AM軟件可使用visual studio和第三方資源,使二次開發(fā)更加快速、功能更加強(qiáng)大、調(diào)試編譯更加方便。

        (2)TRIBON軟件建模方面的二次開發(fā)只能根據(jù)幫助文檔中的方法和說明進(jìn)行編寫,相比AM軟件可面向?qū)ο蟮臄?shù)據(jù)屬性進(jìn)行二次開發(fā)而言,TRIBON軟件則相對(duì)比較復(fù)雜和低效。

        (3)出圖類的二次開發(fā)方面,TRIBON軟件和AM軟件基本在原理和思路上是一樣的,僅僅是函數(shù)名有所不同。隨著TRIBON軟件逐漸升級(jí)為AM軟件,TRIBON軟件大量成熟的出圖類二次開發(fā)程序可以快速地移植到AM軟件中,使TRIBON軟件升級(jí)到AM軟件具有連貫性。

        黄色a级国产免费大片| 国产午夜免费啪视频观看| 日韩精品无码一区二区三区| 国产三级精品三级在线观看| 美女啪啪国产| 精品国产一品二品三品| 国产麻豆久久av入口| 成年女人免费视频播放体验区| 99re6热在线精品视频播放6| 视频女同久久久一区二区三区| 国产中文字幕亚洲精品| 精品国产麻豆免费人成网站| 最新亚洲av日韩av二区| 精品国产你懂的在线观看| 亚洲黄色av一区二区三区| 久久久亚洲精品一区二区三区| 亚洲av日韩精品久久久久久 | 亚洲AV乱码毛片在线播放| 国产一区二区熟女精品免费| 风情韵味人妻hd| 国产裸体歌舞一区二区| bbbbbxxxxx欧美性| 国产极品大奶在线视频| 成 人 免费 在线电影| 水蜜桃久久| 免费看男女啪啪的视频网站 | 日本午夜a级理论片在线播放| 亚洲午夜av久久久精品影院色戒 | 亚洲视频1区| 麻豆视频在线观看免费在线观看| 综合图区亚洲另类偷窥| 欧美jizzhd精品欧美| 色噜噜狠狠色综合欧洲| 一级一片内射视频网址| 免费观看羞羞视频网站| 欧美日本亚洲国产一区二区| 一区二区三区精彩视频在线观看| 激情综合五月| 性欧美大战久久久久久久久| 好爽~又到高潮了毛片视频| 国内嫩模自拍偷拍视频|