曲线加工的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,系统提示选择*个点、第二个点及zui后一个点,一一点击完成后,系统自动生成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<22.1;i=i+0.1)/*③*/

c=i/168;
b=0.008754*c+6.1455*c*c-4.87544*c*c*c+
0.568749*c*c*c*c+0.76587*c*c*c*c*c;
d=0.3333*log(b);
e=exp(d);/*①*/
a=200.2+140.65*e;/*②*/
printf(“z=%.4f”,i);
printf(“x=%.4f\n”,a);
fprintf(fp,”z%.3fx%.3f\n”,i,a);
结果输出到文件s77.txt*/

printf (”ok”);
getch ()

程序①②两句用到了一个公式a=eina,b开3次方即是6的1/3方。此程序在tc2.0下通过。
运行此程序得到s771.txt文件,用编辑器(任何一个,如记事本)打开,只要在头尾加上功能句,就是一个可用的程序。它的原理是:任何曲线可以分成无数很短的曲线,每个很短的曲线可以近似地认为是一段直线。当每段曲线的长度趋于零时,与直线的误差也趋于零。足够多的直线连起来可以替代一段曲线,这样就把曲线转化成有限段的直线。直线的程序很容易实现,问题得到简化。为了尽可能的减小曲线误差,每段曲线长度要尽可能的短,所以程序中的循环步长(控制曲线长度,注③i=i+0.1中的0.1)可以取得很小。但这样做成的程序会很大,有大量的冗余数据产生。曲率与误差成正比,因为步长固定,在曲率小的地方误差小,曲率为零(即直线)时则有大量的无用数据(*可以弃掉而不影响程序),而在曲线曲率大的地方误差较大。新生代机床其数控系统容量都很大,所以不必过多考虑程序的大小,以保证曲线精度(线轮廓度)为*要务。如果要生成一个没有冗余的短小程序,要用到二次求导等数学知识,非常复杂,在此处不作讨论。

知道如何安装行车单极H型组合式滑触线吗?
脉冲阀工作原理图解详细介绍
使用配备长寿命传感器的德图烟气分析仪
椭圆防水防潮防爆灯
一般常用橡塑保温管质量保证
曲线加工的G代码程序分析
实验室反应釜的结构不同的分类方式
本司防爆电磁阀防爆等级介绍
聊聊短路接地线的安装与使用
邦纳BK30BDLV
单膜一次性彩条布的型号
利用高温蒸汽做热老化箱的步骤有哪些?
液晶屏水分检测仪优势特点
玻璃纤维纱拉力机哪个厂家质量好?
带您了解宝盟BAUMER旋转编码器
难燃型发泡橡塑管有什么规格型号
未来两年产销超500万辆 新能源汽车迎全新供应链
抗浮式增压箱泵一体化给水设备
1345089-03-3的介绍
简单介绍影响超声波洗瓶机清洗效果的几个因素?