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

        ?

        AVEVA Marine結(jié)構(gòu)零件名標(biāo)注二次開發(fā)設(shè)計

        2023-02-22 06:43:20馮建明
        關(guān)鍵詞:二次開發(fā)按鈕程序

        馮建明,趙 銳

        (上海中遠(yuǎn)船務(wù)工程有限公司,上海 200231)

        0 引言

        在船舶結(jié)構(gòu)生產(chǎn)設(shè)計中,零件名標(biāo)注是非常重要的一環(huán)。由于船舶分段零件眾多,零件名標(biāo)注工作具有繁瑣、重復(fù)性強、工作量大等特點,往往會占用生產(chǎn)設(shè)計工程師大量的時間和精力[1]。由于每個人的出圖習(xí)慣不同,單憑手工操作難以保持圖面樣式統(tǒng)一,質(zhì)量也很難得到保證。若能采用程序?qū)崿F(xiàn)自動化,則可以在一定程度上降低出錯率,改善圖紙的出圖質(zhì)量。

        目前,使用比較廣泛的船舶生產(chǎn)設(shè)計軟件主要包括TRIBON M3和AVEVA Marine(AM),AM作為TRIBON M3的升級版本,具有更加強大的功能和友好的界面。然而,目前AM軟件的二次開發(fā)功能仍需完善。以零件號標(biāo)注功能為例,雖然程序自帶相關(guān)功能,但標(biāo)注的信息樣式較簡單,操作較不便,返工率較高。因此,進(jìn)行AVEVA Marine結(jié)構(gòu)零件名標(biāo)注二次開發(fā)設(shè)計十分必要。

        本文基于船舶主流設(shè)計軟件 AVEVA Marine(AM),使用 C#語言針對零件名的標(biāo)注進(jìn)行二次開發(fā)設(shè)計,以期降低出錯率,改善出圖質(zhì)量。

        1 程序開發(fā)思路

        為方便用戶進(jìn)行自定義開發(fā),AM 提供了Vitesse、PML、.Net等二次開發(fā)接口和工具,并內(nèi)置了豐富的類庫[2-3]。本文采用.Net二次開發(fā)接口,基于C#語言編程,編譯環(huán)境為Visual Studio 2017。

        1.1 AM 零件名的命名規(guī)則

        零件名標(biāo)注要有一套統(tǒng)一的命名規(guī)則,這是后期程序讀取零件名信息的前提。在AM程序中,控制零件命名的環(huán)境變量有 2個,分別為TB_PARTNAME_CTRL和TB_PARTNAME_LEVEL,TB_PARTNAME_CTRL定義不同的命名組,AM至少需要FULL和SHORT這2個命名組,以便對應(yīng)零件的長名和短名。TB_PARTNAME_LEVEL定義同一零件在不同場合中命名組的應(yīng)用情況。本文二次開發(fā)使用FULL命名組,其名字一般由3部分組成,如BLOCK-PANEL-PART,其中,BLOCK代表分段名,PANEL代表組立名或板架名,PART代表零件名。

        1.2 程序基本功能

        根據(jù)生產(chǎn)設(shè)計的出圖模式,零件名的標(biāo)注樣式見圖 1。零件名標(biāo)注樣式包括引出點、引出線和零件名擺放位置線。零件名擺放位置線只有水平和垂直2種方位,以位置線為界共有2部分信息:1)零件名,用戶在使用過程中可根據(jù)需要選擇是否包括分段名信息;2)零件的大小、材質(zhì)、規(guī)格等特征信息。

        圖1 零件名標(biāo)注樣式

        不同類型的零件需要標(biāo)注的特征信息不同:

        1)型材和立柱需要標(biāo)注規(guī)格和材質(zhì)。

        2)肘板要標(biāo)注大小、厚度、材質(zhì)、折邊尺寸。

        3)板材、補板和墊板要標(biāo)注厚度和材質(zhì)。

        4)面板要標(biāo)注規(guī)格、材質(zhì)和安裝形式。

        1.3 程序使用

        程序的使用方法越簡單越好,導(dǎo)出剖視圖后,點擊命令,提示用戶選擇要標(biāo)注的零件,然后點擊擺放位置和擺放方向即可完成一個零件的標(biāo)注。為提高標(biāo)注效率,在一個零件標(biāo)注完成后會繼續(xù)進(jìn)入到下一個零件的標(biāo)注工作中,直到用戶選擇中止命令才結(jié)束流程。

        2 主程序編寫

        2.1 模型選取

        模型選取步驟引導(dǎo)用戶點擊零件模型,并判斷用戶點擊的位置是否為有效模型。若是,則繼續(xù)進(jìn)行下一步驟;若不是,則提示用戶重新點擊,直到用戶點擊到有效模型或退出按鈕為止。模型選取步驟需要用到 Aveva.Marine.Geometry命名空間下的MarModel功能,包括 Name、PartId、PartType、ReflCode等屬性。其中,Name表示板架名稱,PartId表示零件的內(nèi)部代號,PartType表示零件類型,RefCode表示鏡像信息。若某板架左右對稱,則板架創(chuàng)建側(cè)的RefCode為0,鏡像側(cè)為1。

        2.2 抽取信息

        抽取信息步驟需要進(jìn)一步提取零件名標(biāo)注所需的有用信息并進(jìn)行加工,得到圖紙需要呈現(xiàn)出的數(shù)據(jù)。該步驟需要使用 Aveva.Marine.DataExtraction命名空間下的MarDex功能,在創(chuàng)建相應(yīng)實例后,就可將MarModel模型的屬性值作為輸入條件進(jìn)行數(shù)據(jù)抽取。MarDex功能的抽取流程如下:

        1)構(gòu)建抽取命令語句,如 HULL.PAN(‘B01-GR0B’).BRA(1001).PART_ID.SHO為提取板架名為B01-GR0B,PartId為1001的肘板零件的命令語句。

        2)運用Extract函數(shù)進(jìn)行抽取。若Extract的返回值為 0,則表示抽取成功;若返回其他數(shù)值,則表示抽取失敗。

        3)運用NextResult函數(shù)獲得抽取到的數(shù)據(jù)類型。

        4)根據(jù)NextResult函數(shù)的返回值,調(diào)用具體函數(shù),獲得抽取值,并賦值給相關(guān)的參數(shù)。

        NextResult函數(shù)的返回值及需要調(diào)用的函數(shù)情況見表1。

        表1 NextResult函數(shù)返回值及調(diào)用函數(shù)

        本步驟主要抽取的屬性有零件名、板厚、規(guī)格和材質(zhì),對應(yīng)的抽取關(guān)鍵字為PART_ID、THI、DESI和QUA。提取完數(shù)據(jù)后,零件名屬性作為第一行信息,其他屬性為第二行信息,2行信息通過“/n”連接符組合為一個字符串并輸出,以便后續(xù)步驟使用。

        2.3 圖面標(biāo)注

        本步驟主要用于輸出標(biāo)注信息及輔助線,以模型選取步驟中的點為起始點,引導(dǎo)用戶依次點擊 1個擺放點和1個方向點即可完成零件名的標(biāo)注。可通過比較方向點與擺放點在x和y兩個方向上坐標(biāo)值差值的絕對值來判斷零件擺放方向。若x坐標(biāo)差值的絕對值較大,則表示零件為水平擺放。文字分隔線的長度由上、下兩行文字的長度確定。若不想顯示分段名,僅需將首個“-”標(biāo)注信息隱去即可。本步驟主要用到Aveva.Marine.Drafting命名空間下的MarDrafting功能和Aveva.Marine.Geometry命名空間下的MarContourPlanar功能。MarDrafting功能用于輸出線段和文字等信息,MarContourPlanar功能用于構(gòu)建輔助線段。

        2.4 程序流程圖

        AVEVA Marine結(jié)構(gòu)零件名標(biāo)注二次開發(fā)設(shè)計程序流程圖見圖2。

        圖2 程序流程圖

        3 程序框架及加載

        要將二次開發(fā)程序應(yīng)用到AM中,需要設(shè)計1個可視化框架,并經(jīng)過編譯及程序配置等步驟。

        3.1 通用程序框架

        通用程序框架是AM提供給程序員使用編程軟件開發(fā)各種插件的擴展框架,可理解為編程軟件程序和 AM 之間的連接紐帶。其基本功能由Aveva.AppliationFramework.dll和Aveva.Appliation Framework.Presentation.dll組件提供。

        3.2 命令類

        用戶在使用插件時,通常點擊菜單欄或工具條上的按鈕,在彈出的插件窗口中進(jìn)行后續(xù)操作。命令類是指繼承 Aveva.ApplicationFramework.Presentation命名空間的Command基類。命令類需要定義1個窗口成員以便為基類的Key屬性賦值,AM可通過賦值大小追蹤相應(yīng)命令類。此外,命令類還需要具有實現(xiàn)基類的Execute()方法,每點一下命令插件按鈕,就會執(zhí)行一次Execute()方法,并顯示窗口成員。

        3.3 插件窗口類

        插件窗口類為插件的工作界面,用戶的最終操作要在插件窗口類中完成。插件窗口類是通過添加C#用戶控件來創(chuàng)建的。

        3.4 IAddin接口

        IAddin是Aveva.AppliationFramework命名空間下的一個虛接口,在編寫插件時需要類繼承文件來實現(xiàn)此接口。在AM程序加載和啟動插件時,會啟動該插件IAddin接口的實現(xiàn)類,創(chuàng)建該類的實例并調(diào)用其運行入口。

        3.5 模塊文件

        在二次開發(fā)程序編譯通過后,項目的 DEBUG文件夾下會自動生成1個dll后綴名的動態(tài)鏈接庫文件,這是二次開發(fā)的執(zhí)行程序文件。要在AM的啟動時加載該程序,將插件加載文件與二次開發(fā)執(zhí)行程序關(guān)聯(lián)。配置文件的文件名格式為<模塊名>Addins.xml,其內(nèi)容如下所示:

        每個之間的字符串均代表1個二次開發(fā)程序,其通常保持在默認(rèn)的路徑下。若插件沒有保存在默認(rèn)路徑下,則要在文件名前給出完整的存放路徑。

        3.6 自定義菜單

        在二次開發(fā)程序加載后,還需要設(shè)置自定義菜單才能將程序中的命令展示出來。右擊工具欄的任意位置,選擇Customize會彈出自定義菜單窗口。在窗口的中間欄新建一個按鈕,并將按鈕的Command屬性值指向二次開發(fā)程序命令類的 Key值,最后將新建的按鈕添加到左邊欄的 Command Bars或者M(jìn)enubar中。在設(shè)置全部完成后,可點擊按鈕執(zhí)行相關(guān)的命令。

        4 結(jié)論

        本文基于船舶主流設(shè)計軟件 AVEVA Marine(AM),使用 C#語言針對零件名的標(biāo)注進(jìn)行二次開發(fā)設(shè)計。研究表明:二次開發(fā)程序簡單方便,標(biāo)注內(nèi)容清晰明了,彌補了原程序的不足。本文的開發(fā)方法具備通用性,可為后續(xù)其他功能的開發(fā)提供一定借鑒。

        猜你喜歡
        二次開發(fā)按鈕程序
        哪個是門鈴真正的按鈕
        當(dāng)你面前有個按鈕
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        試論我國未決羈押程序的立法完善
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        內(nèi)心不能碰的按鈕
        激情综合五月| 欧美片欧美日韩国产综合片| 一级午夜理论片日本中文在线| 中文字幕隔壁人妻欲求不满| 欧美熟妇性xxx交潮喷| 免费特级黄毛片| 亚洲色无码中文字幕| 久亚洲精品不子伦一区| 狂野欧美性猛xxxx乱大交| 无码人妻精品一区二区三18禁| 亚洲av午夜成人片精品| 国产一级黄色片在线播放| 精品国产免费一区二区三区 | 亚洲av无码1区2区久久| 亚洲国产精品久久久性色av| 久久精品国产亚洲av沈先生| 邻居少妇张开腿让我爽了一夜| 国产精品免费精品自在线观看| 老熟妇Av| 精品久久中文字幕一区| 亚洲一区二区三区影院| 无套内谢孕妇毛片免费看看| 亚洲精品国产熟女久久| 精品久久久少妇一区二区| 伊人久久久精品区aaa片| 中文字幕在线观看国产双飞高清| 国产一区二区杨幂在线观看性色| 欧美黑人又粗又大xxxx| 粗了大了 整进去好爽视频| 亚洲av熟女天堂系列| 中文字幕av高清人妻| 成人三级a视频在线观看| 久久久精品456亚洲影院| 中文字幕人妻精品一区| 日韩精品极品视频在线观看免费| 国产伦精品一区二区三区视| 北岛玲亚洲一区二区三区 | 国产精品视频露脸| 国产乱人伦真实精品视频| 久草中文在线这里只有精品| 人妻无码一区二区不卡无码av|