0 引言
在挤塑机 、注塑机等塑料机械上 , 螺杆是关键零件 。 这类螺杆结构形状复杂 ,精度要求较高 。 常用的有圆柱形 、圆锥形 、双圆锥形 、等导程 、变导程 、渐变导程 、等槽深 、变槽深等等 。 当其导程是渐变的时 ,用一般的机床是无法按设计要求完成加工的 。多年来 ,加工这类螺杆的数控机床一直依赖进口 。由于是专用设备 , 价格一直居高不下 ,且对用户有着种种用途限制 。
为摆脱这种受制于人的局面 , 我厂与国内的数控系统生产厂家合作开发了一种专门用于铣削塑料机械行业中各种异形螺杆的系列数控铣床 。使用的数控系统 , 内装有一组用于铣削渐变螺旋线的软件 。由于此软件较特殊 ,数控系统厂家只此一家 ,故系统的价格多年来一直降不下来 , 严重影响了整个机床的性价比 。另外 ,有的客户由于对某种系统较熟悉 ,要求使用该系统等等 。在这种专用铣床投放市场几年后 ,种种理由要求我们能选配多种数控系统来完成对它的控制 。
作为技术人员 ,提高产品的性价比 ,努力满足每一个用户的要求 ,帮助销售人员扩大市场占有率是职责所在 。在涉及塑料行业几年后 ,我们发现 , 在塑料行业中 , 绝大部分异型螺杆是导程线性变化的螺杆 。于是我们克服了种种困难 ,终于编制出一套用于加工导程线性变化的变导程螺旋线的程序 。
1 思路
导程线性变化的变导程螺旋线展开后是一条抛物线 。 任意抛物线经变换后均可写成如式 ( 1) 的形式 :
Z=a *C 2 ( 1)
其中 : Z—升距 ;
a —抛物线系数 ;
C—转角值 。
经推导 ,得出抛物线上任意两点有如下关系式 :
T i +1 -T i=4πa ( C i + 1 -C i)= 4πa ■C ( 2)
L i + 1 -L i=■L *2*a *■C 2 ( 3)
其中 : T i—任一点导程 , T i=2πK i;
K i—展开螺旋线在该点的斜率 ;
L—i定点间的螺距 。
由式 ( 2) 、( 3) 可知 , 假设展开螺旋线上相邻点的转角相等 ,那么其上的导程变化就是线性变化的 ,当已知相邻点间的导程 ,根据式 ( 2) 和式 ( 3) 就可求出展开螺旋线上的任一点的导程 。
我们的思路是 : 在坐标系中 , 根据旋转轴上的坐标 ,把转角细分为一度一度的小段 ,计算出直线轴上每一度要移动的距离 , 用每一组相应的尺寸编入联动指令移动即可 。
线性变化的变导程螺旋线的导程增量在每一圈是相等的 ,每一圈的平均导程依次组成一个等差数列 。长 Z的螺旋线 ,起始点点导程为 R, N圈后导程变为 R+N K( 每一圈的导程的增量为 K) , N=2Z/( R+R+NK) ,旋转的总的角度 C=360 N , 在这五个变量中 ,只要知道 C 、R、K ,就可计算出 N、Z ; 或知道 Z 、R、K,就可计算出 N、C 。
例如知道 C、R 、K,就可计算出 N、Z :
由于 C有正负 ,计算时取绝对值 。
N=C/360;
L 1 =R+K/2; /第一圈的平均导程。
L 2 =L 1 +( N-1)K; /最后一圈的平均导程。
Z=N( L 1 +L 2)/2; /C对应螺旋线的长度。
■L=K/360; /每一度的导程增量。
R1=(R+R+■L )/2; /第一度平均导程。
L 11 =R1/360; /第一度螺旋线的长度。
■X 1 =X*L 11/L ; /第一度螺旋线的变深。
R 2 =(R+■L+R+■L+■L )/2;/第二度平均导程 R1 +■L 。
L 12 =P 2/360; /第二度螺旋线的长度。
■X 2 =X*L 12/Z ; /第二度螺旋线的变深。
第三度 、第四度 、第五度 … …,依次类推 ,直至移动完 C中所有的整数角度 。
再把三轴所有的余数 ■C 、■Z 、■X在一个三轴联动的程序段里移动完毕 。
同理 ,知道 Z 、R 、K ,就可计算出 N 、C 。
这样 ,我们可以在调用程序时赋予六个参数值 :
X 、R 、K 、D 、F 、Z或 C ,就可得出一条很平滑的变深变导程螺旋线或等深变导程螺旋线 。
2 程序
在 F A N U C0i -M C系统的宏程序平台上 ,我们编出的程序如下 :
C : # 3
Z : # 26
X : # 24
R : # 18
K : # 6
F : # 9 /加工时的刀具移动速度 。
D : # 7 /赋值为 Z时是 C轴的旋转方向 , 赋值为 C时是Z轴的移动方向 。
I F[ # 3 E Q# 0] G O T O1 /如赋值是 Z , 从 N1开始执行 。
# 15 =A B S [ # 3] /如赋值是 C , 取绝对值 , 开始计算执行 。
# 19 =2*# 18 +# 6/360/720 /计算第一度螺旋线的长度 。
# 1 =# 18 + # 6/2 /第一圈的平均导程 。
# 4 =# 1 +[ [ # 15 -360] *# 6] /360 /最后一圈的平均导程
# 25 =# 15*[ [ # 15 -360] *# 6] /中间值 。
# 26 =# 15*# 1/360 +# 25/[ 720* 360] /C对应螺旋线的长度 。
# 27 =A B S [ # 26] /# 26的绝对值 。
# 18 =# 18 +# 6/720 /第一度平均导程 。
WH I L E [ # 16 L T [ # 15 -1] ] D O 1 /移动完 C中所有的整数角度后 , 结束循环 。
# 23 =# 24*# 19/# 27 /每一步中 X轴上的移动量 。
I F[ # 3 L T0] G O T O10 /如 C小于零 , 则跳转至 N 10。
I F[ # 7 E Q 0] G O T O 5 /如 D等于零 , 则跳转至 N5, 此时 C大于零 。
G01 X # 23 Z- # 19 C 1 F # 9 /C大于零 , D不等于零 , 则执GOTO100 行此移动指令 , 然后跳转至 N 100。
N5G 01 X# 23 Z # 19 C 1 F # 9 /C大于零 , D等于零 , 则执GOTO100 行此移动指令 , 然后跳转至 N 100。
N10 I F[ # 7 E Q 0] G O T O 15 /如 D等于零 , 则跳转至N15, 此时 C小于零 。
G 01 X # 23 Z-# 19 C-1 F # 9 /C小于零 , D不等于零 , 则GOTO100 执行此移动指令 , 然后跳转至 N100。
N15 G01 X # 23 Z # 19 C-1 F # 9 /C小于零 , D等于零 , 则执行此移动指令 。
N100 # 20 =# 20 +# 19 /已移动过的 Z轴距离 。
# 16 =# 16 +1 /已转过的 C轴角度 。
# 18 =# 18 +# 6/360 /后面一度中的导程 。
# 19 =# 18/360 /后面一度对应的 Z轴要移动的距离 。
# 21 =# 21 +# 23 /后面一度对应的 X轴要移动的距离 。
END1/跳转至 WH I L E[ # 16 L T[ # 15 -1] ] D O1判断 ,如条件满足 , 则继续循环 , 否则 , 结束循环 。
# 17 =A B S [ # 3] -# 16 /结束循环后 , C轴还需要转动的角度 。
# 28 =# 27 -# 20 /结束循环后 , Z轴还需要移动的距离 。
# 22 =# 24*# 28/# 27 /结束循环后 , X轴还需要移动的距离 。
I F[ # 3 L T0] G O T O 110 /如 C小于零 , 则跳转至 N110。
I F[ # 7 E Q 0] G O T O 105 /如 D等于零 , 则跳转至 N 5,此时 C大于零 。
G 01 X # 22 Z-# 28 C # 17 F # 9 /C大于零 , D不等于零 , 则GOTO200 执行此移动指令 , 然后跳转至 200。
N105 G 01 X # 22 Z # 28 C # 17 F # 9 /C大于零 , D等于零 ,GOTO200 则执行此移动指令 , 然后跳转至 N200。
N110 I F[ # 7 E Q 0] G O T O 115 /如 D等于零 , 则跳转至N115, 此时 C小于零 。
G 01 X # 22 Z-# 28 C- # 17 F # 9 /C小于零 , D不等于零 ,GOTO200 则执行此移动指令 , 然后跳转至 N200。
N115 G 01 X # 22 Z # 28 C-# 17 F # 9 /C小于零 , D等于
GOTO200 零 , 则执行此移动指令 , 然后跳转至 N 200。
N1# 27=A B S [ # 26] /如赋值是 Z , 取绝对值 , 开始计算执行 。
# 1 =# 18 +# 6/2 /第一圈的平均导程 。
# 14 =# 6*# 1 -# 1*# 1-2*# 27*# 6 /中间值 。
# 4 = [ -# 6 +S Q R T [ # 6*# 6 -4*# 14] ] /2 /最后一圈的平均导程 。
# 5 =[ 2*# 27] /[ # 1 + # 4] /N 。
# 3 =360*# 5 /Z对应的总的旋转角度 。
# 19 =[ 2*# 18 +# 6/360] /720 /计算第一度螺旋线的长度 。
# 18 =# 18 +# 6/720 /第一度平均导程 。
WHI L E[ # 20 L T [ # 27 -# 19] ] D O1 /移动完 C中所有的整数度后 , 结束循环 。
# 23 =# 19*# 24/# 27 /每一步中 X轴上的移动量。
I F[ # 26 L T0] GOT O 16 /如 Z小于零, 则跳转至 N16。
I F[ # 7 E Q 0] GOT O 11 /如 D等于零, 则跳转至 N11,此时 Z大于零。
G01 X# 23 Z # 19 C-1 F # 9 /Z大于零, D不等于零 , 则执GOTO101 行此移动指令, 然后跳转至 N 101。
N11 G01 X# 23 Z # 19 C 1 F # 9 /Z大于零, D等于零, 则执GOTO101 行此移动指令, 然后跳转至 N 101。
N16 I F [ # 7 E Q 0] GOT O 21 /如 D等于零, 则跳转至N21, 此时, Z小于零。
G01 X# 23 Z-# 19 C-1 F # 9 /Z小于零, D不等于零, 则GOTO101 执行此移动指令, 然后跳转至 N 101。
N21 G01 X# 23 Z-# 19 C 1 F # 9 /Z小于零, D等于零, 则执行此移动指令。
N101 # 20 =# 20 +# 19 /已移动过的 Z轴距离。
# 16 =# 16 +1 /已转过的 C轴角度。
# 18 =# 18 +# 6/360 /后面一度中的导程。
# 19 =# 18/360 /后面一度对应的 Z轴要移动的距离。
# 21 =# 21 +# 23 /后面一度对应的 X轴要移动的距离。
END 1 /跳转至 WHI L E[ # 20 L T [ # 27-# 19] ] DO 1判断,如条件满足, 则继续循环, 否则, 结束循环。
# 17 =A BS [ # 3] -# 16 /结束循环后, C轴还需要转动的角度。
# 28 =# 27 -# 20 /结束循环后, Z轴还需要移动的距离。
# 22 =# 24*# 28/# 27 /结束循环后, X轴还需要移动的距离。
I F[ # 26 L T 0] G OT O 116 /如 Z小于 零, 则 跳转至N116。
I F[ # 7 E Q0] G OT O111 /如 D等于零, 则跳转至 N 111,此时 Z大于零。
G01 X# 22 Z # 28 C-# 17 F # 9 /Z大于零, D不等于零, 则GOTO200 执行此移动指令, 然后跳转至 N 200。
N111 G01 X# 22 Z # 28 C# 17 F # 9 /Z大于零, D等于零,GOTO200 则执行此移动指令, 然后跳转至 N 200。
N116 I F[ # 7 E Q 0] G OT O 121 /如 D等于零, 则跳转至N121, 此时 Z小于零。
G01 X# 22 Z-# 28 C-# 17 F # 9 /Z小于零, D不等于零,GOTO200 则执行此移动指令, 然后跳转至 N 200。
N121 G01 X# 22 Z-# 28 C# 17 F# 9 /Z小于零, D等于零 , 则执行此移动指令。
N200 M99 /程序结束。
当同时输入 C、Z时 ,则以 C为准 。编程时必须用相对值 。
3 应用
把此程序存入系统 , 加工螺杆时编程将简化许多 。
例 如 , 加 工 一 段 长 240 mm, 起 始 点 导 程 是100 mm, 每一 圈的导 程增量 是 20 mm, 走刀 速度是100 mm/mi n ,不变深 。
程序为 : G 91 G 65 X 0 Z 240 R 100 K 20 D 0 F 100,则走出一条 Z轴由床头到床尾 , C轴逆时针旋转 , 第一圈导程为 110 mm, 第 二 圈导 程 为 130 mm, 点 导 程从100 mm 变到 140 mm的等深渐变导程左旋螺旋槽 。
程序为 : G 91 G 65 X 0 Z-240 R 100 K 20 D 0 F 100,则走出一条 Z轴由床尾到床头 , C轴逆时针旋转 ,第一圈导程为 110 mm, 第二圈导程为 130 mm, 点导程从100 mm变到 140 mm的等深变导程右旋螺旋槽 。
程序为 : G 91 G 65 X 0 Z 240 R 100 K 20 D 1 F 100,则走出一条 Z轴由床头到床尾 , C轴顺时针旋转 , 第一圈导程为 110 mm, 第 二 圈导 程 为 130 mm, 点 导 程从100 mm 变到 140 mm的等深变导程右旋螺旋槽 。
程序为 : G 91 G 65 X 0 Z-240 R 100 K 20 D 1 F 100,则走出一条 Z轴由床尾到床头 , C轴顺时针旋转 ,第一圈导程为 110 mm, 第二圈导程为 130 mm, 点导程从100 mm变到 140 mm的等深变导程左旋螺旋槽 。
4 结束语
有了此程序后 , 这种专用铣床就可选用多种数控系统来满足市场的要求 ,同时 ,降低数控系统成本 ,提高机床的性价比 ,节约售后服务费用 , 控制总的生产成本 ,增强机床自身的市场竞争力 。当然 ,此程序只能加工导程变化是线性的变导程螺杆 ,对于导程变化是非线性的变导程螺杆 ,需要做更进一步的研究 。