• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 信息科技 > 正文

    基于.NET的Nx二次开发技术在标准件库中的应用

    时间:2020-09-14 07:52:23 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:随着CAD技术的发展, CAD软件得到了广泛的应用,在这些平台上开发符合企业所需要的零件库的工作也取得了很大成果。但随着网络和信息技术的发展,这些零件库的缺点与不足也逐渐显露了出来,界面不够友好、重复开发现象严重、资源不能共享、移植性和扩展性较差等。基于现有的二次开发存在的问题,重点对CAD软件系统NX的NX Open For .Net的开发方式进行了研究,获取完整的开发过程,采用将交互式和批处理式相结合的二次开发模式,提出了一种新的基于UG的企业标准件数据库系统, 实现了企业标准件数据库系统中的数据库和图形库同步管理。

    关键词:.NET框架;二次开发;标准件库

    中图分类号: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领域,依托大型通用CAD软件进行二次开发,是CAD行业发展的一大趋势。既可以避免从底层进行开发的工作量大、重复开发的弊端,又以多快好省的推广、拓展CAD的应用。特别是在具体的专业领域,依托通用软件进行二次开发,更具针对性,从而更具有现实意义。

    2 Ug简介

    Unigraphics (简称UG)提供的二次开发模块包括:UG/OPENGRIP,UG/OPENAPI,UG/OPEN MenuScript和UG/OPEN UIStyler[1]。同时提供了良好的二次开发语言接口(C语言),使UG的图形功能和计算功能有机结合,便于用户开发专用的CAD系统。UG/OPEN GRIP使UG的内嵌语言,必须在UG环境下使用。由于缺乏高级语言的支持,其功能受到一定的局限。由于UG/OPEN API的编程的灵活性,且具有高级语言支持,同时能利用VC++,JAVA,VB,.NET强大的编译功能,开发出功能强大的CAD软件,近年来愈亦受到重视。本文重点讲解如何就基于.NET的UG/OPENAPI进行二次开发,并结合具体实例。

    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核心应用程序的功能,来创建高级的应用程序。

    NX Open for .NET是采用微软.NET框架进行开发的应用程序接口。可以采用任何.NET兼容编程语言。通过这些API访问NX核心应用程序的功能,来创建高级的自动化程序。并且,因为新的日志工具也使用VB.NET语言,你可以采用日志系统快速生成示范代码,然后直接剪贴到一个自动化程序中。

    3.2 NX OPEN API FOR .NET 应用程序开发

    NX Open for .NET应用程序有三种模式:交互模式,批处理模式,远程模式.前两种模式与原来UG下的内部模式、外部模式类似,最后一种模式,是基于.NET框架新提供的一种分布式应用程序模式[2]。

    3.2.1 交互模式

    交互模式的程序是在以中调用运行的托管库程序,在拟已经启动和初始化后,通常在部件文件打开或创建之后,通过NX系统调用和运行。(在此模式下NX4.0只支持到.NET2003)

    在Microsoft Visual Studio .NET 2003中创建一个交互程序的通用步骤如下:(以C#为例)

    (1 )打开Visualstudio;

    (2)打开/创建一个解决方案;

    (3)创建一个新的Visual C#项目,选择类型库项目;

    (4)增加如下引用:

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

    (5)增加带有MainO函数的类文件;

    (6)编译程序,创建<项目文件名>.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();}//入口函数。当Nx装载编译的托管库,搜索并执行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执行该托管库。

    3.2.2 批处理模式

    批处理模式的程序是独立可执行的,可以从操作系统中直接运行。也可以创建程序自己的UG工界面与一个批处理联Open for.NET应用程序交互。

    以下在Microsoft visual studio.NET中创建一个批处理程序的通用步骤。

    (1)打Visualstudio.NET2003或2005;

    (2)打开创建一个解决方案;

    (3)创建一个新的 Visual c#项目,选择控制台应用程序;

    (4)增加如下引用:

    using NXOpen;

    using NXOpen.Features;

    using NXOpen.UF;

    using NXOpenUI;

    (5)增加一个带Main()函数的类文件;

    同样要获取NX,NXOPEN UF会话,初始化NX。

    修改文件输出路径,从菜单"项目"|属性,打开属性对话框(如图1所示)。

    或将UGII下的除了文件夹以外的文件全部拷贝到生成程序路径的Debug文件夹下,否则会出错。

    (6)编译程序;生成一个<项目名称>.exe。

    生成的.exe文件可以在Windows下直接运行,不用启动UG,而在后台直接生成.prt文件。

    3.2.3 远程模式

    .NET提供了一种允许对象通过应用程序域与另一对象进行交互的框架。通过.NET框架提供的服务,远程模式的程序允许Nx 用户在一个会话中,从分开的进程中执行一个应用程序,远程模式的程序既可以在同一台机器上连接一个会话,也可以通过网络连接到一个远程的机器。

    4 汽车冲模标准件数据库系统

    4.1 系统的构建思想

    系统包括基础数据库、图形库等。其中基础数据库是存放设计计算、绘图及各类标准数据及生成的.prt文件。目的是为了减少和消除在计算机辅助设计中需要查阅设计资料的问题.通过将设计中间数据放入数据库可以减少输入和输出的次数和上传用户所需要的.prt文件。图形库是利用CAD 软件提供的基本功能,将交互设计的标准件和标准设计要素用参数化和模式化的方法建立起来的。本标准件系统采用ORACLE数据库存放信息,ORACLE数据库不仅能够存放零件的几何信息,同时也可以利用自带的BLOB字段来存放生成的.prt文件。由于是所存零件是标准件,所以不需要设计人员输入参数,所有参数直接从ORACLE中提取。根据条件在下拉菜单中选择,是界面更加人性化。

    4.2 系统构建关键的二次开发技术

    4.2.1 采用交互式与批处理式相结合的开发方式

    该系统采用Visualstudio.NET 2005进行开发。完全独立与UG本身自带的 UG/Open MenuScript(界面菜单编辑语言),UG/Open Uistyler(用户界面制作工具), UG/Open Grip(UG提供的专用的用户图形交互语)[3]。因此具有良好的用户界面,不需要在UG的环境下进行界面处理。不需要打开UG,选择保存的路径和名称,然后进入UG建模,在UG的界面下运行。而程序里利用.NET里面的控件,采用SaveFileDialog方法把变量ImageFileName传给NX Open for .NET里面的函数m_session.Parts.NewDisplay(ImageFileName, NXOpen.Part.Units.Millimeters);供设计人员来浏览保存要生成.prt文件的名称和路径。选择合适的参数,在选择的物理地址下生成相应的图形,并通过函数m_session.Parts.Work.Save(NXOpen.Part.SaveComponents.True,NXOpen.Part.CloseAfterSave.True,out status); System.Diagnostics.Process.Start(ImageFileName); 以UG的形式打开,以便于设计人员的检查与修

    改(如图2所示)。这样就做到了.NET与UG的无缝连接。

    4.2.2 UG/Open对ORACLE数据库的访问

    为了能访问数据库,要在.cs文件中引用System.Data.OracleClient和System.Data.OleDb。利用OleDbConnection与数据库进行连接,用OleDbCommand对象来执行SQL命令,OleDbDateAdapter,DataSet,OleDbDateReader对象来取得结果记录集进行查询,处理。将从ORACLE数据库里取出的参数,赋给执行各种命令的UX函数,来执行图形生成的工作。

    4.2.3 ORACLR中字段BLOB存储大对象的应用

    利用数据库ORACLR建立的表中,除了存储标准件的几何信息外,还利用BLOB字段存储对应信息生成的.prt文件,以供用户在WEB服务器上根据自己下的定单进行下载。存入文件前,必须先把文件转化成二进制流的形式,

    然后再把该二进制存入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();

    此方法的实现,使UG与.NET进行无缝的连接,二者即相互独立又相互联系。不需要在先启动UG,再参数化建模的交互方式,也不需要直接UG在后台运行的批处理方式。二是在.NET制作的界面下,直接对UG进行操作,实现参数化建模。使二者有机的联系起来,实现一个满足企业需要的二次开发系统。

    5 结论

    (1)本文研究了NX OPEN API FOR .NET 2种传统的二次开发方法,将两种方法相结合,提出了一种界面更加友好,管理更加容易,操作更加方便的二次开发方法。

    (2)本文提出构建的汽车冲模标准件数据库系统,实现了企业标准件数据库系统数据库和图形库同步管理。充分利用了关系数据库强大功能,访问灵活的特点,可以大大缩短集成系统的开发,同时也使得U G软件本身具有更广泛的应用前景。

    (3)一个优秀的CAD二次开发系统,不仅要方便设计人员的工作,节省设计人员的时间,还应该节省企业的成本,节省客户的时间。在此系统建立后,还应该建立一个供客户下载.prt文件的Web服务器,实现客户享受“UserAnywhere”的服务。

    参考文献:

    [1]董正卫, 田立中, 付宜利. UG/OPENAPI 编程基础[M] . 北京:清华大学出版社,2002,(8):205-208.

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

    [3]徐国生,周志雄,刘正恒. 汽车冲模标准件库应用UG二次开发技术[J]现代制造工程. 2004,02(3): 27-31.

    [4]任树华, Oracle 10g 第一版 应用指导与案例精讲[M].北京:机械工业出版社 2007,(2):220-233

    收稿日期:2008-03-20

    作者简介:朱宏宇,男,辽宁省开原市人,在读硕士,研究领域为:计算机智能系统;任树华,男,辽宁省大连市人,硕士毕业,大连工业大学硕士生导师,研究领域:软件工程,数据库,计算机智能系统。

    相关热词搜索: 标准件 库中 技术 net NX

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网