微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于UG的接口技术研究

基于UG的接口技术研究

时间:12-15 来源:互联网 点击:

随着市场竞争愈来愈激烈,在现代制造业中,缩短产品设计开发周期,实现快速设计显得越来越重要。UG (Unigraphics)软件是大型CAD/CAM/cAE集成软件之一,功能强大,具有开放的UG/Open二次开发工具。作者在Visual C++6.0的集成开发环境下,通过直接在MFC应用向导程序中加人UG的入口函数的方法,解决了利用MenuScript菜单或uI—Styler的回调函数无法直接调用MFC函数的问题。给出UG/Open API与高级用户接口语言MFC (MicrosoftFoundament Class)编程相结合进行开发的接口实现方案,采用MFC来设计对话框界面的编程技术,为开发Windows应用程序提供了强大的支持,使用MFC可以充分利用VC++开发环境提供的先进技术工具,实现程序界面的可视化设计。通过修改界面上的关键参数或直接访问数据库便可以实现零件的参数化建模。极大地提高了开发效率,对提高产品的研发速度具有重要意义。

1 UG二次开发接口技术

1.1 UG应用程序开发技术

UG/Open是UG软件为用户提供的最主要的开发工具。它主要由UG/Open API、GRIP、MenuScript和UIStyler 4个部分组成。UG/Open API(又称USERFuncTION)是一个允许程序访问和影响UG对象模型的一系列程序集,它封装了近2000个UG操作的函数,还提供了编译和连接程序的工具?。API函数使用C/C++作为编程语言,几乎能实现UG的所有功能。

UG应用开发程序采用了动态链接库(DLL)技术,其调用过程如图1所示。在Visualc++6.0环境中为UG软件进行应用程序的开发提供了3种工程向导:UG/Open App—W iz~d、W in32 Dynamic—}LinLibrary和MFC Wizard(DLL)。

这些应用向导最终将创建一个动态链接库文件供UG进程使用。

(1)UG/Open AppWizard

该向导是UG软件本身提供的应用向导,操作简便,运行稳定,可以快速构建开发框架,但通常不支持MFC类库。

(2)Win32 Dynamic-Link Library

该向导创建Windows常规DLL,基本操作是打开VC++,选择菜单命令File---~New,在弹出的New对话框中选择Win32 Dynamic.Hnk Library选项便可完成创建过程。但此向导只能导出c样式函数,不能导出c++类、成员函数和重载函数,不支持MFC类库。

(3)MFC AppWizard(DLL)

该向导创建的动态链接库(dl1),可以方便地调用MFC类库中丰富的资源。MFC封装了WIN32 API函数,并设计了一套方便的消息映射机制。MFC的界面灵活性和表达能力均优于UISyler的功能,有效灵活的MFC框架结构大大方便了开发者编程,可以实现与数据库进行通信,有效解决了UG/Open提供的工具及对话框所包含的控件较少、界面开发功能差及无法实现对数据库的访问的问题。

1.2 接口技术方案

在Visual C++6.0环境中为UG提供的3种工程应用向导中,只有使用UG/Open AppWizard生成的DLL文件(又叫UFUN DLL)可以直接被UG调用。

但使用UG/Open AppWizard向导创建的应用程序本身不支持MFC,不能直接调用MFC的应用程序,实现与MFC的通信,特别是与数据库的连接。由于UG本身可以通过动态链接库(DLL)实现UG系统内的图形界面与系统内部的通信,而且通过动态链接库(DLL)方式的执行速度快 。

接口实现方案如图2所示。通过DLL嵌入的方式实现UG与MFC集成和运行,利用MFC实现与数据库通信,并可以直接使用MFC丰富的函数资源。

UG软件为用户提供的二次开发工具不但可以独立使用,而且可以通过接口相互调用,这不但扩展了工具本身所具有的功能,还方便用户进行二次开发。

MenuScript用于菜单的开发,UIStyler则主要用于开发实现用户界面接口交互操作的对话框。

MenuScript开发的菜单可以与UIStyler开发的对话框相互调用,UG/Open API程序可以被Menu.Script、UIStyler开发的对话框调用,但却无法实现直接调用MFC函数及所生成的DLL程序 。因此,需要通过间接的方法来实现。通过描述的方法,将提供的App和Main文件修改后加入创建的工程,可以实现使用UG的MenuScript菜单调用MFC函数的方法,但此方法是通过加入响应菜单响应函数来实现对DLL的调用,不能调用多个DLL文件,而且操作烦琐。因此,通过实践研究探索出另外一种实现UG与MFC接口函数相互调用的方法,即通过在创建的MFC AppWizard(dU)工程序文件的$.CPP文件中加人以下代码即可。这种方法生成的DLL可以利用MenuScript菜单脚本语言的ACTIONS或UIStyler的回调函数直接调用。

其中,代码中的IDD—NEWDLG为所创建的Win.dows风格对话框的ID,CNewDlg为所创建的对话框类。与UIStyler对话框相比,使用MFC的对话框中布局更为容易,修改调试更为方便。通过MFC接口不但可以实现数据通信

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top