1 引言
随着科学技术的进步,现代制造业正朝高速、高效和高精度方向发展,对机床结构和性能提出了越来越高的要求。因此,如何适应市场需求,在复杂多变的市场经济中,快速高质量地设计制造出市场所需的切削加工设备是制造行业竞争的焦点。所以将计算机辅助设计(CAD)技术应用到机床设计当中一直是众多厂家的愿望。以前的CAD软件大都采用面向过程的设计方法编写,不可避免的存在系统开发速度慢,周期长,费用高,软件质量差,可读性、可靠性、易维护性差等缺陷。随着计算机技术的发展和广泛应用,设计的方法和手段也随之不断改进和完善。面向对象方法正引起人们的关注和重视。对象是对现实世界基本成分的一种抽象,每个对象都有其自身的运行规律(行为)和内部状态(属性)。通过类比把具有相同或相似属性和行为的对象抽象形成对象类(归纳),对象类之间还可以通过继承机制,使得子对象类具有某些父对象类的属性和行为,形成层次结构(演绎),不同的对象类的组合及相互作用(通过消息实现)就构成了我们所要研究和分析的客观系统。面向对象的软件开发关键是建立一个统一的模型———对象模型,充分分析对象以及对象之间的关系和作用,对分析的模型加以细化、调整,实现概念模型到计算机模型的面向对象转化,最后用面向对象的语言实现该模型。
图1 主传动系统对象模型
2 模型建立
根据面向对象的方法、原理和机床主传动系统的特点,首先要建立主传动系统的对象模型。基于对象的划分原则,整个系统由以下不同的对象类组成,如图1所示。在模型的层次结构中上层与下层对象类既有包含与被包含的关系,也有继承与被继承的关系,从上到下,从整体到局部把系统逐步细化,分解成容易管理与设计的各个对象类。还可以这些对象为基类再派生出一些子类,使得对象更加具体与简单,如:齿轮类可以派生出两个子类,固定齿轮类和滑移齿轮类等。这样整个系统的设计就演化成对各个子类的设计和类与类之间关系的分析与实现上。
3 模型设计
在对象模型的基础上,再对每个对象类进行详细设计,分析出每个对象类的属性和方法,形成系统的概念模型,用表达式A:{b,c,d,e,…}表示,其含义为A有属性b,c,d,e…。例如:
主轴类:{轴端类型,轴承配置形式,前轴承直径,后轴承直径,内孔直径,齿轮处直径,主轴跨距,主轴支撑形式}
固定齿轮类:{模数,齿数,孔径,键高,键宽,轴键槽深度,轮毂键槽深,类型}
轴承类:{轴承类型,小径,大径,宽度,额定动载荷,额定静载荷,小径最小安装尺寸,大径最大安装尺寸}
螺纹类:{类型,螺纹大径,小径,中径,长度}
节点类:{子节点的数目,父节点指针,子节点指针,数据项,作图标志}
传动级类:{主动齿数,被动齿数,传动副数,级比指数,传动比,父节点数目}
…………………………………………
其中:节点类和传动级类属于中间设计所需类,用于转速图和传动系统图的实现。
在对象模型和属性分析的基础上,便可以用面向对象的计算机语言将这些对象类表达出来,实现现实中的概念模型向计算机内的逻辑模型的转化,通过一定的算法和运行环境机制最终完成软件的设计。
4 系统实现
在对象模型和概念模型的基础上将整个软件的设计分解成5个子模块:运动参数设计模块、传动零件初步计算模块、操纵机构模块、绘制装配草图模块、零件校核模块。通过这5个模块逐步实现对每个对象的设计,从而完成系统的设计。本软件使用C++语言,开发工具是Visual C++ 6.0,运行环境是Windows 95/98或Windows NT。现以固定齿轮类为例,说明类的描述。
ClassCFixGear //固定齿轮类
{
private:
float modula: //模数
int numberofchishu: //齿数
int innerdiameter: //孔径
int jianhigh: //键高
……
public:
CMainAxisPart(): //构造函数
~CMainAxisPart(): //析构函数
void GetXXX(): //获得当前齿轮状态的函数
…………………
void SetXXX(XXXxxx): //设置齿轮状态函数
…………………
fload CalTouch(): //按接触疲劳强度计算模数
fload CalBend(): //按弯曲疲劳强度计算模数
int JiaoHe(floadm,intz): //校核齿轮
void OnDraw(CDCpDC,CPointpoint)://在显示设备中画出齿轮
……………………
}
各个类之间的数据协调与传递是通过消息机制和Visual C++特有的文档类视图类的结构实现的,如图2所示。由图知通过这些联系可将所有彼此相互独立的对象类有机地结合起来,并且这种结构是低耦合度、高聚合度的,某个类的改变对其它类影响极小,只有消息的改变,其相应的对象才有相应的反应,表现出相应的形态。
图2 各类之间的连接关系
通过这些类的定义、函数的实现和类之间联系,可方便地实现系统中的每个模块,快速开发出相应的CAD软件。同时类具有继承性、多态性、易理解性和可扩充性,这使得所开发出的软件易维护,功能易扩充,代码可重用,系统升级、修改变得简单容易。
5 数据库设计
在机床设计中需要查阅大量的数据、资料,一般全都是靠人的手工去查询,既繁琐又容易出错。在本系统中运用数据库技术将这些数据、资料整理汇总成数据库,包括如下表项:齿轮齿数库、齿轮材料库、各类轴承库、螺纹库、典型主轴组件库、零件验算所需的参数库等。数据库是用微软的SQL Server实现的,应用程序与数据库的接口用的是ODBC技术。Visual C++对ODBC的支持是通过CRecordSet类和CDatabase类实现的,在应用程序中生成一个CRecoedSet的派生类和CDatabase实例就可以方便、快速、安全地与任何一个支持ODBC的数据库相连。
我们按上述方法研制出了较实用的车床主传动CAD系统,试用效果良好。