So you are working through the realm of CNCing. Sooner or later in your studies you will come across the term post processor. What is this exactly and what do you do with it?Recall in the last blog post there are basically three levels to making on a CNC machine:CADCAMGcode sender/machineThe post processor fits between two and three and is handled at the end of the CAM process. Let us create some Gcode in CamBam with no post processor.A simple circle will do for this tutorial.Notice I skipped the CAD portion in a different software and just drew a circle in my CAM software. Now let us do a outside profile cut.Super easy now let us create our Gcode, again without a post processor. ( Made using CamBam - http://www.cambam.co.uk )( Untitled 7/12/2018 9:00:12 AM )( T1 : 3.175 )G21 G90 G64 G40G0 Z3.0( T1 : 3.175 )T1 M6( Profile1 )G17M3 S2000G0 X36.5875 Y0.0G0 Z1.0G1 F300.0 Z-0.4G3 F800.0 X-18.2938 Y31.6857 I-36.5875 J0.0G3 Y-31.6857 I18.2938 J-31.6857G3 X36.5875 Y0.0 I18.2938 J31.6857G1 F300.0 Z-0.8G3 F800.0 X-18.2938 Y31.6857 I-36.5875 J0.0G3 Y-31.6857 I18.2938 J-31.6857G3 X36.5875 Y0.0 I18.2938 J31.6857G1 F300.0 Z-1.0G3 F800.0 X-18.2938 Y31.6857 I-36.5875 J0.0G3 Y-31.6857 I18.2938 J-31.6857G3 X36.5875 Y0.0 I18.2938 J31.6857G0 Z3.0M5M30Understanding what all this means is vital to being a good CNCr. At Hobby-Fab we have several machines and they all work on different controllers; this Gcode will work on some of the machines but kick out errors on others.G64Let us start with the 3rd command G64. Our mill will take this but our CNC routers will error out. Why?Well let us look at the controller on the router, it is GRBL based. Here is a list of commands supported by GRBL.Notice G64 is not on the list. Does this mean we are missing functionality? Direct answer, no. The circle after being cut by something running a different controller looks the same. G64 has to do with smoothing, and not required for anything we have ever done. M6Let us next look at the tool change command, T1 M6.Our GRBL controller loves this command, but relies on our gcode sender to know what to do with it. On the other hand our mill will completely ignore it. The mill will look for T1 M6 G43.1, 2 etc. It wants to know if it should apply a tool length offset. Using bCNC (Gcode sender) we can tell the program what to do at M6 commands, ours is set up to stop, move to a certain location for tool change, wait for an operator to change the end mill, then click a button. The software, not the controller, then preforms a probe and applies a tool length offset to the entire Gcode. There are many different Gcodes that various controllers and Gcode senders can and cannot work with. So what is a CNCr to do? Modify all Gcode before sending to the machine? This is completely a viable solution for shops with multiple machines but what if you only have one machine, this simply doesn't make sense. Enter the post processor.A post processor will be set by you, or be a selection you can make in the CAM portion of your work flow. Let's say you are a Fusion360 person. A quick search will reveal some great information on how to make a selection that will modify your gcode quickly and without effort here.Same can be done for guys using Vectric products. Making a quick selection has the same effect as above. The same can be done in CamBam on the machining tab. All you really need to know is what soft or firmware your controller is using. Like magic your Gcode is modified to include or remove Gcode that your controller will not understand. No more errors, no more missed Gcode. One thing to keep in mind, some controllers like smoothie ignore unsupported Gcode. Sometimes this is a good approach, in other aspects it can very harmful. There is a lot of opinions on this subject, you can find pages of people arguing both sides of the table. Ideally (and the way several do) is for the Gcode sender to be set up in a way that allows one to choose to ignore or throw an error on unsupported Gcode. Understanding Gcode and post processors is a one more way you can become a master CNCr.