顾 琪,周临震
(1.盐城纺织职业技术学院机电工程系,江苏盐城 224000;2.盐城工学院优集学院,江苏盐城 224000)
组合机床是一种根据被加工件的特征以通用部件为基础、专用部件为补充的高效专用机床,其中通用部件达70% ~90%[1]。当前,随着CAD技术的普及组合机床的设计已经普遍跟计算机技术相结合,许多组合机床CAD系统应运而生[2-4]。越来越多的企业在产品开发过程中引入参数化设计技术来提高产品开发效率,而要真正能够实现开发并行管理、产品参数全相关性就需要有建立在统一数据库之上的标准模型。开发基于外部动态链接及数据库的机床通用部件可以为组合机床整体设计提供支持,也可以实现机床众多通用零部件的快速设计与开发,为缩短机床产品的开发周期,提高开发效率和质量提供保障。
外部数据库访问技术通常主要有数据访问对象(Data Access Object,DAO)、开放数据库互连(Open Database Connectivity,ODBC)以及ActiveX数据对象(ActiveX Data Objects,ADO)。
(1)通过ODBC访问外部数据库
ODBC是由微软公司提出的数据库访问接口标准。它提供了一组对数据库访问的标准API,这些API独立于各种数据库管理系统。ODBC可以由统一的驱动程序来实现对几乎所有的数据库的操作管理。
(2)通过DAO访问外部数据库
DAO使用Microsoft Jet数据库引擎来访问数据库,是第一个面向对象的接口。通过DAO访问数据库可以通过Visual C++提供的五个MFC DAO类访问,其与ODBC类两者除使用的数据引擎不同之外,它们还有很多相同的地方。DAO提供的多数成员函数和类都与ODBC提供的对应的函数和类相似。
(3)通过ADO访问外部数据[5]
ADO与ODBC相比,使用更加简便,免去了繁琐的配置数据源工作。ADO库包含3个基本接口,通过这三个基本接口可实现对数据库的访问,它们的主要功能为:_ConnectionPtr接口负责打开或连接数据库文件;_CommandPtr接口存取数据库的内容;_RecordsetPtr接口对数据库下达行动查询指令,以及执行SQL Server的存储过程。
NX/OPEN访问其他数据,例如可以通过UF_XS_extract_spreadsheet和UF_XS_store_spreadsheet抽取和储存 SpreadSheet、通过 uc4504、uc4514、uc4524 等 NX/OPEN API中有关文件的操作函数来访问文本文件。
使用NX/Open进行二次开发时主要使用其提供的菜单脚本文件、对话框设计以及应用程序接口函数集三个二次开发包。NX/Open API是NX提供的与外部应用程序实现接口的函数集,运用它几乎可以实现所有能在NX界面上的操作。NX/OPEN API程序能在内部程序和外部程序两种环境下运行[6]。内部UF是以动态链接库(*.DLL)的形式创建并编译的,外部UF程序是可执行程序(*.EXE)。以动态链接库运行必须启动NX Gateway,它执行时每个步骤都可以从NX的客户窗口中得到动态反映;以可执行程序运行只要有NX License的支持不需要启动NX,因而不能和NX Gateway发生联系。BlockStyler模块提供了与NX界面风格完全一致对话框可视化设计工具;MenuScript模块用于创建或编辑NX的标准菜单和工具条脚本文件。
在NX平台上,运用NX/OPEN二次开发工具开发客户定制软件平台关键在于实现NX软件、基础数据库以及定制应用程序之间的相互通信。图1为运用内部动态链接库及ODBC方式实现组合机床通用零部件设计的原理方案。
图1 通用部件库设计原理方案
根据组合机床通用部件的实际设计需求,在分析具体二次开发技术的基础上开发基于外部数据及动态链接库的通用部件设计实例,其中利用ODBC技术实现外部数据库的访问,利用DLL方式实现定制客户运用程序运行,利用Microsoft Office Access建立本地组合机床通用部件数据库。
(1)菜单、对话框定制
根据客户定制要求可以使用NX/OPEN提供的MenuScript模块创建或编辑系统菜单和工具条,使用BlockStyler模块开发系统对话框。通过编辑菜单文件,定义菜单按钮响应对用DLL,通过对对话框添加回调函数来响应客户定制事件。对话框本身可以通过在菜单项中的调用,实现定制客户程序与NX环境相互融合。图2为组合机床通用部件滑台设计对话框。
(2)环境变量设置
NX 规定的目录有startup、application、udo和dfa,Startup目录存放NX启动时加载的动态链接库文件(*.dll)、菜单文件(*.men)和工具栏文件(*.tbr);Application目录存放具体的功能定制程序文件,如对话框文件;Udo目录用于存放与用户自定义对象相关的动态链接库文件;Dfa目录存放KF程序文件及对应的对话框文件。
图2 组合机床通用部件滑台设计对话框
NX环境配置文件 ugii_env.dat中存在“UG_VENDOR_DIR”、“UG_SITE_DIR”、“UG_USER_DIR”3个用于注册工程路径的环境变量。组合机床通用部件设计环境变量设置为“UGII_USER_DIR=开发路径”。另外多数应用程序开发还可以添加一个位图文件,通过“UGII_BITMAR_PATH=开发路径位图文件”指定位图文件。
通过Access建立本地组合机床通用部件数据库,包括机械滑台、液压滑台、动力头、滑台底座等通用部件数据库,如图3所示。
图3 通用部件数据库
使用ODBC访问数据库时需要指定一个DSN(Data Source Name)以便于连接到一个指定的ODBC驱动程序。DSN是用于指定ODBC与相关的驱动程序相对应的一个入口。对通用部件数据库的操作,通常可以使用CDatabase类对象实现对数据库的联接、使用CRecordSet类对象实现对记录集的操作。
通过NX/Open AppWizard应用程序开发向导,或者通过Win32应用程序向导、MFC应用程序向导都可以创建实现客户调用的内部DLL。
通过添加回调函数可以实现客户定制应用程序。如下为滑台设计对话框【OK】按钮的回调函数片段:
运用NX/OPEN二次开发应用程序设计组合机床一般通用零部件,只需设计师根据应用程序导航选择所需通用部件的型号及部分主要性能参数,应用程序便可以根据设计师决策自动匹配相关通用部件的标准模型,并根据数据库寄存数据对模型进行更新操作,实现通用部件的快速化设计。同时设计师还可以检索部件详细尺寸参数和性能参数来辅助决策。图4通过应用程序设计的滑台三维模型。
图4 1HYT50液压滑台3D模型
在外部数据库支持下,运用NX提供的外部应用程序接口创建并编译DLL形式的用户定制函数,实现对组合机床通用部件的设计。可以明显缩短组合机床通用部件的开发周期,提高机床整体开发效率、降低成本,同时可以对机床通用部件设计参数和信息实现数据管理,对企业知识的继承和重用也具有重要的意义。
[1]谢家瀛.组合机床设计简明手册[M].北京:机械工业出版社,2002.
[2]高飞,孙俊兰,李青祝,等.基于UGNX的组合机床多轴箱通用件库的研究[J].煤矿机械,2011,32(8):227-229.
[3]周临震,顾琪,倪红军,等.基于知识的组合机床总体设计CAD系统的研究与开发[J].机械设计与制造,2012(1):260-262.
[4]王旭华,廖文和,刘德仿.基于知识的组合机床总体方案CAD系统的研究[J].组合机床与自动化加工技术,2002(2):45-47.
[5]叶建平,贺海晖,石林祥,等.基于ADO的Pro/E数据库接口研究开发[J].制造业自动化,2009,31(4):98-100.
[6]侯永涛,丁向阳.UG/Open二次开发与实例精解[M].北京:化学工业出版社,2007.