Post Processor Overview
IN THIS ARTICLE
Every cnc controller has a slightly different dialect, so you need to sure the generated g-code is compatible with your machine.
A post processor permits to convert the generated toolpath into readable g-code for your cnc machine.
Here you can download available post processor and here you can see how to open the post processor edit dialog .
Basic Concepts
Here a brief explanation to understand the workflow to convert toolpath into gcode.
NC Program stages
You can consider the nc-program as a sequence of stages , each stage has it's own template :
- G-Code Header
- For each operation
- Tool Change
- Tool Approach
- List of movements that make up the toolpath, or in some cases macros (drilling, tapping, etc ..)
- Tool disengagement
- Operation Finalization
- G-Code Footer
For each of these phases it's called a template and a tags dictionary, from the union of these two elements you get the output g-code.
Templates
Here an example of a template , which is nothing more of plain text .
Inside this text , you can see some word between curly brackets. These are the TAGS.
{EMPTY_LINE} {LINE_N} ({OP_DESC}) {RADIUS_COMP_INFO} ({TOOL_LABEL}) T{TOOL_POS}M6 {NEXT_TOOL_POS} {FEED_MODE} S{SPEED_VALUE}{SPINDLE_ORIENTATION} {ORIGIN} {COOLANT_CODE}
Tags Dictionary
The tags are the variable values, here an example of a tags dictonary.
LINE_N = N5 TOOL_POS = 15 NEXT_TOOL_POS = 10 FEED_MODE = G98 SPEED_VALUE = 2387 SPEED_ORIENTATION = M3 ORIGIN = G54 COOLANT_CODE= M8
Where i can find the available tag list ?
Output Final Code
From the combination of the single template and the tag dictionary, the output g-code will be created.
N5 (CONTOUR - ROUGHING) (COMP COMPUTER - RADIUS COR VALUE 10) (R390 D 20MM) T15M6 T10 G98 S2387M3 G54 M8 ...
The tag value will replace the {TAG_WORD} in the template.
Dictionary Convention
To facilitate understanding of the parameters available in the dictionary , it's been used a convention for naming tags.
Suffix _CODE :
These tags values are complete with both the char ( F, G, M) and numeric part ( 100, 0.3)
example :
{FEED_CODE} => F.3
{SPEED_CODE} => S100
Suffix _VALUE :
These tags values contain only the numeric part ( 100, 0.3) .
example:
{FEED_VALUE} => .3
{SPEED_VALUE} => 100