Community
Fusion Manufacture
Talk shop with the Fusion (formerly Fusion 360) Manufacture Community. Share tool strategies, tips, get advice and solve problems together with the best minds in the industry.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Post Processors 101

46 REPLIES 46
Reply
Message 1 of 47
al.whatmough
32776 Views, 46 Replies

Post Processors 101

What is a Post Processor?

 

CAM requires post processors to format toolpaths into CNC programs, a.k.a. G-Code. These CNC programs are executed by the CNC control to drive the machine as it removes material from stock to produce a finished part.

 

Let's start by reviewing the basic steps of going from a CAD model to machined a part:

  

CAD.jpg

 

CAM.jpg

 

Simulate.jpg

 

POST.jpg

 

 

 

Numberical Control.jpg

 

 post button.jpg

How do I post a NC Program?

 

Fusion allows you to post a specific Operation or Operations, Post a complete Setup or Post Multiple Setups into one program.  Simply, select the Operation(s), Setup or Setups and Click post.

 

When posting multiple Setups you can even optimize the program to remove un-need tool changes!  Don't worry; it will never break the order of operations for a single setup.  But, before putting a face mill away, it does makes sense to see if that tool is the next one needed for one of the setups doesn't it?  If it is, the machine will retract to home in Z, move the other Setup and perform the facing operation!

 

 

 

 

 

What if the NC program isn't correct?post properties.png

 

Fusion 360 includes a variety of standard library post processors or "posts". If your machine is not listed in the post processor library then you may need to request a special post to be created. If the post for your machine is listed, you may need to have some modifications done to get the exact output you are looking for. Depending on your experience in machining and machine tool knowledge this may or may not be important to you. For others, such as professional CNC programmers - this is essential.

 

BEFORE, you request a post edit start by confirming that you can't make your required changes my modifying the POST parameters.

 

Basic parameters include:

 

AllowHelical moves - If your machine does not support helical moves it may machine an Arc and the plunge in Z.  Setting "Allow Helical moves" to false will convert all helical moves to small linear moves at the specified (Built-in) Tolerance

 

Show Sequence numbers - Specifies is Sequence numbers are output on each line

 

 

Some examples Advanced Parameters are:

 

Use G0 - Specifies if rapids that change in multiple Axis at are allowed.  If this is set to no, these moves will be output as a linear move (G01) at the Specified (Built-in) highFeedrate.  Machines that do not move in a linear fashion between to rapid points will produce what we "Dogleg rapid" that can potentially gouge parts.

 

UseG28 - While G28 should be a SAFE home position, some machines have G28 set at the top of the table.  So, when the machine homes at the begging or end of a program it plunges into part.  Setting UseG28 to false will not send the machine home at the beginning or end of the program.

 

 

 

What do I need to have a Post modified?

 

When having post customizations done, the best thing to do is to create simple part for each machine type in their CAD. This part should utilize all the processes you would normally use. Then post process the program with the closest generic post that is shipped with the system. When this is complete you should edit the NC output in an editor, and markup the output with comments showing what they want to change (don’t delete anything).

 

Here is an example of the best way to indicate the changes you require:

 

#1           HAVE THE COOLANT M8 BE ON THE LINE AFTER THE G43 LINE

#2           AT THE BEGINNING OF EACH TOOL HAVE THE WCS OUTPUT ON THE FIRST POSITIONING LINE

#3           PUT M9 AT END OF EACH TOOL BEFORE RETRACT TO Z HOME ?

#4           REMOVE X0. SO IT DOESN'T HOME IN X, JUST IN Y AT THE END OF THE CODE

#5           RECALL 1RST TOOL AT THE END OF THE FILE

#6           A N20 G28 G91 Z0. AT THE BEGINNING OF EACH TOOL JUST AFTER THE M1

 

%

O03091 (AVP 7)

(T1  D=0.25 CR=0. TAPER=90deg - ZMIN=-0.08 - spot drill)

(T2  D=0.257 CR=0. TAPER=118deg - ZMIN=-1.1272 - drill)

(T8  D=0.3125 CR=0. - ZMIN=-0.5 - right hand tap)

N10 G90 G94 G17

N15 G20

N20 G28 G91 Z0.

N25 G90

(Drill1)

N30 T1 M6

N35 T2

N40 S2500 M3

N45 G55

N50 M8

N60 G0 X4.5 Y-0.25

N65 G43 Z0.6 H1

N75 G0 Z0.2 (#1   PUT M8 HERE, JUST AFTER G43 LINE?)

N80 G98 G81 X4.5 Y-0.25 Z-0.08 R0.2 F20.

N85 X6.125

N90 X7.75

N95 G80 (#3       PUT M9 AT END OF EACH TOOL BEFORE RETRACT TO Z HOME ? )

N100 Z0.6

N105 M5

N110 G28 G91 Z0.

N115 G90

(Drill2)

N120 M9

N125 M1

N130 T2 M6

N135 T8

N140 S1000 M3

N145 M8

N155 G0 ( PUT WCS HERE ON EACH TOOL SECTION) X4.5 Y-0.25

N160 G43 Z0.6 H2

N170 G0 Z0.2 (#1    PUT M8 HERE, JUST AFTER G43 LINE?)

N175 G83 X4.5 Y-0.25 Z-1.1272 R0.2 Q0.1 P0 F3.

N180 X6.125

N185 X7.75

N190 G80 (#3     PUT M9 AT END OF EACH TOOL BEFORE RETRACT TO Z HOME ? )

N195 Z0.6

N200 M5

N205 G28 G91 Z0.

N210 G90

(Drill3)

N215 M9

N220 M1

N225 T8 M6

N230 T1

N235 S100 M3

N240 M8

N250 G0 X4.5 Y-0.25

N255 G43 Z0.6 H8

N265 G0 Z0.2

N270 G84 X4.5 Y-0.25 Z-0.5 R0.2 F5.5556

N275 X6.125

N280 X7.75

N285 G80

N290 Z0.6

N295 M9

N300 G28 G91 Z0.

N305 G28 X0. Y0. (#4       REMOVE X0. SO IT DOESN'T HOME IN X, JUST IN Y)

(#5         RECALL 1RST TOOL AT THE END OF THE FILE)

N310 M30

%

 

 

 

To obtain more information or request a post or post modifications please visit: http://camforum.autodesk.com/index.php?board=3.0.

 

Because all Autodesk CAM tools utilize the same post processor system and CAM kernel we have a dedicated forum to discuss all things CAM.

 

I hope this was a help.  

 

Feel free to add comments if you feel I missed something!

 

---------
AL Whatmough
Director Product Management - Manufacturing

Note, I love to engage on the forums. However, I spend a lot of time in meetings trying to help clear the path for our amazing team of Developers working on Manufacturing at Autodesk. So, if I don't respond immediately, it's not that I don't care.
46 REPLIES 46
Message 2 of 47

There should be something in this post telling people where to store custom post. There have be a few who have saved the custom post back to the generic folder and end up in trouble after an update when all the other posts are moved to the new install directory. I'm not sure how you put this right after an update because it seems Fusion can end up looking at the old directory with the one or two custom posts and not the new location for the generic posts.

 

If you have a custom post you should save to either the Personal posts folder or enable cloud libraries and store on the cloud. See this post for info on cloud libraries and A360.

 

Mark

Mark Hughes
Owner, Hughes Tooling
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Message 3 of 47
Anonymous
in reply to: HughesTooling

Not sure if this is the correct place on the forum..but the title says post processor 101?? I'm a newb and just trying to learn fusion 360 and cnc. My stepcraft cnc comes with uccnc software. I believe I need a post processor. Can't see it in the list of posts provided. Can you advise which is the one use uccnc?? Or is it possible to request a post be added for that software??

regards

Steve

Message 4 of 47
Steinwerks
in reply to: Anonymous

Looks like it's similar to Mach3, so I would start with that post and see what works. In the future the best place to visit for post processor issues is here: http://forums.autodesk.com/t5/post-processors/bd-p/218

 

@al.whatmough Can we get the link changd in your initial post to reflect the current location of the Post Processors forum?

Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube
Message 5 of 47
Anonymous
in reply to: al.whatmough

I have just started using the Cam portion. I am sending code to an Anilam 1100M controlled mill. I have yet to get a .m file to load correctly. The control indicates unrecognized characters or faults back to the dos prompt forcing  a control restart. I have posted code using Mach3 g-code and having the mill convert it to conversational. This works for getting the code into the mill but then I continually get "Radius to small for given end point". This is occurring mainly in the helical starts. I have tried the zigzag start but ended up with the same issue later in the program.

We also have an another Anilam control so I decided to try the programs on it in case it was a machine tolerance setup issue but I get the same errors. When I plot the points it shows to be 0.00003" short. I even modified the Mach3 post to use 5 decimal places and it still does it. Do you have any suggestions?

 

Thanks

Cliff 

Message 6 of 47
HughesTooling
in reply to: Anonymous

Try the post processor in this post.

http://forums.autodesk.com/t5/post-processors/anilam-conversational-post-fix/m-p/6101596#M7371

 

As for Arc errors on the Anilam control, tell me about it. I've had all sorts of problems over the years, wish I'd never seen the control. I had code run fine on all my other controls and the Anilam would error and their support would try and tell me the CAD\CAM was the problem. Read through all the thread linked above there are a few tips to reduce the problems you get.

 

Mark

Mark Hughes
Owner, Hughes Tooling
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Message 7 of 47
zodiaceng
in reply to: al.whatmough

I've got a couple questions regarding my post that I haven't been able to figure out just yet.

 

I'm running Fusion 360 and a 2004 Fadal EMC VMC in Format 1. Been running the generic Fadal configuration for a while now with no real issues, however I do have a couple things I want to modify.

 

First one seems fairly simple, my mill is defaulted to run G9 (deceleration) so its stopping at every coordinate. I've been manually inputting G8 near the beginning of he code every time and its annoying. I've tried a bunch of times to reset this on the control with no luck, so inputting it into the code has been working I just wish the post could add it so I don't have to. I've added a short snip of one of my codes below...

 

%
O1904 (G19 GEN4 LEFT FORWARD SERRATIONS)
(T2  D=0.0625 CR=0. - ZMIN=-0.02 - FLAT END MILL)
N10 G90 G8 G94 G17 H0 E0
N15 G20
N20 G0 H0 Z0.

(2D CONTOUR)
N25 M9
N30 T2 M6
N35 S6112 M3
N40 G4 P29
N45 E1
N50 M8
N60 G0 X1.0653 Y-0.921
N65 H2 Z0.6
N70 Z0.2

...and so on...

 

 

My second issue is I'm currently working on getting a 4th axis for my mill, so I've been messing around with some tool orientation. I seem to have been able to program multiple 4th axis paths, however when I post my program I'm getting an error "Error: Tool orientation is not supported." I've tried both Format 1 & 2 with no luck, so wondering if the Generic Fadal post config just doesn't support 4th axis yet. I'll be running around A with the indexer on the far right of the table. Below is the error message I get when I try and Post. 

 

Information: Configuration: Generic Fadal
Information: Vendor: Fadal
Information: Posting intermediate data to
'C:\Users\ayylmao\Desktop\NC\4th Test.txt'
Error: Failed to post process. See below for details.
...
Code page changed to '1252  (ANSI - Latin I)'
Start time: Thursday, July 21, 2016 8:25:53 PM
Code page changed to '20127 (US-ASCII)'
Post processor engine: 4.2.1 40927
Configuration path:
C:\Users\ayylmao\AppData\Local\Autodesk\webdeploy\production\00acb530044182955dd92b716af43e78c7229309\Applications\CAM360\Data\Posts\fadal.cps
Include paths:
C:\Users\ayylmao\AppData\Local\Autodesk\webdeploy\production\00acb530044182955dd92b716af43e78c7229309\Applications\CAM360\Data\Posts
Configuration modification date: Thursday, June 02, 2016 7:33:36 PM
Output path: C:\Users\ayylmao\Desktop\NC\4th Test.txt
Checksum of intermediate NC data: 8b14a3b2a5b1c36ffc756601f5d1bef7
Checksum of configuration: 0535991c3cac8ff5cff94933106e026f
Vendor url: http://www.fadal.com
Legal: Copyright (C) 2012-2016 by Autodesk, Inc.
Post processor signature could not be verified (error 0xfffffffc).
Generated by: Fusion 360 CAM 2.0.2139
...
Error: Tool orientation is not supported.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: Failed to invoke function 'onSection'.
Error: Failed to invoke 'onSection' in the post configuration.
Error: Failed to execute configuration.
Stop time: Thursday, July 21, 2016 8:25:53 PM
Post processing failed.

 

Any info regarding this would be greatly appreciated! Thanks guys!

 

-Ken

www.zodiaceng.com
Message 8 of 47
Steinwerks
in reply to: zodiaceng

Do you just generically want G8 at the beginning of the program? We use it too, and I have found that it also drastically improves drill times over a series of holes.
Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube
Message 9 of 47
zodiaceng
in reply to: Steinwerks

Yes, I would like G8 defaulted into my post, so its there in every program.

 

As for the 4th axis side of things, I've reposted the same program using the Haas with A Axis config and it works just fine so I know its not how I'm programming things. Seems to be a limitation on the Fadal Config side. 

www.zodiaceng.com
Message 10 of 47
Rob.Lockwood
in reply to: zodiaceng

k..

 

in your post you'll find a section that looks like this..

 

  if (false) { // note: setup your machine here
    var aAxis = createAxis({coordinate:0, table:false, axis:[1, 0, 0], range:[-360,360], preference:1});
    var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], range:[-360,360], preference:1});
    machineConfiguration = new MachineConfiguration(aAxis, cAxis);

    setMachineConfiguration(machineConfiguration);
    optimizeMachineAngles2(1); // map tip mode
  }

 

It's how the multi-axis config looks when done in the post processor (I think the only option in fusion still) ..

 

Make it look more like this..

 

  if (true) { // note: setup your machine here
    var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[-360,360], preference:1});
    //var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], range:[-360,360], preference:1});
    machineConfiguration = new MachineConfiguration(aAxis);

    setMachineConfiguration(machineConfiguration);
    optimizeMachineAngles2(1); // map tip mode
  }

Will give you rudimentary 4th-axis output. The generic Fadal post has crappy code for determining how to take the shortest distance, so you'll look like an amateur in instagram videos if you don't correct it.



Rob Lockwood
Maker of all the things.
| Oculus | | Locked Tool | | Instagram |

Message 11 of 47
zodiaceng
in reply to: Rob.Lockwood

Thanks Rob! I'll give it a shot now. 

www.zodiaceng.com
Message 12 of 47
Steinwerks
in reply to: zodiaceng

Well here's my G8-inclusive Fadal post. I've implemented the Clean operation as well as a real G0 option.

 

On another note, @Rob.Lockwood any idea why this is borking the PP?

 

  if (!properties.useRotary) { // note: setup your machine here
    var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[-360,360], preference:1});
    //var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], range:[-360,360], preference:1});
    machineConfiguration = new MachineConfiguration(aAxis/* , cAxis */);

    setMachineConfiguration(machineConfiguration);
    optimizeMachineAngles2(1); // map tip mode
	
  }else{
	var aAxis = createAxis({coordinate:0, table:false, axis:[1, 0, 0], range:[-360,360], preference:1});
	var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], range:[-360,360], preference:1});
	machineConfiguration = new MachineConfiguration(aAxis, cAxis);

	setMachineConfiguration(machineConfiguration);
	optimizeMachineAngles2(1); // map tip mode
  }

I put a "  useRotary: true //used to utilize an A axis rotary" in the Properties section. Maybe it's the '!'

Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube
Message 13 of 47
Steinwerks
in reply to: Steinwerks

Oh and the tools output with a Z MIN and use the Tool Description instead of the awful info garble that comes stock with HSM.
Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube
Message 14 of 47
Rob.Lockwood
in reply to: Steinwerks

few things going on there..

 

using !properties.useRotary means if that property is set to false; is that what you intend?

 

And it's odd, as your current filter says if we're not using rotary, setup a machine configuration that includes an A-axis.. And if we are using rotary, then setup an a-axis and a c-axis..

 

But most importantly, I don't think the way you commented out the cAxis here..

 

MachineConfiguration(aAxis/* , cAxis */);

is legit.. 

 

I'd correct that, change to..

 

if (properties.useRotary)

and trash the entire else statement..

 

  if (properties.useRotary) { // note: setup your machine here
    var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[-360,360], preference:1});
    //var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], range:[-360,360], preference:1});
    machineConfiguration = new MachineConfiguration(aAxis);

    setMachineConfiguration(machineConfiguration);
    optimizeMachineAngles2(1); // map tip mode
	
  }


Rob Lockwood
Maker of all the things.
| Oculus | | Locked Tool | | Instagram |

Message 15 of 47
Steinwerks
in reply to: Steinwerks

Here's a "force" A axis post that seems to work in some quick testing. Thanks to @Rob.Lockwood 

 

I just block commented the C-axis instead of deleting it.

Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube
Message 16 of 47
Rob.Lockwood
in reply to: Steinwerks

Ah, I guess block commenting within a statement works fine. Learn something new every day 🙂



Rob Lockwood
Maker of all the things.
| Oculus | | Locked Tool | | Instagram |

Message 17 of 47
Steinwerks
in reply to: Rob.Lockwood


@Rob.Lockwood wrote:

few things going on there..

 

using !properties.useRotary means if that property is set to false; is that what you intend?

 

And it's odd, as your current filter says if we're not using rotary, setup a machine configuration that includes an A-axis.. And if we are using rotary, then setup an a-axis and a c-axis..

 

But most importantly, I don't think the way you commented out the cAxis here..

 

MachineConfiguration(aAxis/* , cAxis */);

is legit.. 

 

I'd correct that, change to..

 

if (properties.useRotary)

and trash the entire else statement..

 

  if (properties.useRotary) { // note: setup your machine here
    var aAxis = createAxis({coordinate:0, table:true, axis:[1, 0, 0], range:[-360,360], preference:1});
    //var cAxis = createAxis({coordinate:2, table:false, axis:[0, 0, 1], range:[-360,360], preference:1});
    machineConfiguration = new MachineConfiguration(aAxis);

    setMachineConfiguration(machineConfiguration);
    optimizeMachineAngles2(1); // map tip mode
	
  }

The block comment works in the PP I just added, FWIW. I definitely acquired that thread of "don't delete things" watching Matt Nichols' videos.

 

I'll see what getting rid of the Else does.

 

Edit: no go.

Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube
Message 18 of 47
zodiaceng
in reply to: Steinwerks

The G8 works now. I added gFormat.format(8), per Rob's advise and it works perfect, same exact spot I've been adding it in manually as well. 

 

// absolute coordinates and feed per min
if (properties.format == 1) {
writeBlock(gAbsIncModal.format(90), gFormat.format(8), gFeedModeModal.format(94), gPlaneModal.format(17), hFormat.format(0), eFormat.format(0));
} else {
writeBlock(gAbsIncModal.format(90), gFeedModeModal.format(94), gPlaneModal.format(17));
}

www.zodiaceng.com
Message 19 of 47
Rob.Lockwood
in reply to: Steinwerks

I don't think you uploaded the right post, the one attached doesn't have a rotary property, or contain the word rotary anywhere in it.. ?

Also, i'm really glad all of this conversation is happening in this 'Post Processors 101' post @al.whatmough was kind enough to make... Perhaps someone should move this discussion to someplace more appropriate? 🙂

 

While we're all here, can you guys give me a hand with this multi-axis multi-spindle multi-turret post?

http://forums.autodesk.com/t5/post-processors/sequential-multi-channel-questions-stream-of-conciousn...



Rob Lockwood
Maker of all the things.
| Oculus | | Locked Tool | | Instagram |

Message 20 of 47
Steinwerks
in reply to: zodiaceng

I'm an idiot. Forgot a comma in my Properties Smiley Very Happy

 

The irritating part is it can't seem to NOT create the table and then outputs A and C axes. Smiley Frustrated

 

Neal Stein



New to Fusion 360 CAM? Click here for an introduction to 2D Milling, here for 2D Turning.

Find me on:
Instagram and YouTube

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report