资源描述:
《基于.net的ug二次开发技术研究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于.NET的UG二次开发技术研究自动化与控制67基于.NET的UG二次开发技术研究王廷和孟广耀(青岛理工大学机械工程学院,青岛266033)摘要:UG是当前最流行的CAD/CAM软件之一,其二次开发工具模块中UG/OpenAPI提供丰富的对象操作函数,能实现所有UG的操作功能.用户通过外部程序接口可以开发出适合自身需求的软件及应用.本文通过微软最新的.NET框架技术,运用c#语言以装配导航为实例针对UG进行二次开发,详细介绍了开发过程.关键词:.NETc≠≠UG二次开发1概述随着CAD/CAM技术的不断发展,大型通用软件UG,Pro/Engineer,CATIA,I-DEAS
2、,Solidworks等基本覆盖了整个制造业,但其通用性针对企业的专业性应用却不能满足各种产品的设计需要,所以在实际的工程设计中,企业往往在此基础之上进行针对本企业适用的专业性二次开发.UG作为高端CAD/CAM应用软件,其提供了设计到加工的整套基本功能,也给用户提供完善的二次开发工具.2UG二次开发工具UG/Open二次开发模块为用户提供了二次开发工具集,包括UG/OpenMenuScript,UG/OpenUIStyler,UG/OpenGRIP,UG/OpenAPI.MenuScript开发工具针对UG操作界面可用户化开发,无需编程即可对菜单,工具栏进行添加修改;UISt
3、yler是UG的可视化交互界面编辑器,可以开发出类似于UG操作交互界面,利用API程序开发交互功能;GRIP是专用的图形交互编程语言,利用它可以实现大部分的UG操作;API又称UserFunction,是UG提供给用户操作其对象模型的程序集,UG/OpenAPI封装了近2000个UG可操作函数,提供的丰富功能可以实现绝大多数UG操作,其支持的语言有C,c++,Fortran,Java等.3.NET技术.NETFramework是微软的一种全新的技术,主要用来可快速开发,部署应用程序的中间平台..NET提出的框架技术中CLR(CommonLanguageRuntime)通用语言执
4、行环境大大简化了应用程序的开发,对用户来说不管使用VB.NET,VC.NET还是新型c#,其通过编译出来的目标语言在框架中成为一种中问语言,可实现共享和重组.框架技术为不同程序语言用户之间提供了协作的方便.4开发实例4.1开发环境WindowsXPSP2操作系统;UGNX4.0.025:Microsoft.NETFramework1.1;Visua1.NET2003.4.2程序实例本文根据UG/OpenAPI提供的功能操作函数,采用新图1兴的c#语言进行UG二次开发,实现一个浏览装配体组件的装配导航图.程序代码及其分析,以下程序只提供主要功能的程序代码,关于入口初始化,退出资源
5、释放,错误捕捉等相关操作省略.AssemblyView.CSusingSystem;usingNXOpen;//引入UG开发相关函数库usingNXOpen.UF;usingNXOpen.Assemblies;publicAssemblyView()f,,构造函数lnitializeComponent();//设计器窗口初始化;UpdateTree()://更新装配树显示TreeView控件NXOpenUI.FormUtilities.SetApplicationlcon(this);//设置对话框图表NXOpenUI.FormUtilities.ReparentForm(th
6、is)://设置对话框成为UG子窗口//以下为设置装配文件更换和退出的对话框回调函数WorkPartCallbaekFunction=newUF.CallbackFnT(0n—ChangeWorkPart);theUFSession.UF.AddCallbackFunction(CallbaekReason.ChangeWorkPartReason,WorkPartCallbaekFunction,IntPtr.Zero,outonChangeWorkPartlD);ClosePartCallbackFunction=NewUF.CallbaekFnT(OnCloseP-68现
7、代制造技术与装备2010第1期总第194期art);theUFSession.UF.AddCallbackFunction(CallbackReasonClosePartReason,ClosePartCallbackFuncfion,IntPtr.Zero,outonClosePartlD);JpubhcstaticvoidMain()f,/程序入口函数theSession=Session.GetSession()://获得工作环境变量theUFSession=UFSession.GetU