做数控车的师傅遇到大螺距螺纹,圆弧螺纹,异性螺纹的编程,往往束手无策,因为普通的G指令(G32,G92,G76)很难实现这类零件的加工。
那么,遇到这类零件如何编程呢?
很棒的方法就是利用宏程序,那么我给你讲三点,让你明白此类零件的宏程序编程思路。
一、三角函数
先回顾下数学中的三角函数(如下图)
如上图,已知夹角a, sin a=BC/AC cos a=AB/AC tan a=BC/AB 那么知道夹角以及一边数值,很容易推出另外一条边的数值。
二、利用三角函数计算轮廓线上的坐标
为什么需要计算出轮廓线上坐标点?
因为不论是圆弧、还是曲线,它都是由无数个小点组成的,然后点与点之间用小线段连接起来,从而构成了圆弧或者曲线。如果点的位置相互紧密,那么加工出来的轮廓就光滑。
比如梯形螺纹。
比如半圆形螺纹。
是的,但和三角函数有什么关系?
比如半圆,在半圆上绘制直角三角形,并在轮廓上设置了任意B点,如下图。
那么根据三角函数,B点的X和Z坐标如下:
BC=AB*SINθ (X方向)
AC=AB*COSθ (Z方向)
好了,有了三角函数公式,如何计算出BC和AC的数值?
是不是 知道夹角θ以及一边AB数值,很容易推出另外一条边的数值。
是的,先说AB,是不是你要加工的半圆形圆弧牙深?加工的图纸上就有,属于已知尺寸。
再说夹角θ 角度。
仿形车螺纹,刀具沿圆弧逐次进,角度从0开始,180度结束,那么你还记得我多次强调过的变量自增运算和WHILE语句吗?
比如定义角度θ变量为#3,那
变量#3自增运算格式如下:
#3=0
#3=#3+0.1
0.1为角度的增量,通过变量自增,从而计算出轮廓线上的n多个数据。
WHILE 语句格式如下:
WHILE[#3LE180]DO1
程序
END1
通过WHILE语句判断半圆弧是否切削完。
三、如何利用计算出的BC和AC来编写宏程序?
理论是一回事,把理论用于实践是另一回事,那么至少考虑下面两个问题。
第一:编程原点
利用勾股定理计算出的X,Z(比如下图) ,是以圆弧圆心为坐标原点。
而实际编程原点:Z方向原点大多设在零件表面Z=0处,X在零件回转中心上。
那么利用勾股定理计算出BC,AC数值还需换算。比如内螺纹底孔为D42,(X方向)换算后应为:D42+2*BC ,也就是底孔直径加上2倍的BC。
第二:刀具,比如刀具圆角
如仿形车螺纹(刀具沿圆弧逐次进刀)由于刀具存在圆弧R,刀具沿着螺纹轮廓实际轨迹应该是:螺纹圆弧半径-刀具圆角半径
好了,分析到这有点基础的该明白了,我直接上程序以供大家参考。
%
O0001
G54G00X100.Z50.
M03S100
G00X42
Z15.
#1=3(螺纹圆弧R)
#2=2 (刀具圆弧R)
#3=0 (角度初始变量)
WHILE[#3LE180]DO1 (如果没有切削完一个半圆弧继续循环1)
#5=[#1-#2]*SIN[#3](计算X坐标)
#6=[#1-#2]*COS[#3] (计算Z坐标)
(这是根据勾股定理推算出来的)
G0Z[5+#6](螺纹切削循环起点)
G92X[42+2*#5]Z-80. F10(螺纹切削)
(D42是螺纹底孔直径,由于#5我计算的是X方向单边值,要换算成直径,所以需要乘以2)
#3=#3+10(角度每次递增10°)
END1(循环1结束)
G00Z50.
M30
%