做数控车的师傅遇到大螺距螺纹,圆弧螺纹,异性螺纹的编程,往往束手无策,因为普通的G指令(G32,G92,G76)很难实现这类零件的加工。 那么,遇到这类零件如何编程呢? 很棒的方法就是利用宏程序,那么我给你讲三点,让你明白此类零件的宏程序编程思路。 01 三角函数 先回顾下数学中的三角函数(如下图) 如上图,已知夹角a, sin a=BC/AC cos a=AB/AC tan a=BC/AB 那么知道夹角以及一边数值,很容易推出另外一条边的数值。 02 利用三角函数计算轮廓线上的坐标 为什么需要计算出轮廓线上坐标点? 因为不论是圆弧、还是曲线,它都是由无数个小点组成的,然后点与点之间用小线段连接起来,从而构成了圆弧或者曲线。如果点的位置相互紧密,那么加工出来的轮廓就光滑。 比如梯形螺纹。 比如半圆形螺纹。 是的,但和三角函数有什么关系? 比如半圆,在半圆上绘制直角三角形,并在轮廓上设置了任意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语句判断半圆弧是否切削完。 03 如何利用计算出的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 % |
|
来自: 阿明哥哥资料区 > 《16.工艺.编程.VB.软件》