Ucancam 后处理  

目前数控系统,主要以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

公制单位指令

SPN_CW

主轴顺时针旋转指令

FILE_EXTENSION

文件扩展名

UNITS

长度单位

XYZ_SEQ

输出坐标XYZ顺序

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

当前刀具名称

FR 主轴快速移动速度

FC

主轴切割进给速度

FP

下刀速度

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_DEF、G01_DEF、G02_DEF、G03_DEF、G04_DEFG20_DEF、G21_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.000 Z0.000
    G01 x010.000 Y 20.000 Z-5.000

    设置语句: OMIT_SAME_GCODE <1>
    则输出为: G01 x010.000 Y 20.000 Z0.000
    x010.000 Y 20.000 Z-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.000 Z0.000
    G01 x010.000 Y 20.000 Z-5.000

    如果设置了语句: OMIT_SAME_XYZ <1>
    输出为:G01 x010.000 Y 20.000 Z0.000
    G01 Z-5.000

    15.RAPID_XY_Z
    RAPID_XY_Z <1>
    快速移动,先XY,然后Z。否则,XYZ联动。
    可选值; 0 或 1
    缺省值:1

    如果设置了语句 : RAPID_MOVE_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_Z_POS
    安全高度。

    以下是由ucancam软件生成的后处理程序。
    例1:general CNC后置处理程序
    //line number
    //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_MOVE_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>

 

  地址: 北京市海淀区苏州街33号1016室 电话: 010-82684988 82684926
QQ: 747 843 889 Email: sales@ucancam.com