Search for answers or browse our knowledge base.

Documentation | Demos | Support

目录
< 所有主题
Print

处理

      




目前数控系统,主要以ISO G代码作为控制指令。但也有如Roland的控制系统使用HPGL3D的控制指令。

另外国际通用的ISO G代码指令,在不同数控系统的中,其格式也会有所差异。有的系统采用浮点数输出,如X60.323 Y10.290 Z5.00。有的系统则采用整数输出,如X60323 Y10290 Z500,每一整数位表示0.001。

将软件生成的中性加工路径,转换为特定数控机床所需要的代码格式,这种处理过程就叫做“后处理”。


菜单【加工路径 >后置设置】

下面是一个ucancam后处理程序的例子:

////////////////////////////

FORMAT <X|X%1.3f |1.0>

FORMAT <Y|Y%1.3f |1.0>

FORMAT <Z|Z%1.3f |1.0>

FORMAT <S|S%d |1>

FORMAT <F|F%d |1>

////////////////////////////

UNITS<MM>

////////////////////////////

FILE_EXTENSION<nc>

////////////////////////////

PROG_HEAD<G90G17G21>

TOOLCHANGE<M06 T[TN]>

PROG_TAIL<M30>

简单的说,后处理文件主要分为4个部分:

1.   全局声明

比如定义输出文件的扩展名,输出单位是毫米还是英寸,数字输出格式等。

2.   程序头

这部分描述指令将出现在加工程序的头部,比如程序名称,主轴旋转等。

如:PROG_HEAD<%日期为:[DATE]时间为:[TIME]>

PROG_HEAD<G90G17G21>

其中的[ ],说明的单词是变量。

3.   程序尾

这部分描述指令将出现在加工程序的最后,通常包括停止主轴旋转,刀具会加工原点等。如:PROG_TAIL<M30>     PROG_TAIL<%>

4.换刀指令

如果机床配备了自动换刀系统,或者用户想要通过输出相应指令,以更方便地使用手动换刀。就可以把换刀指令设置在这里。

如:TOOLCHANGE <M05>

TOOLCHANGE<M06 T[TN]>

第一行指令表示换刀前暂停,第二行表示为换刀。

TN:  表示刀具号

由以上示例的后处理文件可以看出:每一行的第一个单词是系统内定的关键词,在随后的括号<>中, 定义相应的变量或指令。即:关键词 <指令/变量>

例如:UNITS<MM>  定义长度单位为毫米

在Ucancam后处理系统的关键词包括2种,一种是“指令”关键词,另外一种是“变量”关键词,在后处理文件中用英文状态下的中括号“[ ]”进行引用。

以下列表是Ucancam软件后处理器用到的指令关键词:

指令关键词

含义

FORMAT

定义数据输出格式

PROG_HEAD

程序头指令

PROG_TAIL

程序尾指令

TOOLCHANGE

换刀指令

G00_DEF

定义快速定位指令

G01_DEF

定义直线切削指令

G02_DEF

定义圆弧顺时针切削指令:

G03_DEF

定义圆弧逆时针切削指令:

G04_DEF

定义暂停指令

DWELL_DEF

定义暂停语句

FIRST_ G00_MOVE_DEF

定义第一次快速移动指令

G00_MOVE_DEF

定义所有的快速移动指令

FIRST_ G01_MOVE_DEF

定义第一直线切削指令

G01_MOVE_DEF

定义所有的直线切削指令

FIRST_ G02_MOVE_DEF

定义第一段圆弧顺时针切削指令

G02_MOVE_DEF

定义所有的圆弧顺时针切削指令

FIRST_ G03_MOVE_DEF

定义第一段圆弧逆时针切削指令

G03_MOVE_DEF

定义所有的圆弧逆时针切削指令

G20_DEF

英制单位指令

G21_DEF

公制单位指令

DCMP_LFT

刀具半径左补偿

DCMP_RGH

刀具半径右补偿

DCMP_OFF

关闭刀具半径补偿

SPN_CW

主轴顺时针旋转指令

FILE_EXTENSION

文件扩展名

UNITS

长度单位

LINE_NUM_START

开始行号

LINE_NUM_INCREMENT

行号增量

LINE_NUM_MAXIMUM

行号最大值

OMIT_SAME_GCODE

省略相同G代码

OMIT_SAME_XYZ

省略相同XYZ代码

RAPID_XY_Z

快速移动XY then Z

ARC_TO_LINES

圆弧转换直线

END_OF_LINE

每行的结束符


以下列表是Ucancam软件后处理器用到的“变量”关键词:

                                                   

变量关键词

含义

DATE

日期变量

TIME

时间变量

FILENAME

文件名称变量

TOOLPATHNAME

加工路径名称变量

XSIZE

加工路径x方向大小

YSIZE

加工路径y方向大小

ZSIZE

加工路径z方向大小

XMIN

加工路径的x最小值

YMIN

加工路径的y最小值

ZMIN

加工路径的z最小值

XMAX

加工路径的x最大值

YMAX

加工路径的y最大值

ZMAX

加工路径的z最大值

WK_XSIZE 加工材料的X方向大小
WK_YSIZE 加工材料的Y方向大小
WK_XMIN 加工材料X向最小值
WK_YMIN 加工材料Y向最小值
WK_XMAX 加工材料X向最大值
WK_YMAX 加工材料Y向最大值

X

当前x坐标

Y

当前y坐标

Z

当前z坐标

I

当前圆弧圆心相对于起点的增量坐标X

J

当前圆弧圆心相对于起点的增量坐标Y

K

当前圆弧圆心相对于起点的增量坐标Z

IA

当前圆弧的圆心绝对坐标X

JA

当前圆弧的圆心绝对坐标Y

KA

当前圆弧的圆心绝对坐标Z

IE

当前圆弧圆心相对于终点的增量坐标X

JE

当前圆弧圆心相对于终点的增量坐标Y

KE

当前圆弧圆心相对于终点的增量坐标Z

LN

行号

TN

当前刀具号

TOOL_DESC

当前刀具名称

NUM_CIRCLE_TO_ARC

圆转换为圆弧的个数

FC

切割进给速度

FP

下刀速度

FR

快速移动速度

SPN_SPEED

主轴转速

SAFE_ZPOS

安全高度

                                                                               

1.FORMAT

定义数据输出的格式包括:

FORMAT<N|N%d >

FORMAT<X|X%1.3f |1.0>

FORMAT<Y|Y%1.3f |1.0>

FORMAT<Z|Z%1.3f |1.0>

FORMAT<S|S%d |1>

FORMAT<F|F%d |1>

FORMAT<I|I%1.3f |1.0>

FORMAT<J|J%1.3f |1.0>

FORMAT<K|K%1.3f |1.0>

FORMAT<R|R%1.3f |1.0>

FORMAT<A|A%1.3f |1.0>

定义的内容在<>内,|为分隔符,以FORMAT<X|X%1.3f |1.0>为例: <>括号内的内容用分隔符分为三部分。第一部分X为特定名称,表示当前定义的数据格式为点的X坐标值,UCancam后置处理可以定义的数据格式的特定名称如下: N  X Y  Z  S F  I  J K  R  A。

N表示行号,X、Y、Z表示坐标值,S为主轴转速、F为进给速度,R为圆弧半径,A为角度,I、J、K为圆弧坐标

第二部分X为点坐标x的实际输出名称,一般情况下仍然为X字符。 1表示数值的位数至少保留一位,3表示小数点后保留三位,f表示数值为浮点型;d表示整数型。

第三部分为比例系数:缺省值为1。

对于圆弧输出来说, 如果定义了IJK数据输出格式,则圆弧以IJK形式输出 ;如果定义了R数据输出格式,则圆弧以R形式输出;缺省时,,圆弧以R形式输出。

2.G00_DEFG01_DEFG02_DEFG03_DEFG04_DEFG20_DEFG21_DEF

不同的数控系统,对快速移动、线性切削、圆弧切削、暂停、英制、公制指令的定义不同,软件中提供了再定义功能。如:G00_DEF <G172>

3.圆弧指令

1)圆弧用折线表示

ARC_TO_LINES<1> ,1是布尔变量表示真。

可选值;  0 或1

缺省值:0

2)圆弧用半径R表示

FORMAT <R|R%1.3f |1.0>

3)圆弧用I、J、K(圆弧起点到圆心的增量坐标方式)方式表示

FORMAT <I|I%1.3f|1.0>

FORMAT <J|J%1.3f|1.0>

FORMAT <K|K%1.3f|1.0>

4)圆弧用IA、JA、KA(当前圆弧的圆心绝对坐标)方式表示

5)圆弧用IE、JE、KE(圆弧终点到圆心的增量坐标方式)方式表示

缺省值: R format

4. FIRST_ G00_MOVE_DEF

定义第一次快速移动指令,用于区别后续的快速移动指令。

G00_MOVE_DEF

定义所有的快速移动指令,或定义除第一次以外的快速移动指令。

5.FIRST_G01_MOVE_DEF

定义第一次直线切削移动指令,用于区别后续的直线切削移动指令。

G01_MOVE_DEF

定义所有的直线切削移动指令,或定义除第一次以外的直线切削移动指令。

6.FIRST_G02_MOVE_DEF

定义第一段圆弧顺时针移动指令,用于区别后续的圆弧顺时针移动指令。

G02_MOVE_DEF

定义所有的圆弧顺时针移动指令,或定义除第一段以外的圆弧顺时针移动指令。

7.FIRST_G03_MOVE_DEF

定义第一段圆弧逆时针移动指令,用于区别后续的圆弧顺时针移动指令。

G03_MOVE_DEF 定义圆弧逆时针移动指令

定义所有的圆弧逆时针移动指令,或定义除第一段以外的圆弧逆时针移动指令。

8. DWELL_DEF

定义暂停语句,如果未定义该语句,缺省值为G04 X秒数。

如:G04 X2.000 表示钻孔到底部的暂停时间为2秒。

9.输出行号

FORMAT<N|N%d >

设定在代码中输出行号,如果未定义该语句,则表示不输出行号。

LINE_NUM_START<1>

起始行号,缺省值为1

LINE_NUM_INCREMENT<1>

行号增量,缺省值为1

10.UNITS

定义长度单位,长度单位有两种表示方式,分别为公制(毫米)和英制(英寸)

UNITS<MM>    公制单位,进给速度为mm/min

UNITS<INCH>  英制单位,进给速度为inches/min

缺省值:MM

11.FILE_EXTENSION

路径文件扩展名,如FILE_EXTENSION<nc>  输出G代码文件后缀(扩展名)为*.nc。

缺省值:nc

12.ROTARY_AXIS

旋转轴设置,支持旋转轴机器。

可选值;  Y 或X

如:ROTARY_AXIS<Y>,表示Y坐标映射为旋转角度,X轴不变。

定义了该语句,UCancam在路径输出时会弹出对话框,提示用户输入旋转轴的直径。

13.OMIT_SAME_GCODE

OMIT_SAME_GCODE<1>。 省略相同的G代码,即当前行代码与上一行代码的G指令相同,则省略G指令。

可选值;  0 或1

缺省值:0,即不省略相同的G代码。

例如:  G01 x010.000 Y 20.000Z0.000

G01 x010.000 Y 20.000 Z-5.000

设置语句: OMIT_SAME_GCODE<1>

则输出为:  G01 x010.000 Y 20.000Z0.000

x010.000 Y 20.000Z-5.000

14.OMIT_SAME_XYZ

OMIT_SAME_XYZ<1>

省略相同的XYZ代码,即当前行代码与上一行代码的X、Y、Z的值相同,则省去相同的X、Y、Z代码。

可选值;  0 或1

缺省值:0,即不省略相同的X、Y、Z代码;

例如:  G01 x010.000 Y 20.000Z0.000

G01 x010.000 Y 20.000 Z-5.000

如果设置了语句: OMIT_SAME_XYZ<1>

输出为:G01x010.000 Y 20.000 Z0.000

G01Z-5.000

15.RAPID_XY_Z

RAPID_XY_Z<1>

快速移动,先XY,然后Z。否则,XYZ联动。

可选值;  0 或1

缺省值:1

如果设置了语句 :  RAPID_XY_Z <1>

刀具从点PointA(0,0,10)to point pointB(100,50,0)的快速移动,将分为两部分:首先从点pointA(0,0,10)to 中间点midpoint(100,50,10),然后从midpoint(100,50,10)to pointB(100,50,0).以避免可能的产生的刀具碰撞。

16.END_OF_LINE

代码行的尾部符号,如在plt指令中设置:END_OF_LINE <;>,在输出的代码中每行的末尾就会有“;”

缺省值:无

17.XSIZE、YSIZE、ZSIZE

加工路径的在X、Y、Z轴向的尺寸

18.XMIN、YMIN、ZMIN、XMAX、YMAX、ZMAX

当前加工路径X、Y、Z方向坐标的最小值与最大值。

19.X、Y、Z

当前X、Y、Z坐标。

20.SPN_SPEED

设置主轴转速,如:TOOLCHANGE <M06 T[TN] S[SPN_SPEED]>

21.FC

设置加工进给速度。

22.FR

设置快速移动速度。

23.FP

设置下刀移动速度。

24.SAFE_ZPOS

安全高度。

以下是由ucancam软件生成的后处理程序。

例1:generalCNC后置处理程序

//linenumber

//FORMAT<N|N%d >

///////////////////

FORMAT<X|X%1.3f >

FORMAT<Y|Y%1.3f |1.0>

FORMAT<Z|Z%1.3f |1.0>

FORMAT<S|S%d |1>

FORMAT<F|F%d |1>

//////////////////////////////

UNITS<MM>

/////////////////////////////////

FILE_EXTENSION<nc>

/////////////////////////////////

LINE_NUM_START<1>

LINE_NUM_INCREMENT<1>

/////////////////////////////////

PROG_HEAD<G90G17G21>

TOOLCHANGE<M05>

TOOLCHANGE<M06 T[TN]>

PROG_TAIL<M30>

例2:HP_PLT3D后置处理程序

//precision  = 0.025,  1/0.025=40

FORMAT<X|%1.0f, |40.0>

FORMAT<Y|%1.0f, |40.0>

FORMAT<Z|%1.0f |40.0>

///////////////////////////////////

UNITS<MM>

//convert arc into lines

ARC_TO_LINES  <1>

RAPID_XY_Z  <0>

END_OF_LINE   <;>

///////////////////////////////////

FILE_EXTENSION<plt>

//////////////////////////////////

PROG_HEAD <IN;>

PROG_HEAD <SP1>

G00_DEF<PU>

G01_DEF<PD>

TOOLCHANGE<SP[TN]>

PROG_TAIL<SP0>