您的位置:网站首页 > CAD新闻

基于.NET的NX微波器件库开发

时间:2011-02-26 10:04:29 来源:

  1 NX及NX Open for.NET简介

  NX是全球主流MCAD系统,是计算机辅助设计、辅助制造、辅助工程和产品数据管理(CAD、CAM、CAE、PDM)一体化的软件系统之一。

  2004年9月UGS发布CAD系统软件NX 3,在NX 3的通用API中,提供了对.NET 1.0及Visual Studio 2003的支持,极大地增强了NX二次开发的能力。2005年12月UGS发布了NX4,对.NET开发的支持再次得到加强,可以采用Java等语言进行二次开发。

  2007年4月UGS发布了NX 5,包括了无约束的设计、主动数字样机和NX由你做主自定义功能等多项技术革新,同时提供了对.NET 2.0及Visual Studio 2005的支持。

  NX Open for.NET是一套用于微软.NET框架的API。通过这套API,可以采用任何.NET兼容编程语言,包括VB.NET、Visual C#,通过这些API访问NX核心应用程序的功能,来创建高级的应用程序。

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

  NX Open for.NET的优势在于支持:

  ·微软.NET环境;

  ·面向对象的编程;

  ·Remoting、分布式编程。

  NX Open for.NET允许用户:

  ·采用微软.NET支持的语言如C#和VB.NET;

  ·充分利用微软可视化.NET的开发环境;

  ·在自动化程序中采用微软.NET框架类;

  ·采用winForms创建图形用户界面;

  ·编写分布式客户端,可以在不同的机器上访问一个NX的Session;

  ·访问NX Open API中的类,这些包装的类在托管.NET动态库中;

  ·编写混合模式程序,即可采用.NET的NX Open,也可采用.NET包装的User Function。

  2 基于NX Open for.NET的开发

  NX Open for。NET应用程序有三种模式:交互模式,批处理模式,远程模式。前两种模式与原来UG下的内部模式、外部模式类似,最后一种模式,是基于.NET框架新提供的一种分布式应用程序模式。最常用的开发模式是交互模式,下面是交互模式下.NET托管库开发的具体步骤。

  2.1托管库的创建

  交互模式的程序是在NX中调用运行的托管库程序,在NX已经启动和初始化后,通常在部件文件打开或创建之后,通过NX系统调用和运行。

  在Microsoft Visual Studio.NET 2005中创建一个交互式程序的步骤如下:

  (1)打开Visual Studio;

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

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

  (4)增加如下引用:

  NXOpen.dll

  NXOpen.Utilities.dll

  NXOpen.UF.dll

  NXOpenUI.dll

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

  (6)编译程序。

  创建<项目文件名>.dll。

  编译生成dll可以通过File->Execute一>NX Open执行该托管库。

  如果在安装NX 5之前安装了Visual Studio 2005,则会在Visual Studio中自动安装向导。该向导可自动将所需的引用添加到新项目中的NX Open库,以节省时间。

  在NX系统执行托管库时,NX系统将寻找下面的方法:

  (1)public static int Startup(string arg)

  当一个库在系统启动时被装载,此方法被运行。如果这个方法不存在,系统启动Main()来替代。这个对应User Fune.tion:ufsta。

  (2)public static void Main()或者public static void Main(string arg)

  在用户装载一个库时,系统运行Main函数,通常有两种可接受的方式,第一种不带参数,第二种带一个字符串数组。对第二种方式,在交互式运行时,参数为空。在batch模式,在.args命令行将切换虿运行日志。这样,同种方法町被用于交互式启动和独立的应用程序。正常情况下,你应该申明这个方法返回一个整数,但如果返回void,装载机制依然可以启动他。这个函数对应User Function:ufuser。

  2.2 签名

  装载一个.NET托管库到NX中时,系统会检查嵌入的签名。如果发现没有签名或者签名非法,系统将不会装载该库。

  无论是创建在会话中装载的.NET托管库(通过File->Ex.ecute一>NX Open执行),还是创建一个NXOpen.Session对象的独立.NET可执行文件,应用程序都需要用NX签名工具签名。

  给托管库签名有两个步骤:

  (1)在一个DLL托管库或应用程序中嵌入NX资源文件。

  在编译应用程序时增加NXSigningResource.res文件,该文件在UGOPEN目录下,用"/resource:”编译指令编译:

  csc/resource:NXSigningResouree.res/t:library SampleApp.cs

  也可以在Visual Studio开发环境中设置此编译器选项:

  a)将NXSigningResource.res文件添加到项目中。

  b)选择要嵌入解决方案资源管理器中的文件。

  c)在“属性”窗口中,选择文件的“生成操作”。

  d)将“生成操作”设置为“嵌入的资源”。

  (2)执行一个NX签名工具。

  嵌入资源文件之后,在NX安装目录下的UGⅡ工具包目录中找到SignLibrary工具,对托管库进行签名:

  SignLibrary SampleApp.dll

  3 微波器件库的设计与实现

  随着计算机的发展和网络技术的应用,社会正快速向信息化前进,信息自动化的作用也越来越大。机械制造行业的计算机CAD软件也在快速发展,对机械零件的设计和制造提供了极大的便利,但目前如NX等CAD软件,针对的往往是通用的设计和开发,而对企业来讲,仍然需要面对大量不同的专用器件,进行重复的绘图和设计。在CAD软件的基础上,还需要有专用器件库的软件管理和自动绘图的功能。

  国内目前研究开发的标准件、非标准件库的建库方法,可将其分为三大类:系统建模方式、基于特征库方式、程序化方式,这三种方式在建立标准件库的过程中并不是完全独立或相互排斥的,而是有着综合的运用和联系。

  通过定义微波器件的各特征间的约束关系,对微波器件进行参数化,结合NX Open for.NET的强大的二次开发接口和面向对象的Visual C#,设计开发了专用的微波器件库,系统总体结构如图1所示。

   

  图1 微波器件库系统总体结构

  微波器件库软件系统的服务器数据库中存放着微波器件的数据库表和用户信息的数据库表,同时还包含一些编译好的存储过程,这些存储过程主要负责数据的存取。数据库可以安装在企业的IT机房的服务器上。

  系统的客户端安装在自动化设计或者制造部门的桌面电脑上,供设计者和开发者使用,客户端通过企业的局域网访问IT机房服务器的数据库。

  微波器件库系统的客户端主要有如下模块:

  (1)图形界面模块 主要完成对配置、用户、器件信息的可视化浏览,并触发完成其他模块的功能;

  (2)配置管理模块 主要完成对配置文件的存取,提供登录相关的用户和数据库访问信息;

  (3)用户管理模块 主要完成对用户的登录、权限管理功能;

  (4)器件管理模块 主要完成对器件信息的列表、查看和修改等操作;

  (5)器件绘图模块 主要完成在NX系统中的三位图形绘制功能;

  (6)数据库访问模块 主要完成对数据库的存取操作。

  本微波器件库采用交互模式实现。

  4 微波器件库的配置与运行

  在网络环境中安装和配置好器件库的服务器,先安装好数据库,并建立数据库,创建各个零件数据库表。配置好服务器之后,可以在各个客户端进行配置。在每个客户端的Windows系统上安装NX 5.0,安装Microsoft.NET framework 2.0;在客户端某一目录(如D:ugapi)下安装微波器件库的类库partslib.dll。

  启动NX,打开并执行partslib.dll。如果是首次执行,程序会要求配置数据库服务器;连接数据库成功后,系统弹出登录对话框,要求输入用户名密码;臀录成功之后,系统出现器件管理主界面,客户端可浏览和操作器件库。

  微波器件库运行时的主界面如图2所示。

   

  图2 微波器件库主界面

  选择“查看/修改/绘制图形”菜单项,将弹出该零件的参数属性窗口(见图3),可以查看具体的各个参数,也可以修改并更新该零件的参数,还可以在NX中绘制出该零件的三维图形。

   

  图3 参数属性窗口

  本微波器件库可以对大量的专用微波器件进行有效管理,有利于提高相关的器件设计人员的工作效率。

  5 结束语

  本文主要介绍了在.NET框架上二次开发的模式,并且通过实例代码对在Visual Studio.NET 2005中如何创建二次开发的应用程序进行了详细介绍。基于一个具体的开发项目,对微波器件库的软件系统架构进行了设计和开发,通过开发实践可以体会到,充分利用功能强大的.NET框架提供的类库接口,可以有效提高NX二次开发的效率。

  文中的应用程序在操作系统Windows XP、开发环境Visual Studio.NET 2005、数据库系统SQL2000及运行环境NX5.0系统下实现。