数控车床宏程序编程
- 格式:docx
- 大小:205.29 KB
- 文档页数:35
一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档% @MACRO //用户宏程序文档,必须包含“@MACRO”关键词IF @1 = 1 THENG00 X100.;ELSEG00 Z100.;END_IF;M99;例二:ISO格式文档% 这是标题行,可当作档案用途说明,此行可有可无G00 X100.;G00 Z100.;G00 X0;G00 Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i (i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
数控车床宏程序FANUC数控车第一章编程代码----------------------------------------------------------1 1.准备功能G------------------------------------------------------------1 2.辅助功能M-----------------------------------------------------------6 第二章用户宏程序-------------------------------------------------------71. 运算符号---------------------------------------------------------------72.转移和循环-----------------------------------------------------------7 3.运算指令--------------------------------------------------------------8第三章宏程序编程------------------------------------------------------11 1.车V型圆锥- --------------------------------------------------------11 2.车U圆弧-------------------------------------------------------------12 3.方程曲线车削加工-------------------------------------------------13 5.车梯形螺纹36×6--------------------------------------------------14 6.蜗杆-------------------------------------------------------------------15 7.加工多件--------------------------------------------------------------17 第四章自动编程---------------------------------------------------------------21 1.UG建模--------------------------------------------------------------------21 2.创建几何体----------------------------------------------------------------24 附录--------------------------------------------------------------------------29第一章编程代码1.准备功能G00快速定位G01直线插补G02顺弧插补G03逆弧插补G04暂停G9,G60,G64准确/连续停G20英制输入G21米制输入G40取消刀具补偿G41建立左刀具补偿G42建立右刀具补偿G50坐标设定/主轴最高速设定G70精车循环格式:G70 P(ns) Q(nf)ns: 精加工形状程序的第一个段号。
宏程序编程例题椭圆解析:椭圆关于中心、坐标轴都是对称的,坐标轴是对称轴,原点是对称中心;对称中心叫做椭圆中心;椭圆和X轴有2两个交点,和Y轴有两个交点,这四个交点叫做椭圆顶点;椭圆标准方程:x2 / a2 + y2 / b2 = 1 a为长半轴,b为短半轴,a > b > 0椭圆参数方程:x=acosMy=bsinM a为长半轴,b为短半轴,a > b > 0 ,M是夹角,是椭圆上任意一点到椭圆中心连线与X正半轴所成的夹角,顺时针为负,逆时针为正;二、数控车床:根据椭圆标准方程:x2 / a2 + y2 / b2 = 1 a为长半轴,b为短半轴,a > b > 0 根据椭圆参数方程:x=acosMy=bsinM a为长半轴,b为短半轴,a > b > 0 ,M是夹角,是椭圆上任意一点到椭圆中心连线与X正半轴所成的夹角,顺时针为负,逆时针为正;可得车床标准方程:z2 / a2 + x2 / b2 = 1 a为长半轴,b为短半轴,a > b > 0 可得椭圆参数方程:z=acosMx=2bsinM a为长半轴,2b为短轴直径,a > b > 0 ,M是夹角,是椭圆上任意一点到椭圆中心连线与Z正半轴所成的夹角,顺时针为负,逆时针为正;通过标准方程推导X的表达式:x =b / a SQRT a a– z z a、b为长、短半轴是常数表示;一车床车削椭圆通常是加工椭圆X正方向部分回转体,用标准方程车削椭圆时,通常设Z为自变量,通过方程把X表达出来,最多就是车削到180度椭圆,然后利用G01插补拟合成椭圆;通过椭圆车床标准方程推导,可以有如下过程:z2 / a2 + x2 / b2 = 1可推导 x2 / b2 =1- z2 / a2 = a2 – z2 / a2可推导 x2 = b2 / a2 a2 – z2 x =b / a SQRT a2 – z2转换为数控格式就为 x =2b / a SQRT a a– z z a为长半轴、2b为短轴直径编程常数表示;设z为自变量1,则x为因变量2,根据上述公式有:2 =b / a SQRT a a- 1 1 例题:长半轴a=5,短半轴b=4的椭圆;有以下几种情况:1、 1为z,为自变量:则1=5 1=5 表示从Z正半轴开始加工;N10 2 = 8 / 5 SQRT 5 5 - 1 1G01 X 2+ D Z 2 + E X正,Z正,表示走逆时针,D、E表示椭圆中心X、Z绝对坐标1=1-1IF 1 GE 0 GOTO10 这是加工第一象限的椭圆,90度椭圆;IF 1 GE -5 GOTO10 这是从第一象限加工到第二象限的椭圆,180度椭圆;2、 1为x,为自变量:则1=-5 1=-5 表示从Z轴负方向开始加工;N10 2 = 8 / 5 SQRT 5 5 - 1 1G01 X 2+ D Z -2 + E X正,Z负,表示走顺时针,D、E表示椭圆中心X、Z 绝对坐标1=1 + 1IF 1 LE 0 GOTO10 这是加工第二象限的椭圆,90度椭圆;通常这是利用反刀加工;IF 1 LE 5 GOTO10 这是从第二象限加工到第一象限的椭圆,180度椭圆;正反刀都可以加工;关于D、E椭圆中心坐标位置的说明,D为直径表达,E的位置有三种:当E=-a时 2 + E =0,椭圆中心离工件原点相差一个长半轴距离;E=-a+Δ时 2 + E >0,椭圆中心在Z轴上向右偏移,中心离工件原点距离小于一个长半轴;E=-a-Δ时 2 + E <0,椭圆中心在Z轴上向左偏移,中心离工件原点距离大于一个长半轴;二车通过参数方程加工椭圆可以加工0-180度内任意角度,直接通过参数方程加工即可;例题:长半轴a=5,短半轴b=4的椭圆;有以下几种情况:1、设1为M,为角度自变量,x、z为因变量:则1=0 1=0 表示从0度开始加工,即Z正半轴开始加工,若写1=90表示从X正半轴开始加工,其他以此类推N10 Z = 2 = a COS 1X = 3 = 2b SIN 1G01 X 3 +D Z 2 + E X正,Z正,表示走逆时针,D、E表示椭圆中心X、Z绝对1=1+1 + 表示走逆时针方向IF 1 LE 90 GOTO10 这是加工第一象限部分,90度椭圆;IF 1 LE 180 GOTO10 这是从第一象限加工到第二象限的椭圆,180度椭圆; 如果写LE180就是加工0-180度椭圆,其他任意角度以此类推;2、设1为M,为角度自变量,x、z为因变量:则1=180 1=180 表示从180度开始加工,即Z负半轴开始加工,其他任意角度以此类推N10 Z = 2 = a COS 1X = 3 =2 b SIN 1G01 X 3 + D Z -2 + E X正,Z负,表示走顺时针,D、E表示椭圆中心X、Z 绝对坐标1=1-1 - 表示走顺时针方向IF 1 GE 90 GOTO10 这是加工第二象限部分,90度椭圆;通常这是利用反刀加工;IF 1 GE 0 GOTO10 这是从第二象限加工到第一象限的椭圆,180度椭圆;正反刀都可以加工;通过可以通过参数方程和标准加工,通过上述举例可以发现,参数方程编程简单,程序简洁,可以加工任意角度的椭圆;关于椭圆的编程介绍到此为止;椭圆例题图形1O0001N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X45 Z5 M08N050 G73 U23 W0 R21N060 G73 P70 Q190 0.1 FN070 G00 X0 S1000N080 G42 G01 0 FN090 101=20N100 WHILE101GE0DO1N110 102=26SQRT1-101101/2020 N120 G01 X102 Z101-20N130 101=N140 END1N150 Z-30N160 G02 X36 Z-35 R5N170 G01 X38N180 X42 Z-37N190 X45N200 G70 P70 Q190N210 G40 G00 X100 Z100 M09N220 T0100 M05N230 M30%方法2O0002N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X45 Z5 M08N050 G73 U23 W0 R21N060 G73 P70 Q180 0.1 FN070 G00 X0 S1000N080 G42 G01 0 FN090 101=20N100 102=26SQRT1-101101/2020 N110 G01 X102 Z101-20N120 101=N130 IF101GE0GOTO100N140 Z-30N150 G02 X36 Z-35 R5N160 G01 X38N170 X42 Z-37N180 X45N190 G70 P70 Q180N200 G40 G00 X100 Z100 M09 N210 T0100 M05N220 M30图形2方法1O0001N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X53 Z5 M08N050 G73 U25 W0 R23N060 G73 P70 Q210 0.1 FN070 G00 S1000N080 G42 G01 0 FN090 Z-2N100 Z-18N110 X20N120 Z-25N130 101=20N140 WHILE101GE0DO1N150 102=18SQRT1-101101/2020 N160 G01 X102 Z101-45N170 101=N180 END1N190 G01 X38N200 Z-60N210 X50N220 G70 P70 Q210N230 G40 G00 X100 Z100 M09N240 T0100 M05N250 M30%方法2O0001N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X53 Z5 M08N050 G73 U25 W0 R23N060 G73 P70 Q200 0.1 FN070 G00 S1000N080 G42 G01 0 FN090 Z-2N100 Z-18N110 X20N120 Z-25N130 101=20N140 102=18SQRT1-101101/2020 N150 G01 X102 Z101-45N160 101=N170 IF101GE0GOTO140N180 G01 X38N190 Z-60N200 X50N210 G70 P70 Q200N230 G40 G00 X100 Z100 M09N240 T0100 M05N250 M30%图形2 切槽与螺纹均不编图形3O0001N010 G99 G97 G21N020 T0101N030 S700 M03N040 G00 X53 Z2 M08N050 G73 U25 W0 R23N060 G73 P70 Q230 0.1 FN070 G00 X0 S1000N080 G42 G01 0 FN090 G03 X16 Z-8 R8N100 G01N110 X20N120N130N140 101=0N150 102=30SQRT1-101101/2020 N160 G01 X52.98-102 ZN170 101=N180 IFGOTO150N190 G01 X32N200 Z-27N210 Z-50N220 X46N230 X48 Z-51N240 G70 P70 Q230N250 G40 G00 X100 Z100 M09 N260 T0100 M05N270 M30N280%图形3 切槽与螺纹均不编图形4O0001N010 G99 G97 G21N020 T0101N030 S700 M03N040 G00 X52 Z2 M08N050 G73 U12 W0 R10N060 G73 P70 Q200 0.1 FN070 G00 X26 S1000N080 G42 G01 0 FN090 G01 X30 Z-2N100 G01 Z-5N110 X36N120 G03 X40 R20N130N140 101=14N150 102=16SQRT1-101101/1414 N160 G01 X44-102 Z101-31N170 101=N180 IF101GE-14GOTO150N190 G01 X44N200 Z-51N210 G70 P70 Q200N220 G40 G00 X100 Z100 M09N230 T0100 M05N240 M30N250%图形4 切槽与螺纹均不编图形5O0001N010 G99 G97 G21N020 T0101N030 S700 M03N040 G00 X62 Z2 M08N050 G73 U13 W0 R10N060 G73 P70 Q190 0.1 FN070 G00 X51 S1000N080 G42 G01 0 FN090 G01 X52N100 G01N110 101=25N120 102=24SQRT1-101101/2525 N130 G01 X58-102 Z101-43N140 101=N150 IF101GE0GOTO120N160 G01 Z-43N170 X51N180 X52 Z-44N190 X60N200 G70 P70 Q190N210 G40 G00 X100 Z100 M09N220 T0100 M05N230 M30N240图形6O0001N010 G97 G99 G21N020 T0101N030 S600 M03N040 G0 X53 Z5 M08N050 G73 U10 W0 R9N060 G73 P70 Q180 0 FN070 G00 X38N080 G42 G01 Z0 1200 FN090 101=0N100 102=38SQRT1-101101/5050 N110 G01 X102 Z101N120 101=N130 IFGOTO100N140 G01 Z-36N150 G02 X38 Z-40 R4N160 G01 X47N170 X48N180 X50N190 G70 P70 Q180N200 G40 G00 X100 Z100 M09N210 T0100 M05N220 M30N230模拟轨迹O0001N010 G97 G99 G21N020 T0101N030 S600 M03N040 G0 X73 Z5 M08N050 G73 U13 W0 R11N060 G73 P70 Q160 0 FN070 G00 X44N080 G42 G01 Z0 1200 FN090 101=20N100 102=24SQRT1-101101/2020N110 G01 X102+44 Z101-20N120 101=N130 IF101GE0GOTO100N140 G01 X68N150 Z-90N160 X70N170 G70 P70 Q160N180 G40 G00 X100 Z100 M09 N190 T0100 M05N200 M30N210。
数控车床宏程序编程数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:1)G01 X[3+5]。
有表达式3+52)G00 X4 F[#1]。
有变量#13)G01 Y[50*SIN[3]]。
有函数运算2.使用了程序流程控制(决策能力),例如:1)IF #3 GE 9.有选择执行命令ENDIF2)WHILE #1 LT #4*5.有条件循环命令XXX二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏步伐可以完成图形一样,尺寸分歧的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的步伐在X轴作一个快速定位。
个中数据25.0是固定的,引入变量后可以写成:1=25.0.#1是一个变量G00 X[#1]。
#1就是一个变量宏步伐中,用“#”号背面紧跟1~4位数字透露表现一个变量,如#1,#50,#101,……。
变量有甚么用呢?变量可以用来代替步伐中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给步伐的设想带来了极大的灵活性。
使用变量前,变量必须带有精确的值。
如1=25G01 X[#1]。
表示G01 X251=-10.运行过程中可以随时改变#1的值G01 X[#1]。
表示G01 X-10用变量不仅可以透露表现坐标,还可以透露表现G、M、F、D、H、M、X、Y、……等各类代码后的数字。
如:2=3G[#2] X30.表示G03 X30例1使用了变量的宏子步伐。
100050=20.先给变量赋值M98 P1001.然后调用子程序50=350.重新赋值M98 P1001.再挪用子步伐M301001G91 G01 X[#50]。
由浅入深宏程序1-宏程序入门基础之销轴加工对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。
对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。
本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。
下面大家先看一个简单的车床的程序,图纸如下:要求用外圆刀切削一个短轴,这里只列举程序的前几步:O0001T0101;M3S800;G0X82Z5;G0X76;G1Z-40F0.2;X82;G0Z5;G0X72;G1Z-40F0.2;X82;G0Z5;G0X68;G1Z-40F0.2;X82;G0Z5;G0X68;G1Z-40F0.2;X82;G0Z5;........G0X40;G1Z-40F0.2;X82;G0Z5;G0X150Z150;M5;M30;从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。
因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。
T0101;M3S800;G0X82Z5;#1=76;赋初始值,即第一次切削直径N10 G0X[#1] ;将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。
N10是程序G1Z-40F0.2;段的编号,用来标识本段,为后面循环跳转所用。
X82;G0Z5;#1=#1-4;每行切深为2mm,直径方向递减4mmIF [#1GE40] GOTO 10如果#1 >= 40,即此表达式满足条件,则程序跳转到N10继续执行。
G0X150Z150;当不满足#1 >= 40,即#1<40,则跳过循环判断语句,由此句继续向后执行。
M5;M30;由浅入深宏程序2-宏程序之销轴粗精加工本篇文章利用宏程序简单模仿数控系统的外圆车削循环功能。
宏程序概述其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。
.宏一般分为A类宏和B类宏。
A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。
宏程序的作用数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。
较大地简化编程;扩展应用范围。
宏的分类B类宏由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如发那科(FANUC)OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;A类宏A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的,xx 的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM.#xx就是变量号,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~#100~#149~#500~#531.关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:应用以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中G65H01P#101Q#10:把#10赋予到#101中H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101G65 H02 P#101 Q#102 R10G65 H02 P#101 Q10 R#103G65 H02 P#101 Q10 R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101G65 H03 P#101 Q#102 R10G65 H03 P#101 Q10 R#103G65 H03 P#101 Q20 R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101G65 H04 P#101 Q#102 R10G65 H04 P#101 Q10 R#103G65 H04 P#101 Q20 R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101G65 H05 P#101 Q#102 R10G65 H05 P#101 Q10 R#103G65 H05 P#101 Q20 R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H32 COS余玄函数指令:格式G65 H32 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?开平方根指令H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方根的指令是没可能用宏做到的.无条件转移指令H80;格式:G65 H80 P10 ;直接跳到第10程序段有条件转移指令H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.4B类宏程序定义能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。
宏程序在数控车床编程中的应用作者:范峰来源:《职业·下旬》2017年第06期从传统数控机床加工工序来说,数控机床的操作指令都是通过ISO指令的编程来达到的。
这种指令往往是一经设定好就不可以改版的。
这就限制了数控机床操作的灵活性,很多工序性质复杂的零件的制作过程不能使用这些通过ISO指令编写的程序。
因此,在如今的数控机床程序中引入宏程序技术,可以十分方便灵活地根据所需制作零件的数据进行数控机床程序的调整,提升数控机床工作效率,也能更精准地完成零件加工。
一、利用宏程序优化加工,提升零件加工效率使用宏程序进行加工零件编写,属于利用人工进行手动编程的范畴。
通过编程人员对于函数程序的设定,在进行加工的时候读取实现设定好的算法,再结合零件加工要求来进行具体化的加工。
这种需要利用数学公式并让CNC系统来确定零件坐标的方式可以快速地进行数据具体参数的调整,因此宏程序在数控机床编写程序来加工程序的方式对于复杂零件加工具备巨大的优势,但是在进行结构比较简单的零件加工的时候就有很多额外的读取步骤,这无形之中加重了数控机床读取数据加工的负担,所以在利用宏程序进行数控机床加工步骤的编写时,要根据加工零件的要求灵活改变宏程序算法。
在编写的宏程序的时候,编写程序人员需要首先对于要求加工的零件进行结构观察,认真分析零件的几何特点,建立相应的几何模型帮助程序员来立体化零件数字模型,从而在加工过程中设置需要进行加工的不同算法,例如零件加工程序算法、走刀最优路线、切入切出方式等。
需要注意的是,在进行宏程序编写的时候,要尽量减少程序运行次数,做到最简化运行程序,在设置坐标参数的时候也要注意观察零件构造,编写最合理简洁的循环程序。
需要注意的是,在进行局部编写和整体编写设置的过程中,要根据变量之间的传递关系来设定,把需要加工的尺寸参数利用宏指令的加工在数控机床中表现出来。
由于很多需要加工的零件的参数只是有一些不同的地方,在进行加工的时候如果每次都需要进行数控机床的重新编程就十分繁琐。
由浅入深宏程序数控车床旋转正弦函数宏程序正弦函数曲线旋转宏程序坐标点旋转1s = x cos(b) – y sin(b)t = x sin(b) + y cos(b)根据下图,原来的点(#1,#2),旋转后的点(#4,#5),则公式:#4=#1*COS[b]- #2*SIN[b]#5=#1*SIN[b]+ #2*COS[b]公式中角度b,逆时针为正,顺时针为负。
下图中正弦曲线如果以其左边的端点为参考原点,则此条正弦曲线顺时针旋转了16度,即b=-16正弦函数旋转图纸1此正弦曲线周期为24,对应直角坐标系的360对应关系【0,360】 y=sin(x)【0,24】 y=sin(360*x/24)可理解为:360/24是单位数值对应的角度360*x/24是当变量在【0,24】范围取值为x时对应的角度sin(360*x/24)是当角度为360*x/24时的正弦函数值旋转正弦函数曲线粗精加工程序如下:M3S800G0X52Z5#6=26 工件毛坯假设为50mm,#6为每层切削时向+X的偏移量。
N5 G0X[#6+18.539]G1Z0F0.1#1=48N10 #2=sin【360*#1/24】#4=#1*COS[-16]- #2*SIN[-16] 旋转30度之后对应的坐标值#5=#1*SIN[-16]+ #2*COS[-16]#7=#4-【50-3.875】坐标平移后的坐标。
#8=45+2*#5+#6G1X[#8]Z[#7]F0.1 沿小段直线插补加工#1=#1-0.5 递减0.5,此值越小,工件表面越光滑。
IF [#1 GE 0] GOTO 10 条件判断是否到达终点。
G1X52 直线插补切到工件外圆之外G0Z5#6=#6-2IF [#6 GE 0] GOTO 5G0X150Z150M5M30镂空立方体宏程序范例镂空立方体图纸及宏程序范例此零件六个面加工内容相同,在加工时,调面装夹时要注意考虑夹紧力。
FANUC系统数控车床B类宏程序编程应用虽然子程序对编制相同加工操作(de)程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作(de)程序更方便,更容易.可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序. 使用时, 加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样.一、变量普通加工程序直接用数值指定 G代码和移动距离;例如, G100和X100.0. 使用用户宏程序时,数值可以直接指定或用变量指定.当用变量时,变量值可用程序或用 MDI 面板上(de)操作改变.如:2=30;1=2+100;G01 X1 F0.31、变量(de)表示变量用变量符号()和后面(de)变量号指定.例如:1表达式可以用于指定变量号.此时,表达式必须封闭在括号中.例如:[1+2-12]2、变量(de)类型变量根据变量号可以分成四种类型.3、变量值(de)范围局部变量和公共变量可以有 0 值或下面范围中(de)值:-1047到-10-29 0 10-29到 1047如果计算结果超出有效范围,则发出 P/S报警No.111.4、小数点(de)省略当在程序中定义变量值时,小数点可以省略.例:当定义1=123;变量1(de)实际值是 123.000.5、变量(de)引用为在程序中使用变量值, 指定后跟变量号(de)地址. 当用表达式指定变量时,要把表达式放在括号中.例如:G01X[1+2]F3;被引用变量(de)值根据地址(de)最小设定单位自动地舍入.例如:当 G00X1;以 1/1000mm (de)单位执行时,CNC把 12.3456 赋值给变量1,实际指令值为 G00X12.346; .改变引用(de)变量值(de)符号,要把负号(一)放在(de)前面.例如: G00X—1;当引用未定义(de)变量时,变量及地址字都被忽略.例如:当变量1(de)值是 0,并且变量2(de)值是空时,G00X1 Z2(de)执行结果为 G00X0.6、未定义(de)变量(当变量值未定义时,这样(de)变量成为“空”变量.变量0 总是空变量.它不能写,只能读.)(a)引用当引用一个未定义(de)变量时,地址本身也被忽略.(b)运算除了用<空>赋值以外,其余情况下<空>与0相同.当1=<空>时当1=0时2=1 → 2=<空>2=1 → 2=02=5 → 2=02=5 → 2=02=1+1 → 2=02=1+1 → 2=0(c)条件表达式 EQ和NE中(de)<空>不同于0.当1=<空>时当1=0时1EQ0 成立1EQ0 不成立1 NE 0 成立 1 NE 0 不成立1 GE 0 成立 1 GE 0 不成立1 GT 0 不成立 1 GT 0 不成立限制程序号,顺序号和任选程序段跳转号不能使用变量.例:下面情况不能使用变量:1、O1;2、/2G00X100.0;3、N3Y200.0;二、算术和逻辑运算下表中列出(de)运算可以在变量中执行. 运算符右边(de)表达式可包含常量和/或由函数或运算符组成(de)变量.表达式中(de)变量j 和k 可以用常数赋值.左边(de)变量也可以用表达式赋值.三、转移和循环在程序中,使用 GOTO 语句和 IF 语句可以改变控制(de)流向.有三种转移和循环操作可供使用:1、无条件转移 (GOTO 语句)格式:GOTOn;n:顺序号(1~99999)转移到标有顺序号 n (de)程序段.当指定 1 到99999 以外(de)顺序号时,出现P/S 报警 No.128.可用表达式指定顺序号.例:GOTO1;GOTO10;2、条件转移 (IF 语句)IF[<条件表达式>] GOTO nIF之后指定条件表达式.如果指定(de)条件表达式满足时,转移到标有顺序号 n (de)程序段.如果指定(de)条件表达式不满足,执行下个程序段.说明:a、条件表达式条件表达式必须包括算符.算符插在两个变量中间或变量和常数中间,并且用括号 ([])封闭.表达式可以替代变量.b、运算符运算符由 2个字母组成,用于两个值(de)比较,以决定它们是相等还是一个值小于或大于另一个值.注意,不能使用不等符号.C、示例程序下面(de)程序计算数值 1~10 (de)总和3、循环 (WHILE 语句)在WHILE后指定一个条件表达式, 当指定条件满足时, 执行从DO到END之间(de)程序.否则,转到 END后(de)程序段.说明:当指定(de)条件满足时,执行 WHILE 从 DO 到 END 之间(de)程序.否则,转而执行 END 之后(de)程序段.这种指令格式适用于 IF 语句.DO 后(de)号和 END 后(de)号是指定程序执行范围(de)标号,标号值为1,2,3.若用 1,2,3 以外(de)值会产生 P/S 报警 No.126.循环嵌套:在 DO—END循环中(de)标号(1 到 3)可根据需要多次使用.但是,当程序有交叉重复循环(DO范围(de)重叠)时,出现 P/S报警 No.124.四、宏程序编程举例曲线公式为X=(36/Z)+3实例分析:本例(de)精加工采用B类宏程序编程,以Z值为自变量,每次变化0.1mm,X值为应变量,通过变量运算计算出相应(de)X值.(宏程序编程时,首先要找出各点X坐标和Z坐标之间(de)对应关系)编程时使用(de)以下变量进行计算:加工顺序:粗车→半精车→精车(1)精车程序:设置变量G00 X7 Z74;1=72;WHILE[1GE2] DO2;2=[[36/1]+3];G42 G01 X[2] Z[1] F0.1;1=1-0.1;END2;(2)粗车程序:G90来粗车设置变量2=38;WHILE[1GE7] DO3;1=[36/[1-3]];G00 X[2+5] Z74;G90 X[2+0.5] Z[1] F0.2;2=2-4;END3;(3)半精车程序:设置变量G00 X7 Z74;1=72;WHILE[1GE2] DO4;2=[[36/1]+3.5];G01 X[2] Z[1] F0.1;1=1-0.1;END4;P170。
数控车床利用宏程序编制椭圆曲线技巧摘要:本文通过对数控机床宏程序介绍,分析了宏程序与自动编程、手工编程的差异和各自的优缺点,以编制椭圆型工件程序为例,详细解析了宏程序的编程方法、宏程序灵活性、适应性以及宏程序的强大功能。
关键词:宏程序;比较对比;椭圆编程;实例分析。
宏程序编程像高级语言一样,可以使用变量进行算术逻辑运算和函数混合运算进行编程。
在宏程序形式中,一般都提供循环判断分支和子程序调用的方法。
可编制各种复杂的零件加工程序,特别像抛物线、椭圆、双曲线等非圆曲线。
因此,巧用宏程序编程,可以提高编程效率,达到事半功倍的效果。
一、对于非圆的椭圆曲线,数控系统没有通用指令编程数控系统对于像抛物线、椭圆、双曲线等非圆曲线是没有通用指令的。
若采用自动编程,需购买自动编程软件,还需配备计算机辅助设备,要投入十几万元资金;如果是手工编程,利用数控系统中的宏程序来编写此类数控加工程序,是既经济,又快捷方式。
二、采用宏程序编程的优势宏程序是程序编制的高级形式,程序编制的质量与编程人员的素质息息相关,宏程序里应用了大量的编程技巧。
它利用数学关系表达式,走刀方式取舍等等,这些都使得宏程序编制出来的程序,工件的加工精度更高,特别是对于特殊曲面、难度大的工件,手工无法编程,使用宏程序加工要比自动编程加工快的多,且程序更为简化。
在一般的程序编制中程序的字为常量,一个程序只能描述一个几何形状,当工件形状没有发生改变但是尺寸发生改变时,就没有办法了,只能重新进行编程,缺乏灵活性和适用性。
如果用宏程序编程,我们只需要在程序中给要发生变化的尺寸加上几个变量再加上必要的计算公式就可以了,当尺寸发生变化时只要改变这几个变量的赋值参数就可以了。
因此,宏程序具有很强的灵活性和适应性。
1.宏程序与自动编程的比较自动编程有自动编程的好处,但是自动编程也有其不利于加工方面的问题,在加工不规律的曲面时利用自动编程确实是很好,但是在加工有规律的曲面时就不见得了,加工有规律的工件的时候用宏程序加工要比用自动编程软件要强的多,而且宏程序比较精练,有的时候自动编程的程序长度可能是宏程序长度几十倍,甚至几百倍,加工时间也会有所增加,因为自动编程每一个“微分”的移动距离就是一个程序段,而宏程序编程是将每一个“微分”的移动距离用逻辑控制来执行的,只需给出一个逻辑表达式就可以了,程序量大大缩小了。
一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。
在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。
其代表指令称为用户宏命令,也称作宏程序调用指令。
用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。
二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。
当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。
“@MACRO”关键词必须是大写字母。
对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。
例一:MACRO格式文档%@MACRO //用户宏程序文档,必须包含“@MACRO”关键词IF@1=1THENG00X100.;ELSEG00Z100.;END_IF;M99;例二:ISO格式文档% 这是标题行,可当作档案用途说明,此行可有可无G00X100.;G00Z100.;G00X0;G00Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i (i=1,2,3,…)。
使用变量可以使用户宏程序具有通用性。
用户宏程序中可以使用多个变量,以变量编号进行识别。
数控宏程序一.什么是宏程序什么是数控加工宏程序简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00上面的程序在X轴作一个快速定位。
其中数据是固定的,引入变量后可以写成:#1= ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。
变量有什么用呢变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。
使用变量前,变量必需带有正确的值。
如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。
如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。
%1000#50=20 ;先给变量赋值M98 P1001 ;然后调用子程序#50=350 ;重新赋值M98 P1001 ;再调用子程序M30%1001G91 G01 X[#50] ;同样一段程序,#50的值不同,X移动的距离就不同M992.局部变量编号#0~ #49的变量是局部变量。
局部变量的作用范围是当前程序(在同一个程序号内)。
如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。
例%100N10 #3=30 ;主程序中#3为30M98 P101 ;进入子程序后#3不受影响#4=#3 ;#3仍为30,所以#4=30M30%101#4=#3 ;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0#3=18 ;这里使#3的值为18,不会影响主程序中的#3M993.全局变量编号#50~ #199的变量是全局变量(注:其中#100~#199也是刀补变量)。
全局变量的作用范围是整个零件程序。
不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。
例%100N10 #50=30 ;先使#50为30M98 P101 ;进入子程序#4=#50 ;#50变为18,所以#4=18M30%101#4=#50 ; #50的值在子程序里也有效,所以#4=30#50=18 ;这里使#50=18,然后返回M99为什么要把变量分为局部变量和全局变量如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。
说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。
局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。
什么时候用全局变量什么时候用局部变量在一般情况下,你应优先考虑选用局部变量。
局部变量在不同的子程序里,可以重复使用,不会互相干扰。
如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。
用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。
刀补变量(#100~#199)。
这些变量里存放的数据可以作为刀具半径或长度补偿值来使用。
如#100=8G41 D100 ;D100就是指加载#100的值8作为刀补半径。
注意:上面的程序中,如果把D100写成了D[#100],则相当于D8,即调用8号刀补,而不是补偿量为8。
4.系统变量#300以上的变量是系统变量。
系统变量是具有特殊意义的变量,它们是数控系统内部定义好了的,你不可以改变它们的用途。
系统变量是全局变量,使用时可以直接调用。
#0~#599是可读写的,#600以上的变量是只读的,不能直接修改。
其中,#300 ~#599是子程序局部变量缓存区。
这些变量在一般情况下,不用关心它的存在,也不推荐你去使用它们。
要注意同一个子程序,被调用的层级不同时,对应的系统变量也是不同的。
#600~#899是与刀具相关系统变量。
#1000~#1039坐标相关系统变量。
#1040~#1143参考点相关系统变量。
#1144~#1194系统状态相关系统变量。
(详见:)有时候需要判断系统的某个状态,以便程序作相应的处理,就要用到系统变量。
5.常量PI 表示圆周率,TRUE 条件成立(真),FALSE 条件不成立(假)。
二.运算符与表达式1.算术运算符加+ ,减- ,乘* ,除/2条件运算符用在程序流程控制IF和WHILE的条件表达式中,作为判断两个表达式大小关系的连接符。
注意:宏程序条件运算符与计算机编程语言的条件运算符表达习惯不同。
3.逻辑运算符在IF或WHILE语句中,如果有多个条件,用逻辑运算符来连接多个条件。
AND (且) 多个条件同时成立才成立OR (或) 多个条件只要有一个成立即可NOT (非) 取反(如果不是)例#1 LT 50 AND #1GT 20 ——表示:[#1<50]且[#1>20]#3 EQ 8 OR #4 LE 10 ——表示:[#3=8]或者[#4≤10]有多个逻辑运算符时,可以用方括号来表示结合顺序,如:NOT[#1 LT 50 AND #1GT 20]——表示:如果不是“#1<50 且#1>20”更复杂的例子,如:[#1 LT 50 ] AND [#2GT 20 OR #3 EQ 8] AND [ #4 LE 10]4.函数正弦:SIN[a] 余弦:COS[a] 正切:TAN[a] 注:a为角度,单位是弧度值。
反正切:ATAN[a] (返回:度,范围:-90~+90)反正切:ATAN2[a]/[b] (返回:度,范围:-180~+180) (注:华中数控暂不支持)绝对值:ABS[a],表示|a|取整:INT[a],采用去尾取整,非“四舍五入”取符号:SIGN[a],a为正数返回1,0返回0,负数返回-1开平方:SQRT[a] ,表示√a指数:EXP[a],表示e a5.表达式与括号包含运算符或函数的算式就是表达式。
表达式里用方括号来表示运算顺序。
宏程序中不用圆括号,因圆括号是注释符。
例如175/SQRT[2] * COS[55 * PI/180 ]#3*6 GT 146.运算符的优先级方括号→函数→乘除→加减→条件→逻辑技巧:常用方括号来控制运算顺序,更容易阅读和理解。
7.赋值号 =把常数或表达式的值送给一个宏变量称为赋值,格式如下:宏变量= 常数或表达式例如#2 = 175/SQRT[2] * COS[55 * PI/180 ]#3 =#50 = #3+12特别注意,赋值号后面的表达式里可以包含变量自身,如:#1 = #1+4 ;此式表示把#1的值与4相加,结果赋给#1。
这不是数学中的方程或等式,如果#1的值是2,执行#1 = #1+4后,#1的值变为6。
三.程序流程控制程序流程控制形式有许多种,都是通过判断某个“条件”是否成立来决定程序走向的。
所谓“条件”,通常是对变量或变量表达式的值进行大小判断的式子,称为“条件表达式”。
华中数控系统有两种流程控制命令:IF——ENDIF,WHILE ——ENDW。
1.条件分支IF需要选择性地执行程序,就要用IF命令。
格式1:(条件成立则执行)IF条件表达式条件成立执行的语句组ENDIF功能:条件成立执行IF与ENDIF之间的程序,不成立就跳过。
其中IF、ENDIF称为关键词,不区分大小写。
IF为开始标识,ENDIF为结束标识。
IF语句的执行流程如图1所示。
例:IF #1 EQ 10 ;如果#1=10M99 ;成立则,执行此句(子程返回)ENDIF ;条件不成立,跳到此句后面例:IF #1 LT 10 AND #1 GT 0;如果#1<10 且#1>0G01 x20 ;成立则执行Y15ENDIF ;条件不成立,跳到此句后面格式2:(二选一,选择执行)形式:IF条件表达式条件成立执行的语句组ELSE条件不成立执行的语句组ENDIF例:IF #51 LT 20G91G01 X10F250ELSEG91G01X35F200 ENDIF功能:条件成立执行IF与ELSE之间的程序,不成立就执行ELSE与ENDIF之间的程序。
IF语句的执行流程如图1所示。
2.条件循环WHILE格式:WHILE条件表达式条件成立循环执行的语句ENDW功能:条件成立执行WHILE与ENDW之间的程序,然后返回到WHILE再次判断条件,直到条件不成立才跳到ENDW后面。
WHILE语句的执行流程如图 1 所示。
例:#2=30WHILE #2 GT 0 ;如果#2>0G91G01X10 ;成立就执行#2=#2-3 ;修改变量,ENDW ;返回G90 G00 z50 ;不成立跳到这里执行WHILE中必须有“修改条件变量”的语句,使得其循环若干次后,条件变为“不成立”而退出循环,不然就成为死循环。
图1 流程控制四.子程序及参数递传1.普通子程序普通子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态”地改变,只能通过“镜像”、“旋转”、“缩放”、“平移”来有限的改变子程序的用途。
例%4001G01 X80 F100 M99子程序中数据固定,普通子程序的效能有限。
2.宏子程序宏子程序可以包含变量,不但可以反复调用简化代码,而且通过改变IF…ELSE …ENDIF 流程图IF …ENDIF 流程图WHILE …ENDW 流程图变量的值就能实现加工数据的灵活变化或改变程序的流程,实现复杂的加工过程处理。
例%4002G01 Z[#1] F[#50] ;Z坐标是变量;进给速度也是变量,可适应粗、精加工。