曲线加工的G代码程序分析
在机械、模具制造行业,经常遇到曲线加工。对于简单的曲线——圆弧,G代码提供了G2、C3、I、J、K、R指令,很容易写出数控程序。但对于一些复杂、特殊的曲线——椭圆、抛物线、渐开线等,当然还有更加复杂的高次曲线,常规的手段就无能为力。笔者根据多年的工作实践,通过借助一些工具软件,经特殊处理,写出G代码程序来解决此类问题。常用的方法有三种:①利用G代码的强大功能,写出宏程序。②借助工具软件Mastercam,生成曲线程序。③用C语言(或其他语言)产生程序的主数据文件,然后手动在文件头尾加上功能语句,成为可以运行的程序。这三种方法都有各自的优、缺点和适用范围,可以相互补充。1.G代码的宏程序
它提供了变量,算术运算指令(加、减、乘、除),功能函数(SIN,COS,TAN,…),还有控制指令(IF——GO-TO,WHILE——DO)。巧妙的运用这些指令,可以解决很多比较简单、有规律的曲线,如正弦曲线、抛物线等。例1:正弦曲线(如图1)。
主程序主程序
…
G65P9910AOB360.C100.F100
…
对局部变量设置
#l=0
#2=360.00
#3=100.00
#9=100.00
09910(子程序)
WHILE[#1IE#2]DO1
#10=#3*SIN[#1]
G90Gl#lY#10F#9
#1=#1+10.
END1
当然,此法还可以表达较复杂的曲线。宏程序短小精炼,对于存储空间小的设备很适用。具有很强的适应性,只要改动一两个数据就可以进行粗加工。但其晦涩难懂,逻辑复杂,过程中的错误不易发现,对于特别复杂的曲线无能为力。这种方法对编程人员的要求较高,须非常熟练G代码,包括不常用的指令,要有相当扎实的高等数学知识,还要熟悉数控加工操作。
Mastercam软件的应用
2.利用Mastercam软件
此软件广泛应用于数控加工,界面亲和,易学易用,能解决G代码宏程序不能解决的问题。以本文给出的工件为例,如图2所示,其曲线由一些离散的坐标点来定义(用于测量),如附表所示。
用Mastercam处理,操作流程如下:①先创建点,按坐标值绘制所有已知点。②把所有点按次序联成Spline曲线。③选择加工方式。④生成加工程序。具体步骤如下:
第1步,Create—Point—Position,然后直接输入坐标值,先x轴后y轴,中间用逗号隔开。第2步,待所有给定数据输入完毕后,命令Create—Spline—Auto-matic,系统提示选择第一个点、第二个点及最后一个点,一一点击完成后,系统自动生成Spline样条曲线。第3步,命令Toolpaths—Finish—Chain,用鼠标点击曲线的右(末)端,选择End here命令,确认Done后,弹出Tool parameters刀具参数对话框,根据需要选择合适刀具,再切换到Finish parameters对话框,如图3所示,选择切削参数。该过程中要特别注意几个重要参数的确定:①Linearization决定加工精度,其值越小精度越高,则程序也越长,一般0.01就足够了。②Compensa-tion type意为选择刀补类型,常用的是Computer和Con-trol两种。computer是根据刀具实际情况计算出刀具轨迹,生成程序,不用刀补;Control则不考虑刀具规格,生成有刀补的程序。③Compensation direction,选择刀补方向,一般可根据加工方式和操作方法而定。以上参数确定后弹出管理菜单,如图4所示。第4步,点击Post键,打开后处理对话框,如图5所示,确定机床数控操作系统,此处选择的是FANUC系统,文件是MPLFAN。,注意:后处理文件以MPL开头,其后几位表示简写的数控操作系统。若想更改为其他系统,通过change Post键进行选择,且选中Edit命令,然后点击0K键,生成程序。
该工件的加工经过几次摸索:第一次加工时直接利用给出点的坐标值,将两点间近似为一条直线,用G1指令写出程序。结果加工出来的曲线是19段折线,是离散点过于稀疏造成的。第二次,在AutoCAD2002中把离散点用样条曲线Spline命令串连起来,用垂线分曲线,等分它在X轴上的投影,将点的坐标求出来,增加了点的个数。且人为在原有两点之间插入若干个点,全部写入程序。此法虽然能解决问题,但很繁琐,且程序庞大,易出错。第三次,使用Mastercam,采用样条线把离散的点连起来,直接生成满足精度要求的程序,与方法二相比,生成程序短小精炼,正确率高。该方法高效、简单、便捷,可以解决只给定离散点的曲线形式,对操作者要求较低。
曲线加工的数据编程
3.用C语言(或其他语言)生成程序的数据主体
某产品,其外形是一个很复杂的曲线方程,用宏程序很难(甚至不可能)把它写出来,而Mastercam则无法输入函数方程。此时,借助C语言来生成数据主体。
例:车工曲线方程如下:
0≤x≤22.1
Y=200.2+140.653√b
b=0.008754(x/168)+6.1455(x/168)2
-4.87544(x/168)3+0.568749(x/168)4
+0.76587(x/168)5
它很难在Mastercam中绘制。用C语言来计算其离散点,过程如下:
#Include”math.h”
#Include”conio.h”
#Include”stdio.h”
Main ()
{
double a,b,d,c,i,e;
FILE*fp;
fp=fopen(”d:\s77.txt”,”w+”);
for(i=0;i
页:
[1]