What is a post processor?
From PROBOTIX :: wiki
A post processor is a language definition file used to modify generic g-code such that it can be used on a particular cnc machine. Like for example, LinuxCNC wants to see a percent sign at the beginning and end of each program. Some controllers, require line numbers, while others don't care if they have line numbers or not. Post processors define inch vs metric, the file extension that the g-code is saved as (like .ngc), whether or not line numbering is used, the pre-amble and post-amble, setup routines like coordinate system and path optimization, and what each of different classes (rapid, feed, arc, etc) of moves looks like. Mach3, LinuxCNC, and the CNC USB Control Software can all use the generic g-code post-processors available with every CAM program. Also, you will find that several post processors may also work.
We have post-processors available for:
Post processors are just text files and can be opened and edited in notepad. Most of them are fairly easy to read and understand. All CAM software will also provide some sort of documentation for understanding and modifying them. You will likely want to modify a post processor to suit your specific needs. As an example, most post processors will perform a move to X/Y zero at the beginning of every file. Why does it need to do that? It doesn't, it's just a waste of time. Why not fly directly over to where the machine will start cutting? Also, most processors will have the machine return to X/Y zero when its finished. I don't want it to do that. I want it to move back out of my way so I can remove the part. Well, modifying the post processor can solve these annoyances and output g-code the way you want them to.
You will also want to make sure your post processor uses G64 path optimization, and you will want to control the P tolerance parameter of G64 depending on the types of parts you are making. Read more about G64 here: G64 and do not confuse G64 path optimization with the G54 coordinate system.
A proper preamble for LinuxCNC should always specify the coordinate system (G54-G59, G59.1, G59.2, or 59.3), units (G20 or G21), absolute or incremental G90 or G91), the arc plane (G17 for X/Y), cancel tool diameter and length compensation (G40 and G49), and cancel any work offsets with G92.1. It should also specify G64 and its P tolerance parameter.
So a minimum LinuxCNC preamble will look like this:
G54 G20 G90 G17 G40 G49 G92.1 G64 P0.010