Ucancam Post Processor
The Post Processor is a programme which converts the tool path in some standard neutral format into the format requried by a specific machine control system. For example the G code format supported wordwide by many control systems and PLT3D suported by Roland machine.
Because the wide range of control system on the market, the majority of controls have simple formatting requirments. And therefore UCancam supply a configurable post processor which can be used by customers or agents to create a post proceesor file to support their controls.This configurable post proceesor use an unicode ASCII configration file to specify the output format required.
An example of a configuration file is shown on the below:
////////////////////////////
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>
Briefly, the entries in configuration flie fall into four main categories which can be described as below
1. Global Statements
These determine the file extensions, whether the output is in mm or inches.
Line numbering information and formattong for numeric fileds
2. Head of Pogramme
This section deals with line that must be output at the head of every programme.This information usually has the programme name, command for switching on the spindle etc.
for example:
PROG_HEAD <%:[DATE]:[TIME]>
PROG_HEAD <G90G17G21>
The word suffix “[ ]” is variable.
3. Tail of Pogramm
This section deals with line that must be output at the tailof every programme. This information usually has the programme name, command for switching off the spindle etc, moving the tool back to the home position.
for example :
PROG_TAIL <M30>
PROG_TAIL <%>
4. TOOLCHANGE
If the machine tool is equiped with an automatic toolchanger, or user wants to allow manual tool changes through an output file.this statement can be used to ouput the appropriate commans.
For example:
TOOLCHANGE <M05>
TOOLCHANGE <M06 T[TN]>
(TN: current tool number)
The schema of configuration file is : KEY WORD < description/value>
First word in the line is key word that is defined by Ucancam like as UNITS.
These in the brackets contain the description for command or values. For example : UNITS <MM>. To define the output is in milimeter.
The key word in Ucancam include two type:the one is to deinfe the commands.
The other is variable that is referenced in post processor file with prefix “[ ]”
The following is the key word for commands
KEY WORD |
Specification |
FORMAT |
define the formatting for numeric fields |
PROG_HEAD |
Head of program |
PROG_TAIL |
Tail of program |
TOOLCHANGE |
Tool change command |
G00_DEF |
Command name for rapid moving |
G01_DEF |
Command name for line cut |
G02_DEF |
Command name for CW arc cut |
G03_DEF |
Command name for CCW arc cut |
G04_DEF |
Command name for pause |
DWELL_DEF |
Commands for pause statement. |
FIRST_ G00_MOVE_DEF |
Commands for the first rapid move |
G00_MOVE_DEF |
Commands for rapid moves |
FIRST_ G01_MOVE_DEF |
Commands for the first feed rate move |
G01_MOVE_DEF |
Commands for feed rate move |
FIRST_ G02_MOVE_DEF |
Commands for the first clockwise arc move |
G02_MOVE_DEF |
Commands for clockwise arc moves |
FIRST_ G03_MOVE_DEF |
Commands for the first counter-clockwise arc move |
G03_MOVE_DEF |
Commands for counter-clockwise arc move |
G20_DEF |
command name for inch unit |
G21_DEF |
command name for mm unit |
SPN_CW |
command name for spindle CW rotation |
FILE_EXTENSION |
File extension name |
UNITS |
Unit for length |
XYZ_SEQ |
Sequence for XYZ |
LINE_NUM_START |
The start line number |
LINE_NUM_INCREMENT |
Line number increment |
LINE_NUM_MAXIMUM | Maximum value for line number |
OMIT_SAME_GCODE |
Omit the same G code |
OMIT_SAME_XYZ | Omit the same XYZ value |
RAPID_ XY_Z |
Sequency for rapid moving |
ARC_TO_LINES | Convert arc to lines |
END_OF_LINE |
The string at the end of line |
DRILL_CYC |
Drill cycle |
THREAD_CYC |
Thread cycle |
The following is the key word for variable
KEY WORD |
Specification |
DATE |
Date of create file |
TIME |
Time of create file |
FILENAME |
File name |
TOOLPATHNAME |
Toolpath type name |
XSIZE |
Toolpath size for x axis |
YSIZE |
Toolpath size for y axis |
ZSIZE |
Toolpath size for z axis |
XMIN |
Toolpath minimum value for x axis |
YMIN |
Toolpath minimum value for y axis |
ZMIN |
Toolpath minimum value for z axis |
XMAX |
Toolpath maximum value for x axis |
YMAX |
Toolpath maximum value for y axis |
ZMAX |
Toolpath maximum value for z axis |
WK_XSIZE |
Length of material in X. |
WK_YSIZE |
Length of material in Y. |
WK_XMIN |
Minimum value of material in X. |
WK_YMIN |
Minimum value of material in Y. |
WK_XMAX |
Maximum value of material in X. |
WK_YMAX |
Maximum value of material in Y. |
X |
Current x position |
Y |
Current y position |
Z |
Current Z position |
I |
Arc center in X Axis (relative to start X,Y position). |
J |
Arc center in Y Axis (relative to start X,Y position). |
K |
Arc center in Z Axis (relative to start X,Y position). |
IA |
Arc center in X Axis (absolute coordinates) |
JA |
Arc center in Y Axis (absolute coordinates) |
KA |
Arc center in Z Axis (absolute coordinates) |
IE |
Arc centre in X Axis (relative to end X,Y position). |
JE |
Arc centre in Y Axis (relative to end X,Y position). |
KE |
Arc centre in Z Axis (relative to end X,Y position). |
LN |
Line number |
TN |
Tool number |
TOOL_DESC |
Tool description |
FC |
Feedrate for cut |
FP |
Feedrate for plunge |
FR |
Feedrate for rapid moving |
SPN_SPEED |
Spindle rotation speed |
SAFE_ZPOS |
Safe height |
DRILL_DZ |
Driill maximum depth |
DRILL_RZ |
Driill retract depth |
DRILL_QZ |
Drill depth per cycle |
FORMAT
Output firmat for Variable in UCancam include :
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>
The field in brackets are separated as three parts by character “|” .eg:
FORMAT <X|X%1.3f |1.0>, the first part is Key character of Ucancam , “X” mean the current format is for x coordinate. Ucancam key characters of format include : N X Y Z S F I J K R A.
N: line number.
X: x cordinate
Y: y cordinate
Z: z cordinate
S: spindle rotation speed
F: spindle feedrate
I: arc x increment value
J: arc y increment value
K: arc z increment value
R: arc radius
A; angle for rotation axis
The second part is the string to print before value when output。 %1.3f is format string to control the number of decimal places leading zero etc. “1” is number that specifies minimum number of characters output. “3” is the precision specification value that specifies maximum number of characters printed for all or part of the output field
5.G00_DEF、G01_DEF、G02_DEF、G03_DEF、G04_DEF、G20_DEF、G21_DEF
Define the command string name that repace for ISO G Code G00 ,G01, G02, G03, G04, G20, G21.
Eg: G00_DEF <G172>
6. Arc command
1)ARC_TO_LINES <1>
Possible value: 1 or 0
Convert the arc to lines.
Default: 0
2)The format of arc output, Expressed as R.
FORMAT <R|R%1.3f |1.0>
3)The format of arc output, Expressed as I、J、K(Arc centre in X Axis, relative to start X,Y position).
FORMAT <I|I%1.3f |1.0>
FORMAT <J|J%1.3f |1.0>
FORMAT <K|K%1.3f |1.0>
4)The format of arc output, Expressed as IA、JA、KA(absolute coordinates)
5)The format of arc output, Expressed as IE、JE、KE(Arc centre in X Axis, relative to end X,Y position).
Default: R format
7. FIRST_ G00_MOVE_DEF
Commands output for first rapid move.
Commands that are output when the very first rapid move is made. A Section not used for most posts, but useful if the very first rapid move, needs to output different information to subsequent rapid moves.
This section is sometimes required for HPGL variants
G00_MOVE_DEF
Commands output for rapid moves.
Commands that are output when rapid moves are required.
8.FIRST_G01_MOVE_DEF
Commands output for first feed rate moves.
This section is commonly used where controllers require that the Feed Rate is set at the first feed move, this rate would then be used for subsequent cut moves.
G01_MOVE_DEF
Commands output for feed rate moves
Used to output information required at every move, or all feed moves except for the First Feed Move, if a FIRST_FEED_MOVE section is present within the post processor
9.FIRST_G02_MOVE_DEF
Commands output for the first clockwise arc move
Similar to the FIRST_G01_MOVE_DEF section, but for clockwise arc segments. This section is commonly used where controllers require that the Feed Rate is set for the first arc segment, this rate would then be used for subsequent arc moves in the same direction.
G02_MOVE_DEF
Commands output for clockwise arc moves.
Similar to the G01_MOVE_DEF section, but for clockwise arc segments.
10.FIRST_G03_MOVE_DEF
Commands output for the first counter-clockwise arc move.
Similar to the FIRST_G01_MOVE_DEF section, but for counter-clockwise arc segments. This section is commonly used where controllers require that the Feed Rate is set for the first arc segment, this rate would then be used for subsequent arc moves in the same direction.
G03_MOVE_DEF
Commands output for counter-clockwise arc moves.
Similar to the G01_MOVE_DEF section, but for counter-clockwise arc segments.
11. DWELL_DEF
Commamds for pause statement.
If not set this statement, Default:G04 Xtime
Eg: G04 X2.000 the pause time when drilling at the bottom is 2 seconds.
12.line numbering
FORMAT <N|N%d >
There are two meanings:
(1) output the line number.if not set this statement, ucancam do not output line number.
(2) Set the format of line number
LINE_NUM_START <1>
Start line number
Default: 1
LINE_NUM_INCREMENT <1>
Increment line number
Default: 1
13.UNITS
Possible value: MM or INCH
MM: All position in mm, feed in mm/min
INCH: All position in inches, feed in inches/min
14.FILE_EXTENSION
Defines the file extension that is used for files created with toolpath output.
15.Rotary_AXIS
This is used only in post processor which are used to drive a machine using rotary axis.
Possible value: X or Y
Either the X oy Y coordinate is mapped to rotary axis.
If this staement is present , Ucancam will display the dialog which show the
Diameter of rotary axis, the default value for diameter is assume that complete the length of toolpath along the axis being wrapped is the circumference of the cylinder.
16.OMIT_SAME_GCODE
Possible value: 1 or 0
Omit the following same G code in output file .
Default: 0.
Eg: G01 x010.000 Y 20.000 Z0.000
G01 x010.000 Y 20.000 Z-5.000
if set the statement : OMIT_SAME_GCODE <1>
the ouput is :
G01 x010.000 Y 20.000 Z0.000
x010.000 Y 20.000 Z-5.000
17.OMIT_SAME_XYZ
OMIT_SAME_XYZ <1>
Possible value: 1 or 0.
Omit the folowing same xyz coordinate.
Default: 0.
Eg: G01 x010.000 Y 20.000 Z0.000
G01 x010.000 Y 20.000 Z-5.000
if set the statement : OMIT_SAME_XYZ <1>
the ouput is :
G01 x010.000 Y 20.000 Z0.000
G01 Z-5.000
18.RAPID_XY_Z
Possible value: 1 or 0
If set the statement : RAPID_XY_Z <1> , the rapid move of tool from
PointA(0,0,10) to point pointB(100,50,0) isseperated I n two part, firstly from pointA(0,0,10) to midpoint(100,50,10), second ly from midpoint(100,50,10) to pointB(100,50,0).
19.XYZ_SEQ
Possible value: XYZ, XZY, YXZ, YZX, ZXY, ZYX.
This statement specifies the sequence of point coordinate is printed out .
20.END_OF_LINE
This statement specifies the character ouput at the end of line.
Default: none.
21.XSIZE、YSIZE、ZSIZE
The size of The toolpath in x axis, y axis, z axis.
22.XMIN、YMIN、ZMIN、XMAX、YMAX、ZMAX
The minimum and maximun value of the toolpath
23.X、Y、Z
Current tool point coordiant
24.SPN_SPEED
Spindle rotation speed.
25.FC
Tool feedrate for cutting
26.FR
Tool feedrate for rapid moving.
27.SAFE_ZPOS
Safe height.28.DRILL_CYC
Drill cycle
28.THREAD_CYC
Thread cycle:
THREAD_CYC <M29>
THREAD_CYC <G99 G84 Z[DRILL_ZPOS] R[DRILL_RPOS] Q[DRILL_QZ]>
THREAD_CYC <G80>
The following is example of pots processor file:
Eg1: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>
Eg2: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>