APP下载

原子滑车零部件参数化设计*

2013-06-28钟建琳王红军

机械研究与应用 2013年3期
关键词:轮轴滑车对话框

钟建琳,常 城,王红军

(北京信息科技大学,北京 100192)

1 前言

原子滑车(又名过山车)作为游乐设备在我国已有很多游乐场所使用,尽管原子滑车在国内的研究、制造不过十余年,但目前国内已有一些单位如北京实宝来游乐设备制造有限公司、华北矿山冶金机械厂和上海煤炭机械研究所等具有生产原子滑车的能力。为缩短设计开发周期,提高设计效率,利用Pro/E软件开发原子滑车相关零部件库,这样在设计某个零件或部件时,只需要输入相关的参数,系统能够自动生成该零件或部件的三维模型,因此,可以减少重复劳动,提高设计效率。参数化是建库的基础,美国PTC公司开发的CAD/CAM软件Pro/E功能强大,在国内外机械、汽车、家电、航空航天等领域得到广泛应用。该软件近年来在我国的各企业正逐步地得到广泛应用,以尺寸驱动、基于特征、单一全关联的数据库等优点深受广大设计人员的推崇和喜爱。

原子滑车设备主要由主体滑行结构、提升机、滑车、站台、制动系统、气动系统、电控系统、设备基础组成[1]。原子滑车一般共有6节车厢,可坐24人,车辆间由连接轴联接,车厢内为每位乘客设有压肩安全杠和二次安全带,另外两车中间还装有2条φ12.5的钢丝绳做安全保护。滑车设有承重轮、侧导向轮、底轮和防倒装置。从站台上发车,经过提升机,使滑车提升到一定高度,在势能作用下,依靠惯性沿轨道滑行。滑车运行过程中产生的加速度、离心力及失重感使游客在惊险刺激的感觉中体现极限的乐趣。游乐设施原子滑车的设计属于单件,为了提高设计和制造效率,迫切需要产品实现参数化设计。下面以滑车中的轮轴为例加以介绍。

根据原子滑车所要实现的运动情况将轮轴设计为三种,分别是承重轮轴、侧导轮轴和侧挂轮轴。承重轮轴是起承重的作用,并带动车体在轨道上行驶,一般由大滑轮、支撑大滑轮的轴、滑轮与轴之间连接所用轴承、防尘圈、端盖和罩等组成。侧导轮轴是导向和承受转弯时的离心力作用,侧导轮轴一般包括大滑轮、支撑大滑轮的轴、小滑轮、支撑小滑轮的轴、轴承、防尘圈、端盖和罩等。侧挂轮轴是一个类似安全轮的作用,在小车翻越圆环时由于离心力的大小不同,轨道对小车施加的支持力的方向就不同,当离心力比小车重力小时,小车会在重力作用下下落,这时侧挂轮轴就起作用了。侧挂轮轴的零部件与侧导轮轴类似。

2 总体方案规划

Pro/E下的二次开发有多种不同的方法:JLink、Pro/Toolkit、Pro/Program、族表、用户自定义特征等等。其中,J-Link是PTC公司提供的二次开发工具,它是基于Java语言的,用户可以通过Java编程从而实现在Pro/E中添加所需要的功能。Pro/Toolkit是PTC公司提供的基于Pro/E的开发工具包,支持在Windows操作系统中使用C和C++语言设计程序。它为用户或第三方软件商提供了庞大的C语言函数库,用户借助该库可以通过C或C++程序代码扩充Pro/E系统的功能,开发用户自己的应用程序模块,可访问Pro/E数据、实现与Pro/E的无缝集成,并满足用户的特殊要求。Pro/Program是Pro/E中由类似Basic的语言构成的,Pro/E中的每个模型都有相应的Pro/Program程序,用户可修改该程序,系统运行修改过的程序后,可以通过人机交互来控制系统的参数、特征尺寸及是否显示特征等。族表在Pro/E中是通过电子表格来管理的,是由表格驱动的,先将通用零件建立为父零件,然后在父零件的基础上控制各参数来生成派生零件。由此可见族表主要用于管理具有相同或相近结构的零件,特别是管理标准件。用户自定义特征可用来建立特定产品中的特定结构,用户可以根据产品特征来快速生成几何模型。

原子滑车相关零部件的参数化设计综合利用了Pro/E中的族表、Pro/Program功能和用户自定义特征来建立零部件库,然后通过数据库管理相关数据,采用VC++语言运用Pro/Toolkit工具包进行二次开发,采用动态链接库(DLL)方式来实现Pro/E系统、Pro/Toolkit应用程序与VC++应用程序三者之间的通信。这种方法程序运行速度快并且兼容性好。

3 原子滑车参数化设计关键技术

原子滑车相关零部件的参数化设计过程可分为三个主要步骤:运用Pro/E建立原子滑车零部件的基本模型,系统整体界面设计,数据库设计。

3.1 建立原子滑车相关零部件的基本模型

原子滑车中的相关零部件可以分为标准件和非标准件。标准件是指采用国家标准和行业标准的零件。非标准件主要有底盘、车体、轮架、连接器、承重轮、底轮、侧导向轮、压肩安全杠和防倒装置等。对于标准件及重复性高、相似性大的零部件,可以使用原始样本零件(Generic part)及族表来简化建模工作。

在建立原子滑车相关零部件三维模型的时候,可以利用样本零件和族表来代表同一类型或相似类型的零件。需要该零件的时候只要调出族表内其名称,便可以自动生成一个按照族表所示尺寸比例的零件。Pro/E中的族表是相似零件、组件或特征的集合,集合中的元素在大小或详细特征等一两个方面略有不同。使用族表可以从零件文件中生成各种相似的零件,而没必要去重新建模,节省时间又节省保存文件所需的硬盘空间[2]。

族表本质上是电子数据表,由行和列组成。可以创建和修改族表。族表包含:基本对象,族的所有成员都建立在它的基础上;尺寸和参数,特征数,自定义特征名,组件成员名都被选作是表驱动的(以后称之为项目);由表产生的所有族成员(即实例)的名称和每一个表驱动项目的相应值。

行包含实例及其相应的值;列用于项目。列标题包括实例名和表所选择的所有尺寸、参数、特征名、成员和组的名称。尺寸用名称列出,相关的符号名(如果有的话)列在它下面的线上。参数也用其名称列出。特征按特征编号列出,其下面的行显示相关的特征类型或特征名称。

原始样本模型位于表的第一行。原始样本模型只能通过修改真实零件,隐藏或恢复特征来改变;不能通过编辑族表来改变原始样本模型。

对于每一个实例,可以定义是否在实例中应用特征、参数、或组件名。其方法是通过指出它是否出现在实例中(Y或N),或提供一个数值(如果是尺寸的话)来实现。所有尺寸单元必须有一个相对应的值,可以是一个数或星号(*),星号(*)则表示使用原始样本模型的值。对于每一个实例来说,没有包含在族表中的所有原始样本模型特性都自动生成。

3.2 菜单的设计

运用Pro/Toolkit二次开发技术在Pro/E中添加菜单有两种不同的方法。方法之一是向Pro/E的菜单栏中添加菜单条;另一方法则是向菜单管理器中添加模式菜单[3]。此处采取第一种方法向Pro/E的菜单栏中添加菜单条。

创建菜单条的方法是直接调用ProMenubarAdd()函数向Pro/E添加所需的菜单,同时建立新建菜单的信息文件。信息文件属于ASCII码文件,其中包含有菜单项以及菜单项提示等信息,可以用字处理软件或VC++集成开发环境来建立,要求以纯文本格式保存。该信息文件每四行为一组,第一行是Pro/E系统可识别的关键字,关键字必须与使用该信息文件函数中的相关字符串相同;第二行是在菜单项或菜单项提示上显示的文字;第三行是另一语言的译文,可以空着;第四行是当前的Pro/E版本,也可以空着不填。例如:在user_initialize()初始化函数中添加以下代码:

ProError status=PRO_TK_NO_ERROR;

ProFileName MsgFile;

ProStringToWstring(MsgFile,"TKMessage.txt"

);

uiCmdCmdId LocPinPushButton_cmd_id,LocKey-PushButton_cmd_id,

VBlockPushButton_cmd_id,HandLocPushButton_cmd_id;

ProMenubarMenuAdd("StdPartLibMenuBar","MainMenu","Utilities",PRO_B_TRUE,MsgFile);

之后,在信息文件中加入以下菜单项信息:

MainMenu

StdPartLib

零部件库

#

便在Pro/E菜单栏“工具”菜单右侧添加了一个菜单项——“零部件库”。同理可以用ProMenubarmenuMenuAdd()函数向“零部件库”菜单项下面添加下拉式子菜单。之后可以调用Pro/Toolkit下的ProMenubarmenuPushbuttonAdd()函数来设置菜单的相应动作。然后制作Makefile工程文件,该文件包含了生成的可执行文件或动态链接库的名称,如果采用多进程工作模式,则需要将源文件编译生成可执行文件,如果采用动态链接库工作模式,则要将源文件生成动态链接库。此处采用动态链接库模式,在VC++环境下编译调试该动态链接库后即生成Pro/Toolkit应用程序。该应用程序在Pro/E中运行前要进行注册。注册文件用来向Pro/E系统传递应用程序的信息,格式如下:

name<应用程序名称>

startup<工作模式Spawn或dll>

exec_file<生成的可执行文件或动态链接库的位置>

text_dir<菜单文件和窗口信息文件位置>

revision<所使用的Pro/E版本号>

end<结束>

应用程序可以手工注册也可以自动注册。手工注册要在启动Pro/E之后在“工具”菜单下选择“辅助应用程序”子菜单,之后在弹出的对话框中单击“注册”按钮注册即可。自动注册要将该注册文件以protk.dat保存并放在Pro/E的启动目录下,运行Pro/E后,注册文件中的Pro/Toolkit应用程序就可以自动注册。注册成功之后单击“启动”按钮便可以运行用户的应用程序。

3.3 对话框的设计

对话框是应用软件不可缺少的用户界面之一。Pro/E中有两种完全不同的对话框设计方法:一种方法是利用Pro/Toolkit提供的用户接口对话框技术,可以设计出与Pro/E系统具有相同风格的对话框。该方法可以充分利用Pro/Toolkit提供的用户对话框操作函数和Pro/E资源设计出与Pro/E界面风格一致的对话框。但是该技术是用文本文件的形式来定义对话框的,不能直观地反映界面的布局,设计、修改和调试都非常困难。另一种方法是在VC++环境中采用微软基础类库(MFC:Microsoft Foundation Class)技术来设计对话框,该方法“所见即所得”,非常直观。VC++中使用MFC可视化技术创建对话框过程如下:先使用应用程序向导AppWizard创建Pro/Toolkit应用程序基本框架,之后在AppWizard创建的并与工程文件同名的CPP文件中添加user_initializ()和user_terminate()函数,最后在VC集成开发环境选择“insert”菜单中“Resourse”菜单项的“insertResourse”对话框来创建对话框。图1所示为利用MFC技术设计的对话框。

图1 用MFC技术设计的对话框

3.4 数据库访问技术

在建立原子滑车常用零部件库的过程中,各个零部件的参数值各不一样,需要有一个统一管理的模块对参数值进行管理。因此,要为每一个零部件建立一张参数表,然后在数据库中集中管理。该数据库较为简单,可以采用Microsoft Access。访问数据库的方式如下:

ODBC(Open Database Connectivity),开放数据库互连。ODBC是上个世纪八十年代末九十年代初出现的技术,它为编写关系数据库的客户软件提供了一种统一的接口。ODBC提供一个单一的API,可用于处理不同数据库的客户应用程序。使用ODBC API的应用程序可以与任何具有ODBC驱动程序的关系数据库进行通信。

DAO(Data Access Object),数据访问对象。DAO就是一组Microsoft Access/Jet数据库引擎的COM自动化接口。DAO不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。

RDO(Remote Data Object),远程数据对象。由于RDO直接调用ODBC API,而不是像DAO那样通过Jet引擎,所以可以为使用关系数据库的应用程序提供更好的性能。

OLE DB,对象链接与嵌入数据库。OLE DB在两个方面对ODBC进行了扩展:①OLE DB提供了一个数据库编程的COM接口;②OLE DB提供了一个可用于关系型和非关系型数据源的接口。OLE DB的两个基本结构是OLE DB提供程序(Provider)和OLE DB用户程序(Consumer)。

ADO(ActiveX Data Object),ActiveX数据对象,它建立在OLE DB之上。ADO是一个OLE DB用户程序。使用ADO的应用程序都要间接地使用OLE DB。ADO简化了OLE DB,提供了对自动化的支持,使得像VBScript这样的脚本语言也能够使用ADO访问数据库。

由于ADO具有面向对象的特点,利用ADO技术来访问访问数据库,其实就是利用ADO的对象来操纵数据库,此处用到的ADO的三个核心对象。其一是Connection对象,它表示了到数据库的连接,管理应用程序和数据库之间的通信。Recordset和Command对象都有一个ActiveConnection属性,该属性用来引用Connection对象。另一个是Command对象,它被用来处理重复执行的查询,或处理需要检查在存储过程调用中的输出或返回参数的值的查询。第三个就是Recordset对象,它被用来获取数据。Recordset对象存放查询的结果,这些结果由数据的行(称为记录)和列(称为字段)组成。每一列都存放在Recordset的Fields集合中的一个Field对象中。如此便实现了用户应用程序与数据库之间的数据通信,即VC++与Microsoft Access数据库之间的数据通信。

4 结论

原子滑车的结构相当复杂,设计过程中如果要制造实物样机需要好几个月的时间,在Pro/E下通过二次开发技术,设计人员可以直接选择所需的零部件(如图2所示为自动生成的侧导轮轴),能够快速实现原子滑车相关零部件的设计更新以及装配干涉检查等,从而减少设计人员的工作量,缩短设计周期,降低企业开发成本。该方法同样适用于其他游乐设施的快速数字化设计。

图2 自动生成的部件图

[1] Shih Zen-Chung.Proceedings-Virtual Reality Annual International Symposium[J].Virtual roller coaster,2000(3):225-232.

[2] 钟建琳.Pro/Engineer典型机械设计[M].北京:机械工业出版社,2002.

[3] 李世国.Pro/TOOLKIT程序设计[M].北京:机械工业出版社,2003.

猜你喜欢

轮轴滑车对话框
超声用于腱鞘滑车系统研究进展
滑车大赛
正常恢复虚拟机
煤矿运输设备链轮轴组成套检修设备的设计及应用
Bootlace Worms’Secret etc.
防拉伤遛狗绳
What Is Beauty?
儿童版“速度与激情” 尽在PB1儿童滑车嘉年华
50 0kV王店-嘉善增容改造大转角塔放线施工
浅谈VB的通用对话框《CommonDialog》控件的使用