利用VLISP编程,实现螺纹加工三维动态仿真

在机械传动中,螺纹的应用十分广泛,尤其是在数控设备上更是大量使用滚珠丝杠。对这些螺纹零件,采用CAD/CAM技术进行设计与制造是离不开仿真技术的,本文主要介绍的是基于AutoCAD平台,利用VLISP编程,根据螺纹加工原理、三维实体造型和对象布尔运算等实现螺纹加工三维动态仿真技术。

一、基圆柱体造型

根据国标(GB196—81)规定,三角螺纹的基本尺寸有外径D、中径D2、内径D1、螺距P、基本三角形高度H和牙形角60°。按有关规定,滚珠丝杠公称直径为D,长度为L,滚珠直径为db。将基圆柱体的,径取为D,长度取设计值L,则程序代码如下:

(setq d (getreal"\n请输入螺纹外径:")

l (getreal"\n请输入螺纹长度:")

)

(command "cylinder" (list 0 0 -1) "d" d (* -1 l ) );画圆柱体

二、切削刀具造型

螺纹加工常用车削、铣削等加工方法,下面仅以车削三角螺纹和铣削滚珠丝杠为例来说明。

1. 三角螺纹车刀简化模型

零前角螺纹车刀的创建,如图1所示其代码如下:

图1 车刀多边形

(setq p1 (list 0 0 0));设当前坐标原点为P1

(setq p2 (polar p1 0 (/ p 4)))

(setq p3 (polar p2 (/ pi 3 -1) (* 5 h)))

(setq p4 (polar p3 (/ pi 2 -1) 10))

(setq p5 (polar p4 pi (+ (/ p 4)(* 5 h))))

(setq p6 (polar p5 (/ pi 2) 10))

;定义车刀多边形p1 p2 p3 p4 p5 p6点的相对坐标

(command "pline" p1 p2 p3 p4 p5 p6 "c" "") ;用多段线形成封闭多边形

(command "extrude" "l" "" -5 "");拉伸(成车刀模型

(setq e1 (entlast));返回图元名

(command "move" e1 "" "0,0,0" (list (/ p 2 -1) (/ d1 2 -1) 2.5));移动到起刀点

2. 滚珠丝杠圆盘铣刀简化模型

圆盘铣刀是根据丝杠螺纹槽的法剖面廓形而创建的成形铣刀,为简化(算可用轴向剖面廓形代替,主要代码如下:

(setq db (getreal"\n请输入滚珠直径:"));定义铣刀截面多边形各节点P11、P12、P13、P14,如图2所示

图2 铣刀截面多边形

(setq p11 (polar (list 0 0 0) (/ pi 2) 23.5))

(setq p12 (polar p11 0 db))

(setq p13 (polar p12 (/ pi 2 -1) 13.5))

(setq p14 (polar p13 (* pi -1) db))

;定义铣刀截面多边形各节点P11、P12、P13、P14

(command "pline" p12 p13 p14 p11 "a" "cl" "") ;用多段线绘制铣刀截面多边形

(command "revolve" "l" "" "x" "" );旋转生成铣刀体

(setq o1 (entlast));返回图元名

(command "ucs" "y" "" "" "color" 1);坐标系绕Y轴转90°,并指定颜色为红色

(setq p20 (list 0 0 0));设当前坐标原点为P20

(setq p21 (polar p20 0 3.3))

(setq p22 (polar p21 (/ pi 2 ) 5.2))

(setq p23 (polar p22 (/ (* 105 pi )180) 1.3))

(setq p24 (polar p20 (/ pi 2 ) 6))

(setq p25 (polar p20 (/ pi 2 ) 5))

;定义铣刀槽截面多边形各节点P20、P21、P22、P23、P24及基点P25,如图3所示

>3 铣刀槽多边形

(command "pline" p20 p21 p22 p23 "a" p24 "l" "c" "");用多段线生成铣刀截面多边形

(command "extrude" "l" "" (* 2 db) "");拉伸形成刀槽体

(setq o2 (entlast));返回该图元名

(command "move" o2 "" p25 (list 0 -25 -1));以基点P25移动刀槽体到指定点

(command "array" o2 "" "p" p21 20 "" "" );将刀槽体环形矩阵20个

(setq ss (ssget "x" '((62 . 1))));以红色为过滤器创建选择集ss

(command "subtract" o1 "" ss "");将铣刀体与刀槽体进行布尔差运算生成铣刀简化)型

(setq o3 (entlast));返回该图元名

(command "rotate" o3 "" p21 5);铣刀旋转5°

(command "move" o3 ""

(list 0 0 0) (list 0 (* -1 (+ 25 (/ (- d db) 2))) 0));将铣刀移动到切削位置

三、螺纹加工三维仿真

1.车削螺纹仿真原理

螺旋线的数学模型是:其中,p为螺距,为瞬时角,r为基圆半径。基圆柱体每旋转一个步距角,车刀平行于圆柱体轴线进给一个量,将车刀复制件与圆柱体布尔差运算,再进行下一个循环。

主要代码如下:

(command "ucs" "y" "" "" "color" 3);坐标系绕Y轴转动90°,指定颜色为蓝色

(setq k (* (/ (+ l 2) p )2 pi));设定循环次数

(while (<= i k);循环条件

(setq pt1 (list 0 0 (* v i -1)));设移动起点坐标

(command "rotate" a "" "0,0,0" (/ (* 0.1 180) pi));圆柱体绕原点转一个步距角

(setq i (+ i 0.1));给循环变量一个增量角

(setq pt2 (list 0 0 (* v i -1)));设移动目标点坐标

(command "move" e1 "" pt1 pt2);使车刀移动一个进给量

(command "copy" e1 "" "0,0,5" "0,0,5");在原位复制车刀

(setq e2 (entlast));返回复制车刀图元名

(command "subtract" a "" e2 "");将圆柱体与车刀复制件布尔差运算

);循环体

2.铣削滚珠丝杠仿"原理

基圆柱体每旋转一个步距角,将沿其轴线进给一个量。铣刀位置不动,将其复制件与基柱体进行布尔差运算,再进行下一个循环。

其主要代码与螺纹车削相近,核心代码如下:

(while (<= i k)

(setq pt1 (list 0 0 (* v i )));设移动起点坐标

(command "rotate" a "" "0,0,0" (/ (* 0.1 180) pi));圆柱体绕原点转一个步距角

(setq i (+ i 0.1));给循环变量一个增量角

(setq pt2 (list 0 0 (* v i )));设移动目标点坐标

(command "move" a "" pt1 pt2);圆柱体移动一个进给量

(command "copy" o3 "" "0,0,5" "0,0,5");在原位复制铣刀

(setq o4 (entlast));返回复制铣刀图元名

(command "subtract" a "" o4 "");将圆柱体与铣刀复制件布尔差运算

)

3.仿真程序流程

我们采用主控程序调用仿真车削子程序,或调用仿真铣削子程序的方法实现加工动态仿真。仿真效果渲染如图4和图5所示。

图4 车削螺纹仿真

图5 铣削丝杠仿真

四、结束语

三维动态仿真技术,是现代制造业不可缺少的技术之一。螺纹加工仿真原理可直笛菔玖慵表面的成形过程,检验零件表面的加工质量,也可用于其他零件加工仿真。基于AutoCAD,利用VLISP编程实现加工仿真,设计结果模拟运行等,是有效的途径之一,对于从事CAD/CAM技术人员有一定的参考意义。

AI助手