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

        ?

        基于.NET的Nx二次開發(fā)技術(shù)在標準件庫中的應(yīng)用

        2008-12-31 00:00:00朱宏宇任樹華
        電腦知識與技術(shù) 2008年12期

        摘要:隨著CAD技術(shù)的發(fā)展, CAD軟件得到了廣泛的應(yīng)用,在這些平臺上開發(fā)符合企業(yè)所需要的零件庫的工作也取得了很大成果。但隨著網(wǎng)絡(luò)和信息技術(shù)的發(fā)展,這些零件庫的缺點與不足也逐漸顯露了出來,界面不夠友好、重復(fù)開發(fā)現(xiàn)象嚴重、資源不能共享、移植性和擴展性較差等。基于現(xiàn)有的二次開發(fā)存在的問題,重點對CAD軟件系統(tǒng)NX的NX Open For .Net的開發(fā)方式進行了研究,獲取完整的開發(fā)過程,采用將交互式和批處理式相結(jié)合的二次開發(fā)模式,提出了一種新的基于UG的企業(yè)標準件數(shù)據(jù)庫系統(tǒng), 實現(xiàn)了企業(yè)標準件數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫和圖形庫同步管理。

        關(guān)鍵詞:.NET框架;二次開發(fā);標準件庫

        中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2008)12-10000-00

        Application of Second Development Technology Based on Unigraphics in Standard Part Library on .Net

        ZHU Hong-yu,REN Shu-hua

        (School of Information Science Engineering, Dalian Polytechnic University,Dalian 116034, China)

        Abstract: With the development of CAD technolog,CAD software is widely used,parts library met enterprise’s requirements has beenacquired considerable achievement at these platforms.But with the development of the network and information technology,the shortcoming of parts library whit so enough as to come to light gradually,the interface is not friendlily,the serious phenomenon of repetition development,the no share of information resources,transplanting and expanding are worse,etc.In view of the existing shortcoming of the current secondary development,on this basis,the CAD of software system NX and development way are researched,the whole course is described, Use of interactive and batch-mode in the secondary development.Then a novel enterprise standard part database on U G is put forward , in which the isochronous management of enterprise standard part database and part graphics library is realized.

        Key words:.Net framework;Secondary development;Stardard part library

        1 引言

        在機械CAD領(lǐng)域,依托大型通用CAD軟件進行二次開發(fā),是CAD行業(yè)發(fā)展的一大趨勢。既可以避免從底層進行開發(fā)的工作量大、重復(fù)開發(fā)的弊端,又以多快好省的推廣、拓展CAD的應(yīng)用。特別是在具體的專業(yè)領(lǐng)域,依托通用軟件進行二次開發(fā),更具針對性,從而更具有現(xiàn)實意義。

        2 Ug簡介

        Unigraphics (簡稱UG)提供的二次開發(fā)模塊包括:UG/OPENGRIP,UG/OPENAPI,UG/OPEN MenuScript和UG/OPEN UIStyler[1]。同時提供了良好的二次開發(fā)語言接口(C語言),使UG的圖形功能和計算功能有機結(jié)合,便于用戶開發(fā)專用的CAD系統(tǒng)。UG/OPEN GRIP使UG的內(nèi)嵌語言,必須在UG環(huán)境下使用。由于缺乏高級語言的支持,其功能受到一定的局限。由于UG/OPEN API的編程的靈活性,且具有高級語言支持,同時能利用VC++,JAVA,VB,.NET強大的編譯功能,開發(fā)出功能強大的CAD軟件,近年來愈亦受到重視。本文重點講解如何就基于.NET的UG/OPENAPI進行二次開發(fā),并結(jié)合具體實例。

        3 NX OPEN API FOR .NET

        3.1 NX OPEN API FOR .NET簡介

        NX Open for .NET是一套用于微軟.NET框架的API。通過這套API,可以采用任何.NET兼容編程語言,包括Visual C#,VB.NET,通過這些API訪問NX核心應(yīng)用程序的功能,來創(chuàng)建高級的應(yīng)用程序。

        NX Open for .NET是采用微軟.NET框架進行開發(fā)的應(yīng)用程序接口。可以采用任何.NET兼容編程語言。通過這些API訪問NX核心應(yīng)用程序的功能,來創(chuàng)建高級的自動化程序。并且,因為新的日志工具也使用VB.NET語言,你可以采用日志系統(tǒng)快速生成示范代碼,然后直接剪貼到一個自動化程序中。

        3.2 NX OPEN API FOR .NET 應(yīng)用程序開發(fā)

        NX Open for .NET應(yīng)用程序有三種模式:交互模式,批處理模式,遠程模式.前兩種模式與原來UG下的內(nèi)部模式、外部模式類似,最后一種模式,是基于.NET框架新提供的一種分布式應(yīng)用程序模式[2]。

        3.2.1 交互模式

        交互模式的程序是在以中調(diào)用運行的托管庫程序,在擬已經(jīng)啟動和初始化后,通常在部件文件打開或創(chuàng)建之后,通過NX系統(tǒng)調(diào)用和運行。(在此模式下NX4.0只支持到.NET2003)

        在Microsoft Visual Studio .NET 2003中創(chuàng)建一個交互程序的通用步驟如下:(以C#為例)

        (1 )打開Visualstudio;

        (2)打開/創(chuàng)建一個解決方案;

        (3)創(chuàng)建一個新的Visual C#項目,選擇類型庫項目;

        (4)增加如下引用:

        NX Pen.dll,NX OPen.Utilities.dll,Nx 0Pen.UF.dll,NX 0pen.Ul.dll 其物理位置在安裝UG4.0文件夾下的UGII下的manage;

        (5)增加帶有MainO函數(shù)的類文件;

        (6)編譯程序,創(chuàng)建<項目文件名>.dll;

        using System;

        using NXOpen; //.NET API的主要程序庫。

        using NXOpen.Utilities;

        using NXOpen.UF;

        public static void Main(string[] args)

        {SnagImage createImage= new SnagImage();createImage.Show();}//入口函數(shù)。當Nx裝載編譯的托管庫,搜索并執(zhí)行main

        public static int GetUnloadOption(string dummy)

        { return UFConstants.UF_UNLOAD_SEL_DIALOG;}//卸載庫,必須加上,否則編譯時會出錯。

        public SnagImage()

        {m_session=Session.GetSession();//首先獲取NX會話,這是必須的。

        m_UI=UI.GetUI();

        m_openSession=UFSession.GetUFSession();……//獲取NXOPEN UF會話,類似于UF_initialize()的作用}

        編譯成dll可以通過打開UG 選擇生成文件的名稱和路徑后File一>Execute一>Nx OPen執(zhí)行該托管庫。

        3.2.2 批處理模式

        批處理模式的程序是獨立可執(zhí)行的,可以從操作系統(tǒng)中直接運行。也可以創(chuàng)建程序自己的UG工界面與一個批處理聯(lián)Open for.NET應(yīng)用程序交互。

        以下在Microsoft visual studio.NET中創(chuàng)建一個批處理程序的通用步驟。

        (1)打Visualstudio.NET2003或2005;

        (2)打開創(chuàng)建一個解決方案;

        (3)創(chuàng)建一個新的 Visual c#項目,選擇控制臺應(yīng)用程序;

        (4)增加如下引用:

        using NXOpen;

        using NXOpen.Features;

        using NXOpen.UF;

        using NXOpenUI;

        (5)增加一個帶Main()函數(shù)的類文件;

        同樣要獲取NX,NXOPEN UF會話,初始化NX。

        修改文件輸出路徑,從菜單\"項目\"|屬性,打開屬性對話框(如圖1所示)。

        或?qū)GII下的除了文件夾以外的文件全部拷貝到生成程序路徑的Debug文件夾下,否則會出錯。

        (6)編譯程序;生成一個<項目名稱>.exe。

        生成的.exe文件可以在Windows下直接運行,不用啟動UG,而在后臺直接生成.prt文件。

        3.2.3 遠程模式

        .NET提供了一種允許對象通過應(yīng)用程序域與另一對象進行交互的框架。通過.NET框架提供的服務(wù),遠程模式的程序允許Nx 用戶在一個會話中,從分開的進程中執(zhí)行一個應(yīng)用程序,遠程模式的程序既可以在同一臺機器上連接一個會話,也可以通過網(wǎng)絡(luò)連接到一個遠程的機器。

        4 汽車沖模標準件數(shù)據(jù)庫系統(tǒng)

        4.1 系統(tǒng)的構(gòu)建思想

        系統(tǒng)包括基礎(chǔ)數(shù)據(jù)庫、圖形庫等。其中基礎(chǔ)數(shù)據(jù)庫是存放設(shè)計計算、繪圖及各類標準數(shù)據(jù)及生成的.prt文件。目的是為了減少和消除在計算機輔助設(shè)計中需要查閱設(shè)計資料的問題.通過將設(shè)計中間數(shù)據(jù)放入數(shù)據(jù)庫可以減少輸入和輸出的次數(shù)和上傳用戶所需要的.prt文件。圖形庫是利用CAD 軟件提供的基本功能,將交互設(shè)計的標準件和標準設(shè)計要素用參數(shù)化和模式化的方法建立起來的。本標準件系統(tǒng)采用ORACLE數(shù)據(jù)庫存放信息,ORACLE數(shù)據(jù)庫不僅能夠存放零件的幾何信息,同時也可以利用自帶的BLOB字段來存放生成的.prt文件。由于是所存零件是標準件,所以不需要設(shè)計人員輸入?yún)?shù),所有參數(shù)直接從ORACLE中提取。根據(jù)條件在下拉菜單中選擇,是界面更加人性化。

        4.2 系統(tǒng)構(gòu)建關(guān)鍵的二次開發(fā)技術(shù)

        4.2.1 采用交互式與批處理式相結(jié)合的開發(fā)方式

        該系統(tǒng)采用Visualstudio.NET 2005進行開發(fā)。完全獨立與UG本身自帶的 UG/Open MenuScript(界面菜單編輯語言),UG/Open Uistyler(用戶界面制作工具), UG/Open Grip(UG提供的專用的用戶圖形交互語)[3]。因此具有良好的用戶界面,不需要在UG的環(huán)境下進行界面處理。不需要打開UG,選擇保存的路徑和名稱,然后進入UG建模,在UG的界面下運行。而程序里利用.NET里面的控件,采用SaveFileDialog方法把變量ImageFileName傳給NX Open for .NET里面的函數(shù)m_session.Parts.NewDisplay(ImageFileName, NXOpen.Part.Units.Millimeters);供設(shè)計人員來瀏覽保存要生成.prt文件的名稱和路徑。選擇合適的參數(shù),在選擇的物理地址下生成相應(yīng)的圖形,并通過函數(shù)m_session.Parts.Work.Save(NXOpen.Part.SaveComponents.True,NXOpen.Part.CloseAfterSave.True,out status); System.Diagnostics.Process.Start(ImageFileName); 以UG的形式打開,以便于設(shè)計人員的檢查與修

        改(如圖2所示)。這樣就做到了.NET與UG的無縫連接。

        4.2.2 UG/Open對ORACLE數(shù)據(jù)庫的訪問

        為了能訪問數(shù)據(jù)庫,要在.cs文件中引用System.Data.OracleClient和System.Data.OleDb。利用OleDbConnection與數(shù)據(jù)庫進行連接,用OleDbCommand對象來執(zhí)行SQL命令,OleDbDateAdapter,DataSet,OleDbDateReader對象來取得結(jié)果記錄集進行查詢,處理。將從ORACLE數(shù)據(jù)庫里取出的參數(shù),賦給執(zhí)行各種命令的UX函數(shù),來執(zhí)行圖形生成的工作。

        4.2.3 ORACLR中字段BLOB存儲大對象的應(yīng)用

        利用數(shù)據(jù)庫ORACLR建立的表中,除了存儲標準件的幾何信息外,還利用BLOB字段存儲對應(yīng)信息生成的.prt文件,以供用戶在WEB服務(wù)器上根據(jù)自己下的定單進行下載。存入文件前,必須先把文件轉(zhuǎn)化成二進制流的形式,

        然后再把該二進制存入BLOB字段中[4]。利用.NET里面的FileStream把生成文件變成二進制流

        FileStream fs = new FileStream(ImageFileName, FileMode.OpenOrCreate, FileAccess.Read);

        byte[] MyData = new byte[fs.Length];

        fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));然后利用OleDbCommand來進行文件的插入工作,

        OleDbCommand cmd1 = new OleDbCommand(\"Update PICTURE_STORE set PICTURE =? where Type='\"+comboBox1.Text.Trim()+\"' and Shape='\"+comboBox2.Text.Trim()+\"' and D='\"+comboBox3.Text.Trim()+\"' and SBR='\"+comboBox4.Text.Trim()+\"' and L='\"+comboBox5.Text.Trim()+\"' and H='\"+comboBox6.Text.Trim()+\"'\",cn);

        cmd1.Parameters.Add(\"PICTURE\",OleDbType.Binary);

        cmd1.Parameters[\"PICTURE\"].Value =MyData;

        cmd1.ExecuteNonQuery();

        此方法的實現(xiàn),使UG與.NET進行無縫的連接,二者即相互獨立又相互聯(lián)系。不需要在先啟動UG,再參數(shù)化建模的交互方式,也不需要直接UG在后臺運行的批處理方式。二是在.NET制作的界面下,直接對UG進行操作,實現(xiàn)參數(shù)化建模。使二者有機的聯(lián)系起來,實現(xiàn)一個滿足企業(yè)需要的二次開發(fā)系統(tǒng)。

        5 結(jié)論

        (1)本文研究了NX OPEN API FOR .NET 2種傳統(tǒng)的二次開發(fā)方法,將兩種方法相結(jié)合,提出了一種界面更加友好,管理更加容易,操作更加方便的二次開發(fā)方法。

        (2)本文提出構(gòu)建的汽車沖模標準件數(shù)據(jù)庫系統(tǒng),實現(xiàn)了企業(yè)標準件數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫和圖形庫同步管理。充分利用了關(guān)系數(shù)據(jù)庫強大功能,訪問靈活的特點,可以大大縮短集成系統(tǒng)的開發(fā),同時也使得U G軟件本身具有更廣泛的應(yīng)用前景。

        (3)一個優(yōu)秀的CAD二次開發(fā)系統(tǒng),不僅要方便設(shè)計人員的工作,節(jié)省設(shè)計人員的時間,還應(yīng)該節(jié)省企業(yè)的成本,節(jié)省客戶的時間。在此系統(tǒng)建立后,還應(yīng)該建立一個供客戶下載.prt文件的Web服務(wù)器,實現(xiàn)客戶享受“UserAnywhere”的服務(wù)。

        參考文獻:

        [1]董正衛(wèi), 田立中, 付宜利. UG/OPENAPI 編程基礎(chǔ)[M] . 北京:清華大學(xué)出版社,2002,(8):205-208.

        [2]UGS CORP.NX 4 Help library 2005,NX Open for .NET Programmer’s Guide[Z].

        [3]徐國生,周志雄,劉正恒. 汽車沖模標準件庫應(yīng)用UG二次開發(fā)技術(shù)[J]現(xiàn)代制造工程. 2004,02(3): 27-31.

        [4]任樹華, Oracle 10g 第一版 應(yīng)用指導(dǎo)與案例精講[M].北京:機械工業(yè)出版社 2007,(2):220-233

        收稿日期:2008-03-20

        作者簡介:朱宏宇,男,遼寧省開原市人,在讀碩士,研究領(lǐng)域為:計算機智能系統(tǒng);任樹華,男,遼寧省大連市人,碩士畢業(yè),大連工業(yè)大學(xué)碩士生導(dǎo)師,研究領(lǐng)域:軟件工程,數(shù)據(jù)庫,計算機智能系統(tǒng)。

        国产精品黑丝高跟在线粉嫩 | 熟妇与小伙子露脸对白| 亚洲av少妇一区二区在线观看| 亚洲色偷偷偷综合网| 久久久精品人妻一区二区三区妖精 | 99日本亚洲黄色三级高清网站| 亚洲春色视频在线观看| 国产一区二区三区在线视频观看| 国产女主播白浆在线观看| av无码精品一区二区三区四区| 国产精品亚洲专区在线播放| 美女偷拍一区二区三区| 亚洲国产综合精品中久| 国产精品无码久久综合网| 成人免费看吃奶视频网站| 欧洲亚洲视频免费| 我的极品小姨在线观看| 国产实拍日韩精品av在线| 东北老女人高潮大喊舒服死了| 蜜桃成人无码区免费视频网站| 久久精品免费中文字幕| 精品麻豆一区二区三区乱码| 亚洲熟妇色自偷自拍另类| 中文字幕v亚洲日本| 欧美丰满熟妇bbbbbb百度| 久久精品国产72国产精福利| 日韩av中文字幕一卡二卡 | 精品偷自拍另类在线观看| 久久久久无码精品国产app| 国产高清无码在线| 一本色道久久综合中文字幕| 日本在线观看不卡一区二区| 特级毛片a级毛片100免费播放| 国产亚洲av手机在线观看| 国产呦系列视频网站在线观看| 免费国产一区二区视频| 亚洲va中文字幕无码毛片| 国产 中文 制服丝袜 另类| 亚洲av色香蕉一区二区三区蜜桃| 男女射黄视频网站在线免费观看| 50岁熟妇大白屁股真爽|