1 引言
齿轮刀具的常规设计方法相当繁琐,专业性强,涉及上百个设计参数,数据环环相扣,计算任务量大,且容易出错,造成设计的反复。齿轮刀具设计式的落后使齿轮生产周期延长,精度难以保证,制约了齿轮产品的生产效率。为解决这一问题,本研究以参数化设计为基础,将齿轮刀具设计过程中的计算和绘图进行了集成,开发出了齿轮刀具CAD 软件系统,较好解决了齿轮生产中的"瓶颈"问题。
2 齿轮刀具CAD 系统的设计
2.1 系统功能设置
本软件系统设置了包括6 类9 种齿轮刀具的辅助设计功能和刀具设计数据库(见图1)。系统除可完成齿轮刀具的辅助设计外,还开发了常见的机械传动设计功能,如齿轮变速箱的自动设计等;并开发了二维绘图和显示功能,可对自动生成的刀具工作图进行修改和缩放,从而拓展了软件的使用范围。
运行系统后,齿轮刀具的设计流程如下:单击齿轮刀具主菜单→选择需要设计的齿轮刀具→在对话框中交互输人设计参数→自动进行设计计算→自动绘制刀具工作图→存储数据文件。
2.2 齿轮刀具设计系统结构
齿轮刀具设计系统结构主要由主程序、刀具设计应用程序和刀具设计数据库三部分组成(见图2) 。
(1)主程序:用于控制各程序模块的调用。
(2) 刀具设计应用程序:主要包括被加工齿轮参数输入、齿轮刀具原始参数输入、齿轮刀具结构参数计算、刀具工作图绘制、范成加工模拟等5 个模块。
(3) 刀具设计数据库:用于存储被加工齿轮原始参数、齿轮刀具设计结果、齿轮刀具设计标准和规范数据和齿轮刀具检验规范。
3.1 绘图函数
在开发软件时,没有利用VC++ 的绘图函数,而是根据设计需要编写了线(CGreateLine ( ) )、圆( CGreateCircle() )、圆弧( CGreateArc ( ) )、B 样条曲线( CGreateBSpline() )、渐开线( CGtLine ( ) )等矢量化绘图函数,并编写了剖面线、尺寸标注等函数。
3.2 参数化绘图
通过查询齿轮刀具设计手册和对实际加工的分析总结可知,对于每一类齿轮刀具,其结构和工作图基本类同,只是尺寸和参数不同。因此,本软件没有采用建立参数化图库的方法,而是将每一类刀具的各个视图通过编程实现参数化驱动,并将尺寸和表面粗糙度标注也写人函数中。这样做虽然使软件的通用性略受影响,但可以大量简化程序。函数体如下:
void CCutData: :OnDrawTool_1() //画主视图
{
......
drawDlg. PolyLine(pps ,2); //画轴向齿形
......
drawDlg. Polyhatch( ph, 13 , 45 ,1. 6); //绘制剖面线
......
For(i=O;i<nurn;i+ +) //轴向齿形绘图
.....
drawDlg. Line_ Dim( tp[1] , tp[2] , tp[0] , text , 20); //标注分度圆
......
tt.OnRough((int)pl[12][0]+ 1O,(int)(pl[12][1]) ,3 , dlg2 .m_ r1, 180); //标注粗糙度
......
}
void CCutData: : 0nDrawTool_2()//画侧视图
{
......
drawDlg. Circle( center,r3); //齿顶圆
......
drawDlg. PLine( t2[i], t2 [i + 1]);//旋转变换
......
drawDlg. Line _ Dim( dim_P[1] ,dim _ p[0] , center, str ,20); //标注内径公差
......
}
void CCutData: :OnDrawTool_3() //画俯视图
{
......
drawDlg. PolyLine(DP, 11) ;//画出第一齿
......
drawDlg. PLine(pp[0], pp[1]); //画出齿型中心线
.......
}
3.3 图形绘制精度
为了保证绘图精度,为后续的CAM 提供准确的图形数据,在自动绘图时不采用简化画法,而是全部按照投影规律绘制精确轮廓线。为此,开发了一些特殊曲线绘图函数,如滚刀侧视圈中的铲背部分的阿基米德螺线、侧视图中刀具齿廓轮廓渐开线等,按照这些曲线的生成规律,采用数学插值算法,编制了相应的函数。
4.1 数据处理
与齿轮刀具设计过程相关的数据主要有三类,根据它们不同的特点分别进行处理 。
(1)原始数据的处理:此类数据在整个设计过程中是保持不变的,如被加工齿轮的模数、分度圆压力角等。这些数据往往来自被加工齿轮图纸,为避免输入的繁琐,将这部分数据提前存储在"被加工齿轮参数"数据文件中,在计算时直接从数据文件中调用即可。