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

TRIBON軟件與AM軟件二次開發方法的比較

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

趙 旭,朱安慶,高 霆

(1.江蘇現代造船技術有限公司,江蘇 鎮江 212003;2.江蘇科技大學,江蘇 鎮江 212000)

0 引言

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

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

1 TRIBON軟件二次開發方法

TRIBON軟件二次開發工具Vitesse是基于Python語言而創建的工具庫。Python語言配合第三方wxPython工具進行Windows友好界面開發,非常適合TRIBON軟件的應用與開發。

1.1 Vitesse二次開發方法

Vitesse提供了許多函數接口,可以分為裝配計劃函數、電氣模型函數、用戶界面函數、用戶自定義函數、數據庫函數、數據抽取函數、圖紙函數、船體平面模型函數、用戶交互函數、用戶工具函數、設備模型函數、鐵舾模型函數、管子模型函數、實體模型函數、通用模型函數、結構模型函數、船體曲面模型函數、規格書函數、焊接計劃函數等。一個簡單的Vitesse主要包含3個部分:①用import關鍵字調入模塊;②用def關鍵字定義方法;③調用方法運行。

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

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

wxPython是Python語言一套GUI圖形庫,運行Python可以創建完整的、功能健全的GUI用戶界面。wxPython程序有5個基本步驟:

(1)導入必須的wxPython包。

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

(3)定義一個應用程序的初始方法。

(4)創建一個應用程序類的實例。

(5)進入這個應用程序的主事件。

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

1.2 COM二次開發方法

TRIBON也可以利用自身軟件的COM接口進行數據的抽取、項目的選擇和圖紙的打印等功能。利用COM接口進行二次開發的優點是能夠脫離TRIBON單獨運行,可以用C、C++、VB、C#等語言進行編程,且可以用更好的IDE和更多的第三方工具,缺點則是無法對模型進行編輯和修改。

2 AM軟件二次開發方法

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

2.1 PML二次開發方法

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

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

Objects對象文件用來定義全局的對象。對象可定義多個成員屬性和方法,類似于現代面向對象語言中對象類的概念,如:定義了一個PANEAREA的對象,可擁有length、width、area 3個屬性。

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

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

AM軟件的PML編程方法有以下優點:

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

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

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

同時,PML也有比較明顯的缺點:

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

(2)PML在設計窗體界面時,全靠代碼輸入,需要多次調試才能達到滿意的效果。

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

2.2 .NET二次開發方法

除了PML,AM軟件還引入了對.NET技術的支持,開發人員可以在PML程序中直接調用.NET程序,也可以在.NET程序中調用PML代碼。此外,AM軟件提供了一系列的.NET API,使開發人員可以直接引用相關的動態庫后直接使用API進行C#編程。AM軟件提供的API覆蓋了絕大部分的功能實現,并且.NET開發的界面可以直接加載到AM軟件的窗口中,因此開發者也可以完全使用C#進行編程。其主要步驟如下:

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

(2)動態庫安裝目錄:將VS編譯后的DLL文件放置到AM軟件默認的路徑下。

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

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

AM軟件預留了很多接口供開發人員對數據庫、模型庫、幾何庫、功能庫、圖形庫等進行開發。其主要的接口如下:

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

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

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

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

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

綜上,AM軟件在.NET平臺上的二次開發流程為:VS進行代碼編寫→生成DLL文件→添加至AM軟件配置文件→在AM界面中配置二次開發按鈕→運行二次開發程序。

3 TRIBON軟件與AM軟件的二次開發方法對比

3.1 TRIBON與AM二次開發平臺的對比

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

3.2 TRIBON軟件與AM軟件的二次開發方法的對比

3.2.1 建模類的二次開發

TRIBON軟件并未開放數據結構,因此建模類二次開發只能根據TRIBON提供的方法參數去進行開發;而AM各種類型的數據屬性都是開放的,可以用面向對象的邏輯屬性賦值進行二次開發。

3.2.2 出圖類的二次開發

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

(1)插入模塊import kcs_draft。

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

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

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

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

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

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

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

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

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

(5)調入模型ModelDraw。參數有2個:第1個

必須的參數“model”是第3步定義的模型類,第2個非必須的參數“viewhandle”是第2步創建視圖的返回值。

4 結論

(1)TRIBON軟件與AM軟件二次開發相比,TRIBON軟件的開發語言版本更低。在界面設計時:TRIBON軟件的效率和資源遠低于AM軟件;AM軟件可使用visual studio和第三方資源,使二次開發更加快速、功能更加強大、調試編譯更加方便。

(2)TRIBON軟件建模方面的二次開發只能根據幫助文檔中的方法和說明進行編寫,相比AM軟件可面向對象的數據屬性進行二次開發而言,TRIBON軟件則相對比較復雜和低效。

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

主站蜘蛛池模板: 欧美日韩免费| 99这里精品| 亚洲h视频在线| 色天天综合久久久久综合片| 丰满人妻一区二区三区视频| 54pao国产成人免费视频 | 国产00高中生在线播放| 久久无码av一区二区三区| 国产素人在线| 久久国产亚洲欧美日韩精品| 日本高清免费不卡视频| 亚洲天堂视频网站| 色欲国产一区二区日韩欧美| 国产精品亚洲欧美日韩久久| 久久综合成人| 亚洲愉拍一区二区精品| 日韩中文精品亚洲第三区| 日本久久网站| 69精品在线观看| 日韩一区精品视频一区二区| 婷婷综合亚洲| 亚洲第一网站男人都懂| 国产色婷婷| 国产亚洲精品资源在线26u| 国产午夜精品一区二区三| 69av免费视频| 亚洲色图另类| 亚洲精品va| 在线观看免费人成视频色快速| 国产成人免费视频精品一区二区| 国产白浆在线观看| m男亚洲一区中文字幕| 亚洲美女一区| 婷婷午夜影院| 日韩免费无码人妻系列| 成人免费午间影院在线观看| 国产成人av大片在线播放| 国产激情在线视频| 日韩在线视频网| 亚洲欧美不卡| 国产精品无码一二三视频| 亚洲视频在线青青| 日韩AV无码免费一二三区| 国产高清无码第一十页在线观看| 午夜激情婷婷| 青青草欧美| 人妻一本久道久久综合久久鬼色| 国产精品视频观看裸模| 小说 亚洲 无码 精品| 91精品国产无线乱码在线| 亚洲一区二区约美女探花| 国产精品专区第一页在线观看| 在线不卡免费视频| 欧美日韩国产系列在线观看| A级全黄试看30分钟小视频| 欧美精品一区二区三区中文字幕| 91福利在线观看视频| www.99精品视频在线播放| 亚洲国产精品日韩欧美一区| 国产精品第三页在线看| 老熟妇喷水一区二区三区| 亚洲AV无码乱码在线观看裸奔| 亚洲女同欧美在线| 国产91丝袜| 国产成人夜色91| 国产黄色免费看| 欧美日韩成人在线观看| 中文国产成人久久精品小说| 亚洲AV无码一区二区三区牲色| 亚洲精品中文字幕午夜| 亚洲欧美精品日韩欧美| 91在线国内在线播放老师| 免费看a级毛片| 天堂中文在线资源| 91久久天天躁狠狠躁夜夜| 97免费在线观看视频| 老司机精品99在线播放| 青青网在线国产| 黄色免费在线网址| 中文字幕乱妇无码AV在线| 亚洲av无码成人专区| 天天躁夜夜躁狠狠躁图片|