• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于.NET的NX Open開發(fā)技術(shù)研究

    2015-12-31 11:06:20李如忠
    機(jī)械工程與自動(dòng)化 2015年4期
    關(guān)鍵詞:草圖二次開發(fā)對(duì)話框

    李如忠

    (中國(guó)工程物理研究院 電子工程研究所,四川 綿陽(yáng) 621900)

    0 引言

    NX二次開發(fā)是在原來軟件的基礎(chǔ)上,結(jié)合具體的應(yīng)用需求,總結(jié)行業(yè)的設(shè)計(jì)知識(shí)和經(jīng)驗(yàn),開發(fā)面向行業(yè)和設(shè)計(jì)流程的應(yīng)用程序和工具。NX Open for.NET是西門子公司針對(duì)NX二次開發(fā)推出的基于微軟.NET框架的開放式開發(fā)工具包,它可以使用.NET支持的任何語(yǔ)言進(jìn)行開發(fā),可以充分利用微軟可視化.NET的開發(fā)環(huán)境,以及所有Visual Studio集成開發(fā)環(huán)境(IDE)的功能,所以,在 Windows平臺(tái)上對(duì)NX進(jìn)行二次開發(fā),優(yōu)先考慮使用NX Open for.NET開發(fā)工具包。該開發(fā)工具包既可以采用基于.NET的NX Open,也可以采用通過.NET類封裝的Open API,Open API是NX早期基于C語(yǔ)言的二次開發(fā)工具包。NX Open for.NET支持任何面向?qū)ο蟮恼Z(yǔ)言,如C++、VB.NET、C#、Java等,而C#是專門用于.NET開發(fā)的一種面向?qū)ο蟮恼Z(yǔ)言,其是一種簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖愋头浅0踩呐缮贑和C++的編程語(yǔ)言,其設(shè)計(jì)與現(xiàn)代開發(fā)工具的適應(yīng)性比其他語(yǔ)言更高,同時(shí)C#具有Visual Basic的易用性、高性能以及C++的低級(jí)內(nèi)存訪問性。所以,在NX Open for.NET的開發(fā)中,C#應(yīng)該是首選語(yǔ)言。

    1 NX Open for.NET開發(fā)方法

    1.1 功能程序的實(shí)現(xiàn)

    對(duì)于NX的二次開發(fā)一般是在NX基本功能的基礎(chǔ)上增加輸入、輸出界面,使用編程的方式調(diào)用NX的基本功能函數(shù)完成多步或重復(fù)性的工作。二次開發(fā)的功能程序就是實(shí)現(xiàn)在NX中操作的主要功能的程序主體。NX Open for.NET提供了數(shù)千個(gè)函數(shù)封裝在多個(gè)類中用于實(shí)現(xiàn)對(duì)NX的大部分操作,開發(fā)者不可能全部熟記這些函數(shù)的名稱、功能等內(nèi)容。而NX提供的Journal功能(操作記錄工具)可以很好地解決這個(gè)問題,特別是NX Open for.NET的開發(fā)可以充分利用NX的操作記錄工具。NX的操作記錄工具把用戶在NX界面上的操作以NX Open for.NET的代碼組織形式進(jìn)行記錄,并且記錄的語(yǔ)言可以選擇C#、VB、Java等。在操作記錄工具中還可以以解釋性的方式執(zhí)行C#的代碼。

    在錄制操作記錄時(shí),先規(guī)劃好操作順序,以最簡(jiǎn)潔的方法完成NX界面下的操作,盡量使用可記錄的操作。錄制完成后,去除代碼中一些無關(guān)的代碼,比如旋轉(zhuǎn)視圖(函數(shù)名為ZoomAboutPoint)等代碼,因?yàn)槲覀冊(cè)诰幊膛幚頃r(shí)不需要查看視圖,從操作記錄中找到需要的程序代碼,復(fù)制到程序框架中。

    1.2 圖形界面的開發(fā)

    NX Open for.NET的開發(fā)中可以利用的圖形界面包括UI Styler對(duì)話框、Block UI Styler對(duì)話框、Windows Form窗體。

    UI Styler對(duì)話框是用戶開發(fā)NX對(duì)話框的可視化工具,不需要復(fù)雜的圖形用戶接口編程,對(duì)話框中的基本單元可以組合成不同的對(duì)話框,在對(duì)話框設(shè)計(jì)環(huán)境中可以自動(dòng)生成代碼模板文件,只需要編輯模板文件,補(bǔ)充回調(diào)函數(shù)代碼。UI Styler對(duì)話框在啟動(dòng)時(shí)允許選擇NX對(duì)象進(jìn)行操作。

    從NX6版本開始,NX引入了Block UI Styler對(duì)話框用戶界面工具,Block UI Styler對(duì)話框與NX中系統(tǒng)的對(duì)話框具有相同的樣式,都由一系列的“塊”組成,自上而下堆疊而成。Block UI Styler對(duì)話框設(shè)計(jì)環(huán)境提供了幾十種塊可供選擇,滿足幾乎所有的NX二次開發(fā)所需的界面,并且可以自動(dòng)生成代碼模板。因此,NX6版本以后的開發(fā)特別是NX Open for.NET的開發(fā)推薦使用Block UI Styler對(duì)話框。

    由于NX Open for.NET是基于微軟的.NET FrameWork的,所以,在NX Open for.NET的開發(fā)中可以直接使用.NET的Form窗體,F(xiàn)orm窗體可以完成類似Windows的對(duì)話框界面,并且可以充分利用.NET FrameWork的資源。

    1.3 菜單開發(fā)

    NX Open提供了一個(gè)菜單腳本語(yǔ)言MenuScript,通過它用戶可以使用腳本菜單文件(后綴“men”)來定制NX的菜單,為開發(fā)的應(yīng)用程序添加相應(yīng)的菜單,這些菜單包括圖形窗口的主菜單和右鍵菜單以及工具條。菜單文件是一個(gè)純文本文件,通過菜單文件中的腳本語(yǔ)言把菜單項(xiàng)與相應(yīng)的響應(yīng)鏈接起來。菜單腳本與菜單響應(yīng)的編程語(yǔ)言和編程方式無關(guān),菜單響應(yīng)可以是NX Open的應(yīng)用程序(后綴“dll”)、UI Styler對(duì)話框文件(后綴“dlg”)、NX Open Grip可運(yùn)行文件(后綴“grp”)、通過菜單功能注冊(cè)函數(shù)進(jìn)行注冊(cè)的用戶定義的命令以及操作系統(tǒng)標(biāo)準(zhǔn)命令。

    2 NX Open for.NET開發(fā)實(shí)例

    2.1 實(shí)例功能

    本實(shí)例實(shí)現(xiàn)的主要功能是從AutoCAD中拷貝一系列直線,通過二次開發(fā)程序?qū)崿F(xiàn)在NX草圖中粘貼直線,并根據(jù)參考平面標(biāo)注尺寸約束。AutoCAD中拷貝直線功能是通過AutoCAD中的二次開發(fā)程序把直線數(shù)據(jù)以一定的格式保存到剪貼板中實(shí)現(xiàn)的,在本文不討論??截惖闹本€位置數(shù)據(jù)都是選定基點(diǎn)的相對(duì)位置數(shù)據(jù)。在NX草圖中粘貼直線時(shí),首先要求用戶選擇一個(gè)基點(diǎn),然后選擇標(biāo)注尺寸約束的垂直和水平參考平面,如果不選擇參考平面則不標(biāo)注尺寸,程序讀取剪貼板中的數(shù)據(jù),根據(jù)用戶選擇的基點(diǎn)計(jì)算直線的絕對(duì)坐標(biāo)位置數(shù)據(jù),生成直線并標(biāo)注尺寸。

    2.2 實(shí)例開發(fā)步驟

    實(shí)例開發(fā)步驟如下:

    (1)程序框架的生成:利用Visual Studio2008新建一個(gè)項(xiàng)目,項(xiàng)目類型選擇Visual C#中的NXx Open C# Wizard模板,輸入項(xiàng)目名稱,選中Use NX Open.UF_API和 Use NX Open.UI_API選項(xiàng),生成程序框架。

    (2)功能程序主體的生成:功能程序主體主要是在草圖中畫直線和添加尺寸約束,功能程序主體可以利用NX的Journal(操作記錄)工具生成。在NX中新建一個(gè)prt文件,新建草圖,在NX中選擇菜單工具→操作記錄→錄制,開始錄制操作記錄,在草圖中插入多條直線,并標(biāo)注水平和豎直尺寸約束。選擇菜單工具→操作記錄→停止錄制,完成Journal的錄制。打開剛錄制的文件,可以從中選擇以下代碼作為功能程序的主體。

    在上面的代碼中,要進(jìn)行如下幾處修改才能作為該程序主體代碼使用:①在建立直線函數(shù)中的輸入?yún)?shù)為直線兩點(diǎn)的坐標(biāo),要修改為我們需要的坐標(biāo)作為參數(shù)輸入;② 水平、豎直約束在程序中必須首先通過直線的坐標(biāo)參數(shù)判斷所建立的直線是否為水平或豎直,才能施加相應(yīng)的約束;③在Journal中使用FindObject函數(shù)實(shí)現(xiàn)參考平面的選取,F(xiàn)indObject函數(shù)的輸入是在本prt文件中對(duì)象的名稱,在其他prt文件中對(duì)象的名稱可能不同,不具有通用性,必須利用用戶選擇對(duì)象的函數(shù)實(shí)現(xiàn)參考平面的選取。

    (3)用戶界面的實(shí)現(xiàn):使用Block UI Styler對(duì)話框?qū)崿F(xiàn)用戶界面,如圖1所示。在用戶界面下,提示用戶選擇基點(diǎn)和參考平面,在用戶點(diǎn)擊確定或應(yīng)用時(shí),程序開始在草圖上生成直線并添加約束。

    圖1 用戶界面對(duì)話框

    (4)其他功能的實(shí)現(xiàn):讀取剪貼板中的數(shù)據(jù)是利用System.Windows.Forms.Clipboard類實(shí)現(xiàn)的,先用Clipboard.GetDataObject函數(shù)獲取數(shù)據(jù),用IdataObject接口獲取指定格式的數(shù)據(jù),再轉(zhuǎn)換為MemoryStream格式的數(shù)據(jù),從而轉(zhuǎn)換為字節(jié)流數(shù)據(jù)。

    (5)添加菜單和菜單回調(diào)函數(shù):新建一個(gè)后綴為“men”的文本文件,加入下面的菜單腳本。利用UI.MenuBarManager.AddMenuAction函 數(shù) 添 加 菜單的回調(diào)函數(shù),即添加我們所建立的如下過程函數(shù):

    2.3 程序運(yùn)行結(jié)果

    在NX草圖界面下,選擇菜單“粘貼直線到草圖”,如果剪貼板中無數(shù)據(jù),給出提示后退出;如果剪貼板中有相關(guān)格式的數(shù)據(jù),則出現(xiàn)圖1所示的對(duì)話框,提示用戶選擇一個(gè)基點(diǎn)和兩個(gè)參考平面,選擇確定或應(yīng)用,則在草圖上添加相應(yīng)直線和尺寸約束。

    3 結(jié)語(yǔ)

    在.NET環(huán)境下利用NX Open for.NET進(jìn)行NX的二次開發(fā),可以充分利用NX的Journal功能生成大部分的代碼,無需記憶復(fù)雜的函數(shù)名。本文通過實(shí)例說明了利用 NX/Journal、NX Open for.NET、NX/Open MenuScript聯(lián)合進(jìn)行NX二次開發(fā),可以提高NX二次開發(fā)的效率。

    [1]游安弼.用C#二次開發(fā) UG NX[J].現(xiàn)代機(jī)械,2007(2):79-82.

    [2]唐鑫輝..NET環(huán)境下利用 UG/NXOpen和 UG/Journal對(duì) UG的二次開發(fā)[J].現(xiàn)代制造工程,2011(4):60-62.

    [3]李如忠.利用二次開發(fā)技術(shù)在UG中實(shí)現(xiàn)剪貼板功能[J].現(xiàn)代機(jī)械,2008(6):63-64.

    猜你喜歡
    草圖二次開發(fā)對(duì)話框
    淺談基于Revit平臺(tái)的二次開發(fā)
    甘肅科技(2020年20期)2020-04-13 00:30:02
    正常恢復(fù)虛擬機(jī)
    淺談Mastercam后處理器的二次開發(fā)
    模具制造(2019年3期)2019-06-06 02:11:02
    Bootlace Worms’Secret etc.
    西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
    畫好草圖,尋找球心
    草圖
    一波三折
    基于Inventor概念草圖仿真在機(jī)械原理中的應(yīng)用
    基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
    重庆市| 陆河县| 白朗县| 巧家县| 通海县| 巨鹿县| 霞浦县| 台东县| 安福县| 遂川县| 康马县| 建水县| 绿春县| 邯郸市| 游戏| 岗巴县| 大名县| 文登市| 阿巴嘎旗| 塔河县| 岳池县| 绩溪县| 遵义县| 普陀区| 达孜县| 南澳县| 明星| 平湖市| 柘城县| 安西县| 巴林右旗| 沅江市| 英吉沙县| 满洲里市| 瑞昌市| 安多县| 新竹县| 柳江县| 托里县| 宣城市| 报价|