1 前言
UG作为通用支撑软件系统,具有强大的建模,装配和工程分析功能,利用UG能够创建数字化虚拟仪表的三维造型,但是却满足不了虚拟仪表的动态仿真方面的要求。本文对UG系统进行二次开发,设计出界面友好、使用方便的虚拟仪表的动态仿真系统。着重介绍了应用UG/OPEN API、MFC以及辅助开发模块UG/0pen MenuScript联合开发的方法。同时用一个应用实例进行简单的说明。
2 UG/OPEN API以及UG/0pen MenuScript
UG/OPEN API又称User Function,是一个允许程序访问并改变UG对象模型(UG Object Modal)的程序集。提供一个UG所共容的编译和连接程序的方式.它支持C/C++语言,头文件(Header Files),支持ANSI C,使用Micorosfot Visual C++编程环境。UG/OPEN API程序可以在两种不同的环境中运行,即Internal与External环境.External模式可以直接在操作系统下运行独立于UG系统。Internal模式只能运行在UG环境下 。 为实现软件系统和UG的无缝封装,一般采用Internal环境。
UG/Open MenuScript实现了对UG菜单的操作。可以用ASCII码编辑器来编辑、删除、添加已有的UG菜单条,为自己的应用程序建立专门的菜单条.MenuScript可以执行宏文件、UG/OPEN API或者UG/Open GRIP所编写的程序,通过这种方式可以把自己开发的应用程序无缝地嵌入到UG系统中,满足用户要求的交互式操作。
3 虚拟仪表的动态仿真
所谓虚拟仪表(Virtual Instrument) 就是利用PC机实现原来物理仪表的功能,并且要求功能更强。不仅可以实现数字显示、棒图显示、曲线显示,而且可以实现历史查询、事故追忆等。 操作人员通过友好的图形用户界面以及图形化编程语言来控制仪器的运行,以完成对被测试量的采集、分析、判断、显示、存储以及数据生成 。
UG具有强大的设计和表达能力,能够逼真地表现仪表的外观和几何造型,应用UG开发虚拟仪表实现产品的数字化设计,缩短了设计周期。通过应用本文论述的基于UG二次开发的虚拟仪表的动态仿真系统,使得产品的设计表现更加有力,还可以应用在机械人机界面的设计评价中。
4 利用UG/OPEN API和MFC联合开发应用程序结论
尽管UG使用了Micorosfot Visual C++作为编译器,但UG/OPEN API没有直接提供对MFC的支持,所以在UG中还不能直接调用MFC 。 Visual C++提供了丰富的MFC资源,其编程环境的集成度和灵活性远远超出了UG/OPEN API。UG应用程序基本上都是采用UG提供的应用程序向导UG/Open AppWizard创建的,但是用该向导创建的应用程序本身不支持MFC。为了让程序支持MFC我们采用MFC AppWizard(dll)向导,在应用程序中加入UG Internal模式的入口函数,编译生成动态连接文件,最后通过菜单调用该程序。其实现的具体步骤如下:
1)在Visual C++中新建MFC AppWizard(dll) 类型工程,输入工程名。点击OK。
2)在向导的第一步选择应用程序类型为Regular DLL using shared MFC DLL,其它选项保持默认即可,点击Finish。完成创建该向导。
3)在Visual C++中进行编译设置,选择菜单Project ->Setting。在project setting对话框的Link选项卡Object/library modules中设置库文件(libufun.lib,libugopenint.lib),也可以在Tools->Options 的directories中设置。在project setting对话框的Debug选项卡Excutable for debug session中输入ugraf.exe的全路经。
4)编制程序,在程序中添加UG的用户入口函数ufsta()。添加MFC对话框资源和控件,设计人机界面 (user computer interface)。添加所需要的Windows消息,在消息处理函数中添加代码。
5)编译连接,生成.dll 文件。通过UG菜单调用程序。