小模数齿轮滚刀CAD系统
<H1><FONT size=2>1 引言</FONT></H1><DD>由于小模数-齿轮</A>滚刀的模数小(m≤1mm)、滚刀尺寸相对较小且精度要求高,因而其设计有别于普通齿轮滚刀的设计,其结构具有以下特点:①小模数剃前齿轮滚刀由于凸角很小难以加工,因此需采用小压力角,以非均匀留剃形式减少磨损;②滚刀采用整体式结构,而不是镶齿或装配式结构;③无需键槽;④容屑槽采用直槽型式。 </DD>
<DD>采用传统方法设计小模数齿轮滚刀时计算量和绘图量大,其中还有许多繁琐的重复性工作。而将以ObjectARX的应用工具为载体、用VC++编写对话框以及使用数据库管理技术开发的 AutoCAD 系统用于小模数齿轮滚刀的设计,可大大简化小模数齿轮滚刀的设计计算,并可自动校核铲背曲线。
<H1><FONT size=2>2 参数化设计的特点</FONT></H1></DD>
<DD>AutoCAD 是一种开放体系结构的应用程序,用户可以利用它进行定制和编程,是参数化设计常用的开发平台,其主要的开发系统有AutoLISP、ADS及 ObjectARX等。AutoLISP是CAD早期版本的编程语言,是一种解释性编程语言,不必编译,通俗易懂,但缺点是运行速度慢;由C 语言和提供给开发者用来创建应用程序的C程序库组成的ADS(AutoCAD Development System)随着AutoCAD R11被我们所认知,现已以ADSRX 的形式被集成到ARX中。ObjectARX应用程序是一个动态链接库(DLL),其运行速度快,能共享AutoCAD的地址空间并可直接调用 AutoCAD的函数,同时能提供一个面向对象的C++应用程序设计接口,是AutoCAD推出的新一代二次开发工具。因此,本系统程序采用ARX应用程序进行参数化设计,其程序结构具有以下特点:
<OL>
<LI>利用ARX 开发-工具</A>,可方便地使用MFC 开发ObjectARX 应用程序;提供了AutoCAD内部实体和其他对象的数据结构,使应用程序和AutoCAD完全结合在一起。</LI>
<LI>ObjectARX环境提供了一组类,使开发者能够创建基于MFC的用户界面,其外观和内建与AutoCAD的用户界面完全相同,因此具有良好的人机对话功能。</LI></OL>
<H1><FONT size=2>3 滚刀外径参数优化及铲磨可能性校核</FONT></H1>
<OL>
<LI><B>滚刀外径参数优化</B>
<DD>通常,滚刀外径可按式(1)计算。
<TABLE width=550>
<TBODY>
<TR>
<TD align=middle><FONT size=2>D<SUB>ed</SUB>=S<SUB>0</SUB>2 sin<FONT face=symbol>a</FONT><SUB>fn</SUB>/(4?cos2<FONT face=symbol>b</FONT><SUB>f</SUB>)</FONT></TD>
<TD width=10><FONT size=2>(1)</FONT></TD></TR></TBODY></TABLE>式中:?——被切齿轮齿面波度(?m) </DD>
<DD>S<SUB>0</SUB>——工件每转一转时滚刀沿工件轴向的进给量(mm/n) </DD>
<DD><FONT face=symbol>a</FONT><SUB>fn</SUB>——滚刀分度圆法向齿形角 </DD>
<DD><FONT face=symbol>b</FONT><SUB>f</SUB>——被切齿轮分度圆上的螺旋角<BR>
<TABLE align=right>
<TBODY>
<TR>
<TD width=400 align=middle><FONT size=2>
<P align=center><IMG border=0 alt="" src="http://www.chmcw.com/upload/news/RCL/13220_6ke4dg2008-03-03-10-46-58105.jpg"><BR><B>图1 滚刀外径对齿轮齿面波度的影响</B>(<FONT face=symbol>a</FONT><SUB>fn</SUB>= 20°,<FONT face=symbol>b</FONT><SUB>f</SUB>= 15°)</P></FONT></TD></TR></TBODY></TABLE></DD>
<DD>由式(1)可得被切齿轮齿面波度与滚刀外径的关系曲线(见图1)。 </DD>
<DD>由图1可知,随着滚刀外径的增大,被切齿轮沿齿向表面的波度将逐渐减小。故对精度要求高的齿轮,应选外径较大的滚刀。但外径的增大应有度,不宜过大:一方面,在加工小模数齿轮时,轴向进给量一般不大于0.5mm/r,过分增大滚刀外径对减少齿面波度无显著效果;另一方面,当滚刀外径大于50mm时,外径对波度的影响已经很小。因而外径取值宜控制在25~63mmm 之间。 </DD>
<DD>外径初始化程序如下: </DD>
<DD>void InitGunDao { …… </DD>
<DD>(if m fmodule > 0 && m fmodule <= 0.15)m_uouterdia = 25; </DD>
<DD>else (if m fmodule > 0.15 && m fmodule <= 0.4)m_uouterdia = 32; </DD>
<DD>else (if m fmodule > 0.4 && m fmodule <= 0.6)m_uouterdia= 40; </DD>
<DD>else (if m fmodule > 0.6 && m fmodule <= 0.8)m_uouterdia= 50; </DD>
<DD>else(m fmodule > 0.8 && m fmodule <= 1.0)m_uouterdia= 63; </DD>
<DD>……}<BR>
<TABLE align=right>
<TBODY>
<TR>
<TD width=400 align=middle><FONT size=2>
<P align=center><IMG border=0 alt="" src="http://www.chmcw.com/upload/news/RCL/13220_lh1hnh2008-03-03-10-47-08833.jpg"><BR><B>图2 铲磨校核流程</B></P></FONT></TD></TR></TBODY></TABLE></DD></LI>
<LI><B>铲磨可能性校核</B>
<DD>用传统方法设计滚刀时,通常采用人工作图法对于滚刀铲磨可能性进行判别,其准确性无法保证,常导致铲磨滚刀轮齿齿背时,砂轮和下一个齿发生干涉。因此在小模数齿轮滚刀CAD 系统中需要编制自动校核铲磨可能性的程序,其流程如图2 所示。使用时,通过对话框交互修改参数,完成铲磨校核,具体程序如下: </DD>
<DD>void Check { …… </DD>
<DD>BOOL flag = TRUE; </DD>
<DD>while(flag) { flag = FALSE; </DD>
<DD>for(len = 4/7*len1;len<= 6/7*len1;len + = 1/14*len1) / / 确定铲背曲线与砂轮的交点 </DD>
<DD>{ </DD>
<DD>…… . / / 作图以准备校核 </DD>
<DD>(if dist1>dist2)break;} / / 有干涉吗?若无干涉,跳出循环 </DD>
<DD>(if dist1 <= dist2){ </DD>
<DD></DD>
<DD>CanShuDlg. Domode(l); / / 对话框交互修改铲背量K、外径D<SUB>ed</SUB> </DD>
<DD>flag = TRUE;}} ……}</DD></LI></OL><BR>
<TABLE align=right>
<TBODY>
<TR>
<TD width=350 align=middle><FONT size=2>
<P align=center><IMG border=0 alt="" src="http://www.chmcw.com/upload/news/RCL/13220_oi9sun2008-03-03-10-47-37857.jpg"><BR><B>图3 面向对象的滚刀CAD 系统信息模型</B></P></FONT></TD></TR></TBODY></TABLE>
<H1><FONT size=2>4 小模数齿轮滚刀CAD程序结构分析</FONT></H1></DD>
<DD>滚刀CAD系统由刀具图纸标题栏参数输入、刀具选择、被切齿轮参数输入、刀具参数输入等模块组成。通过面向对象的分析方法对滚刀CAD系统进行分析,建立如图3 所示的信息模型。在此基础上,再采用面向对象的程序设计语言对对象和对象间的关系进行分析。 </DD>
<DD>为便于拓展齿轮刀具设计的通用性,通过归纳,将齿轮刀具的共性作为基类。此基类依附于各具体齿轮刀具,不必有具体实体,故可设为抽象类。其部分属性如下所示: </DD>
<DD>class Cutter{ </DD>
<DD> </DD>
<DD></DD>
<DD>string Cutter_ID; / / 刀具编号 </DD>
<DD></DD>
<DD>string CutterName; / / 刀具名称 </DD>
<DD></DD>
<DD>string Material; / / 刀具材质 </DD>
<DD></DD>
<DD>string Product_ID; / / 对应产品编号 </DD>
<DD></DD>
<DD>string Designer; / / 设计者 </DD>
<DD></DD>
<DD>string DesignDate / / 设计日期 </DD>
<DD>…… </DD>
<DD>}; </DD>
<DD>滚刀类为刀具类的派生类,自动继承了刀具的一切属性,同时又具有模数、齿数、头数、前角、后角等独有属性,其部分属性如下: </DD>
<DD>class GunDao :public Cutter{ </DD>
<DD> </DD>
<DD></DD>
<DD>float GD_Module; / / 滚刀模数 </DD>
<DD></DD>
<DD>UINT GD_Number; / / 滚刀齿数 </DD>
<DD></DD>
<DD>UINT GD_TouShu; / / 滚刀头数 </DD>
<DD></DD>
<DD>…… </DD>
<DD>public: </DD>
<DD></DD>
<DD>void OnCalculation(); </DD>
<DD></DD>
<DD>void OnDraw(); </DD>
<DD>}; </DD>
<DD>加工机床和工具含有若干具有内在联系的数据项,将其归纳为一种结构体,说明滚刀加工的一些基本属性,以便在滚刀类中定义: </DD>
<DD>struct MACHINE{ </DD>
<DD></DD>
<DD>string machine_ID; / / 机床型号 </DD>
<DD></DD>
<DD>string machine_name; / / 机床名称 </DD>
<DD></DD>
<DD>string machine_cutter_ID; / / 加工刀具编号 </DD>
<DD>…… </DD>
<DD>} </DD>
<DD>通过建立以上类的对象及定义结构体,便可着手按如下步骤编制软件:
<OL>
<LI>定义对象。</LI>
<LI>定义计算函数:
<DD>void GunDaoDlg::OnCalculation() </DD>
<DD>[UpdateData(TRUE); </DD>
<DD></DD>
<DD>dlg.m_fgdpmodule = m_fgearmodule; </DD>
<DD></DD>
<DD>dlg.m_fgdpyalijiao = m_fgearyalijiao; </DD>
<DD></DD>
<DD>dlg.m dgdpluojiao =(180*FengYuanLouJiao Ca(l)/ PI); </DD>
<DD></DD>
<DD>…… </DD>
<DD></DD>
<DD>dlg.m_fgdpzhouchixingjiao = m_fgearyalijiao; </DD>
<DD></DD>
<DD>dlg.m_dgdpzhouchiju = ZhouXiangChiJu Ca(l); </DD>
<DD></DD>
<DD>dlg.m_dgdpzhouchihou = ZhouXiangChiHou Ca(l); </DD>
<DD></DD>
<DD>int ret = dlg.DoModa(l); </DD>
<DD>} </DD></LI>
<LI>消息链接。</LI>
<LI>在Object ARX环境中调用Object ARX全局函数编写绘图函数。</LI></OL>
<H1><FONT size=2>5 结语</FONT></H1></DD>
<DD>小模数齿轮滚刀AutoCAD系统采用全参数化设计,实现了参数优化及齿背曲线自动校核,可显著提高设计的科学性和可靠性;同时对表面粗糙度、形位公差等可直接进行插入标注,大大减少了工作量,提高了设计效率。 </DD>
页:
[1]