蜗轮滚刀CAD系统自定义函数库的开发
2012-12-26赵明洁
赵明洁,徐 岩
(河北师范大学职业技术学院,河北石家庄 050024)
蜗轮滚刀CAD系统自定义函数库的开发
赵明洁,徐 岩
(河北师范大学职业技术学院,河北石家庄 050024)
以AutoCAD为开发平台,利用其内嵌语言Auto LISP为开发工具开发蜗轮滚刀CAD系统时,由于Auto LISP本身提供的函数不能满足滚刀设计过程中的全部需要,因此在系统中开发了计算类、标注类、绘图类等补充函数共同组成自定义函数库并设计成一个独立的模块,供系统各模块调用。通过系统的运行,验证了自定义函数库的必要性和有效性。
蜗轮滚刀;机械CAD;Auto LISP;自定义函数库
随着CAD技术在机械工程中的普遍应用[1-2],各类CAD系统被广泛应用于机床、夹具、刀具等的设计中,并正向着深度和广度方向逐渐延伸。AutoCAD是一个在机械设计中有着广泛应用的开放式通用绘图软件[3],该软件功能强大,使用简单方便,允许用户利用其内嵌的Auto LISP语言设计开发各种应用程序。所以在设计开发蜗轮滚刀CAD系统时[4-6],采用了AutoCAD这一通用绘图软件。虽然Auto LISP本身提供了基本函数、实用函数、内存管理函数等多种函数,但是,针对蜗轮滚刀设计过程中的特殊要求,特别是绘图、标注等功能的实现问题,Auto LISP本身提供的函数还不足以满足设计中的全部需要。所以,在系统中专门设置一个自定义函数库模块,在此模块中,通过分析研究蜗轮滚刀设计中的应用需求,分别扩充了数值计算类函数、绘图类函数和标注类函数的自定义函数,用Auto LISP语言进行定义和开发,作为补充函数共同组成自定义函数库,供系统其余各模块调用。
1 数值计算类函数
1.1 数值圆整函数
滚刀长度要根据计算值和手册中相关表格或选用机床的型号进行圆整,设计过程中也有不少数值需要按一定精度进行圆整。因此,在自定义函数库定义了可以按不同精度要求对不同的数值进行圆整的函数。设计时,利用计算所得的待圆整数值和要求精度相除并取整,然后进行四舍五入处理,圆整过程在程序内部完成。定义的函数为round(ab)。
图1 数值圆整程序框图Fig.1 Flow sheet of numerical roundness
即当圆整精度为0.1时5.34圆整为5.3。
1.2 角度转换函数
系统从用户界面接收到的是以度、分、秒形式表示的度数,而在计算、绘图过程中使用的是弧度或用小数形式表示的度,但Auto LISP函数和AutoCAD命令不提供此项转换功能,所以,作为Auto LISP函数和AutoCAD命令的补充,在自定义函数库定义了将度、分、秒转换为用小数形式表示的度的函数。该函数既可识别用键盘输入半角的分和秒,也可识别用软键盘输入的全角的分和秒。该函数计算程序框图如图2所示,第1次循环是判别全角的分和秒,第2次循环是判别半角的分和秒。
同时,系统在进行参数输出时,为了符合大多数用户的读数习惯,都是将计算过程中产生的用小数形式表示的度转换为度、分、秒的形式输出,因此,此模块同样定义了将用小数形式表示的度转换为度、分、秒的函数。而在计算过程中需要不断在用小数形式表示的度和弧度之间转换,因此,在此模块还定义了用小数形式表示的度和弧度相互转换的函数。此2种函数与ftod函数共同组成了角度转换函数。
1.3 三角函数补充函数
Auto LISP语言中定义了正弦、余弦、反正切函数可供调用,但未定义反正弦、反余弦、正切、余切和反余切函数,而在设计计算过程中要经常用到这些函数,所以,此模块定义了正切补充函数、余切补充函数、反正弦补充函数、反余弦补充函数和反正切补充函数共同组成了三角函数补充函数。反正弦补充函数程序如下:
图2 角度转换程序框图Fig.2 Flow sheet of angular transformation
2 标注类函数
2.1 粗糙度标注函数rough(ptangtxt)
在AutoCAD环境下标注表面粗糙度都是将其定义为块然后插入,应用不便,而开发的对话框式表面粗糙度标注工具采用交互式,不适用于在程序中自动完成标注。因此,通过定义表面粗糙度标注函数在系统中实现了表面粗糙度的自动标注,并且可以标注任意角度的表面粗糙度符号且使数值书写方向均符合国标规定。
在蜗轮滚刀工作图中,标注表面粗糙度时只有高度参数,其国标要求形式如图3a)所示。
具体设计时首先在指定的pt位置按图3b)实线所示的形式绘制一个向上的表面粗糙度符号,然后按照系统读取的角度以pt点为基点进行旋转,使其在pt点处保证图3b)中的虚线与该点处的轮廓线垂直。
粗糙度数值书写位置分2种情况:当表面粗糙度符号尾端偏上或偏左时,书写基点为p点,文本对齐方式为BR即右下对齐,文本旋转角度同标注角度,如图3b)所示;当偏下或偏右时,书写基点同样为p点,但文本对齐方式为TL即左上对齐,文本旋转角度为(标注角度-π),如图3c)所示。
该函数通过指定点pt、旋转角度ang和由数据文件中读取粗糙度数值txt而标注表面粗糙度。表面粗糙度数值字高与表面粗糙度符号高度均通过读取设定的尺寸字高而自动设置。
2.2 基准符号标注函数
图3 表面粗糙度的标注Fig.3 Surface roughness labeling
蜗轮滚刀工作图中要求标注形位公差和基准符号,为此定义了基准符号标注补充函数datum(ptangtxt)。其中pt表示标注点,如图4所示,ang表示标注方向角度,txt是基准字母,其书写基点为cenpt。利用该函数标注的基准符号粗实线、细实线和基准名称字母分别绘制在各自的图层,但组合成为一个“组”,除可以单独改变名称字母外,不可对各部分进行单独操作。
利用该补充函数,在编程中通过读取标注处轮廓线的角度而标注不同方向的基准符号。基准名称字母的字高通过读取设定的尺寸标注字而自动设置。
2.3 双半径标注函数
在蜗轮滚刀工作图中,标注齿形图圆角和退刀槽圆角等时一般是用如图5a)所示R1和R2的形式,即两圆角用两条尺寸线共用一尺寸文本表示,自定义函数库内定义了此种类型的半径标注函数。
标注时各位置点的确定如图5b)所示,通过指定pt1和pt2两点以及pt点相对于pt1和pt2连线的方向进行标注。系统首先搜索读取pt1,pt2和pt范围内的圆弧半径和圆心cen1,cen2的坐标,则pt1,cen1连线和pt2,cen2连线的交点即为pt,然后以pt为起点,分别沿pt,pt1连线和pt,pt2连线方向绘制包含箭头的多义线,多义线的长度为pt至cen1的长度与圆弧半径的和。文本“R1”和“R2”的书写基点为pt,“R1”形式的文本对齐方式为TC即中上对齐,“R2”形式的文本对齐方式为BC即中下对齐。
图4 基准符号标注Fig.4 Fiducial mark labeling
图5 双半径标注Fig.5 Double radius mark
3 绘图类函数
3.1 图层变换函数
绘制滚刀工作图时刀齿等需要进行阵列,若逐条线选择再进行阵列不仅增大编程的工作量,而且使得程序复杂。因此,通过定义图层变换函数,可以在绘图时将待阵列图形绘制在备用图层内,然后选择该图层内全部图形对象进行阵列,再用图层变换函数自动将其转换到应在图层,使得程序简单,容易维护。同样,利用该函数还可以对其他类似的绘图操作进行图层转换。转换图层语句如下。
3.2 填充螺旋升角线函数
在蜗轮滚刀工作图中有一种特殊的表示方法,即用相互交叉的双点划线以剖面线的形式填充主视图的未剖部分,双点划线的方向和倾斜角度要符合蜗轮滚刀的旋向和螺旋升角。若用AutoCAD中的剖面线填充方式实现此功能编程比较繁琐,不易判断旋转角度,并且需要在不同图层间反复转换。因此,在自定义函数库中定义了填充螺旋升角线函数hat(pt),通过从系统中自动读取螺旋升角和旋向并以pt点为填充区域的内部点而自动填充螺旋升角线。填充螺旋升角线函数hat(pt)的LISP程序如下。
另外,还有其他一些类似问题需要解决,因此,在此自定义函数库中,还定义了其他一系列函数与以上函数共同组成自定义函数库,供整个系统各模块调用。
4 结 语
设计开发了数值计算、标注、绘图3大类补充函数共同组成自定义函数库,该函数库已成功应用在笔者开发的蜗轮滚刀CAD系统中。本函数库所开发的自定义函数作为Auto LISP函数的补充,不仅满足了蜗轮滚刀CAD系统设计的特殊需要,而且丰富了Auto LISP的函数,扩展了AutoCAD的功能,并且可以用于其他CAD系统的应用开发。
[1]董金华,李才泼,刘顺芳,等.网络环境下三维CAD技术研究[J].河北科技大学学报(Journal of Hebei University of Science and Technology),2010,31(4):342-345.
[2]董金华,杨松林.标准单元测试环境的CAD二维图形自动判别技术研究[J].河北科技大学学报(Journal of Hebei University of Science and Technology),2009,30(3):223-226.
[3]吴永进,林美樱.Auto LISP&DCL基础篇[M].北京:中国铁道出版社,2003.
[4]徐 岩,汤百智,张艳华.蜗轮滚刀CAD系统中工作图的自动绘制[J].现代制造工程(Modern Manufacturing Engineering),2005(7):54-56.
[5]马新广.蜗轮滚刀的计算机辅助设计[J].机械工程与自动化(Mechanical Engineering & Automation),2010,16(6):14-15.
[6]田培棠.齿轮刀具设计与选用手册[M].北京:国际工业出版社,2011.
Development of self-defined function database for the worm hob CAD system
ZHAO Ming-jie,XU Yan
(Vocation Technology College,Hebei Normal University,Shijiazhuang Hebei 050024,China)
When making use of Auto LISP of AutoCAD to develop the CAD system of the worm hob,the functions provided by Auto LISP can't fulfill all requirements in the design process of the worm hob.So some complementary functions such as calculating,dimensioning and drawing are developed to make an unattached module.It can be transferred by every module of the system.Through running the system,the necessity and the validity of the database are verified.
worm hob;mechanical CAD;Auto LISP;self-defined function database
TP391.72
A
1008-1542(2012)04-0347-04
2012-03-19;责任编辑:冯 民
河北省教育厅基金资助项目(2010143)
赵明洁(1960-),女,辽宁大连人,副教授,主要从事机械设计方面的研究。