UG二次开发中建库接口技术研究_王明强

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

U G二次开发中建库接口技术研究

t王明强王宁生t赵良才朱永梅

摘要介绍U G二次开发进行标准件建库的原理与方法,提出利用微软基本类库(M FC)实现U G对话框界面与后台数据库通信的方法,给出标准件参数化库实现方案和接口程序示例。

关键词:二次开发标准件库接口技术

中图分类号:T P311152;T P391172文献标识码:A文章编号:1671)3133(2004)01)0042)03 Set up standard component storehouses by application secondary development of UG t Wang Mingqiang,Wang Ningsheng t Zhao Liangcai,Zhu Yongmei

Abstract Pro poses a method that make use of basic kind of storehouses(M FC)of microsoft to realize the communication be-tw een U G dialog interface and backstage supporter data base1At last it g ives a realize schemes of standar d component parametric storehouses and g ives a demonstr at ion scheme1

Key words:Application secondary development The standard component storehouse Interface technology

本文围绕的是UFUN环境下的二次开发技术。通过UFUN提供的交互界面开发工具,方便地实现与U G(U nigraphics)对象模型的连接,从而最终实现对产品数据模型的各种操作。UFUN只提供了与交互界面的接口而没有提供与数据库的接口,其本身无法实现对数据库的直接访问。本文通过开发M FC与U-FUN之间的接口,来实现U G的后台数据管理,建立参数化标准图库的方法。

一、UG二次开发建库的原理和方法

11二次开发建库思想

U G中的标准件库不是简单地把众多的标准件图形逐个输入、存放在计算机里,然后按需调用就可以了,而是将拓扑结构相同的零件建立为标准件系列,实际需要时改动的只是尺寸参数。同系列标准件可以通过一个程序实现参数的调用,参数可以存入数据库,这样为标准库的建立和维护提供了极大的方便。每个标准件建立时都要有其中心基准,调用时就依据这些基准实现零件的准确放置。利用U G中特征的定位功能或者零件的装配定位功能,实现标准件与其它零件的位置关系。

对于一个由几个标准零件装配在一起而组成的标准部件,可以先在后台数据库中建立相对应的参数传递,实现尺寸链接关系,再通过定位功能实现相互位置关系。还可以用某一个主参数去驱动其它次要参数,甚至还可以建立标准件位置间的约束参数,将约束参数和尺寸参数一同存入后台数据库,实现更大程度上的参数化。

21二次开发建库方法

U G的M odeling模块提供了几种建立标准库的方法:电子表格(SpreadSheet)法、关系表达式(Expres-sion)法和用户自定义特征(1udf)法。与二次开发建立标准库的方法相比,这几种方法虽然能够很直观容易地建立标准件库,但是对标准件的交互式建立和调入不方便,用户使用标准件库的目的就是为了操作的简洁方便,如果操作繁难,查找不便,反应速度过慢,就会很容易失去用户的支持。并且,标准件库一般数据量较大,因此要求对数据能够实行有效方便的管理。

基于二次开发的方法建立标准库,就能很好地满足上述要求,首先,通过交互界面建立标准件的模板零件(Template Part),设定基准中心,几何参变量,给定标准件名称、标准件功能属性和分类编号,如果是标准件部件还需给出主参数和约束参数,然后将上述数据和模板零件图号(*1prt)存入后台数据库。接着,在调用标准件时,先调用模板零件,再通过交互界面设定零件参变量值及位置关系,最后用户就可以存为自己的零件了。

31二次开发建库界面的实现

M enuScript是用户修改、增加和创建新的用户菜单的工具,用它可以对标准的UG GATEWAY

M AIN M ENU BAR和UG GAT EWAY VIEW POPU P菜单进行修改和编辑。U IStyler是用户建立、编辑对话框的工具。它为用户提供了一个可视化的开发平台,提供了快速建立对话框的工具,更重要的是它提供了对UG对象模型的直接联系,可以使用户方便实现与UG中数据模型的交互操作。利用UIStyler建立图形界面后,系统自动生成三个文件,一是C语言源文件(*1c)的框架,也即给出了每个回调函数的框架,回调函数具体的操作,则需用户自己加入;二是定义函数原型的C头文件(*1h);三是对话框文件

CAD/CAPP/CAM/CA E

(*1dlg)。这几个文件也是建立UFUN和MFC接口的关键。

二、UFU N与MFC间接口技术

11接口技术方案

U FUN虽然本身处于M FC的开发平台中,但很难直接调用MFC的应用程序,实现与MFC的通信,特别是与数据库应用程序的连接。由于U G本身可以通过动态链接库(DLL)实现U G系统内的图形界面与系统内核的通信,而且DLL方式执行速度快,故本文提出通过DLL嵌入的方式,实现UG、UFUN与M FC 之间的通信。接口实现方案如图1所示。

UG\U IS tyler、

M E NUS CRIPT

\UFU N(DLL)\M FC(DLL)

\数据库图1接口实现方案

21接口技术实现过程

1)首先利用MFC中的UG/Open Wizard建立一个Internal UG/Open API程序,并选择Win32Dynamic-Link Library,完成后UFUN会生成相应UG入口函数。

2)UFU N简单配置。在Project y Settings y Link 中,Object/Library modules一项中添入libufun1lib和libinternal1lib;选Tools y Options y Directories,在/show directories for:0内选Include files,在/Directo-ries:0内输入E:\U GS160\UGOpen(并使用Move Item Up按钮将它放在所有directories之首),在此/E: \UGS160\0为UGII BASE DIR。为了说明本文所介绍的接口方式,在此只简单地介绍本方式用到的配置,详细配置请参阅相关资料。

3)将对话框资源文件中的C语言源文件(*1c)和C头文件(*1h),加到U FUN工程中来,生成UFU N DLL程序主文件A1DLL,实际上并未编译为DLL,只是创建了DLL生成程序而已。

4)利用MFC生成MFC的DLL程序B,添加需要的数据库类,然后将A1DLL的生成程序包含(include)进工程,使A1DLL的生成程序调用B的导出程序。此时,就可利用数据库类实现U IStyler建立的对话框与后台数据库的通信。最后编译生成B1DLL文件。

5)所有程序完成后就可以利用M enu ACT ION或U IStyler回调函数调用B1DLL,最终实现对标准件参数化图库的数据管理。

31程序示例及分析

以下程序为U GDATA1cpp部分实现程序,即B1DLL实现程序://UGDATA1cpp:Defines the initi alizati on routines for the DLL1

//M FC生成的DLL程序其主要作用在于使UFU N的DLL程序可以利用数据源类,下面添加的就是数据源类UgRecource

//头文件

#include/U gRecource.h0

#include/stdafx1h0

#include3afxdllx1h4

//条件编译

#ifdef DEBU G

#define new DEBUG NEW

#undef THIS FILE

static char THIS FILE[]FILE;

#endif

static AFX EXT ENSION M ODULE BDLL={NULL,NULL};

//入口函数

extern/C0int APIENTRY

DllM ain(HINS TANCE hInstance,DWORD dwReason,LPVOID lpRe-served)

{

U NREFERENCED PARAM ETER(lpReserved);

if(dwReason==DLL PROCES S ATT ACH)

{

if(!AfxIni tExtensionM odule(BDLL,hInstance))

return0;

new CDynLinkLibrary(BDLL);

}

else if(dwReason==DLL PROCES S DETACH)

{

AfxT ermExtensi onM odule(BDLL);

}

return1;//ok

}

//下面为UG入口程序,即A1DLL程序入口

extern/C0DllExport void ufsta(char*param,int*returnCode,int rlen)

{

int error code=0;

//初始化

if((error code=UF initiali ze())!=0)

return(0);

//加载UIStyler对话框,通过对话框实现与UG对象模型的

连接

//以及最终与产品数据模型的连接

if((error code=U F STYLER create dialog (/Library1dlg0,

CHANGE cbs,/*Callbacks from dialog*/

CHANGE CB COUNT,/*number of call backs*/

NULL,/*This is your client data*/

&response))!=0)

{

char fail message[133];

//获得出错信息

UF get fail message(error code,fail message);

UF UI set s tatus(fail message);

CAD/CAPP/CAM/CAE

相关文档
最新文档