Rotary toolpath different in F360 vs Simulator

I’m trying to make a wooden chess set on my machine. I’m starting with the Pawn piece:

Pawn.stl (11.1 MB)

I’ve successfully done a couple roughing operations:

For the finishing pass, I would like to run a spiral rotary operation with the pictured 1/16 ball end mill and spin the Pawn about the B axis. If I try to run this as a single operation, I end up hitting the software limits on the B-axis (more than 10,000deg = ~27.7 rotations). So my first question is:

  1. How can I work around the B-axis limits when performing these kind of rotary operations? I understand there is a M999 command that can be used to “unwind” the axis. I’ve tried checking that box in the Post Properties, but I still end up with toolpaths that perform the full unwinding.

In the meantime, I’ve tried to break up the single rotary operation into a multiple smaller operations so that we don’t hit the limits. Here’s what the F360’s “Simulate with Machine” shows:

I then try to post this operation with these settings:

When I run this in, I see something very different from the F360 sim:

Note that I still see this issue when I select the M999 option. So my second question is:

  1. Why doesn’t the toolhead path match what it shows in F360 sim?

Hey @zbattman, could you share your Fusion 360 file and g-code file? That will help with the troubleshooting as well.

Also, the M999 command requires a bit more user input than just checking the box in the post configuration. This page will help explain the details of using that command.

@zbattman, are you sure you’re using the latest post processor? Checking the M999 box should make it unwind those long moves faster. Also, in the video with the G code, I don’t see any RWO codes, which I would expect from our post. It would be helpful if you could share your Fusion file and G code for closer inspection.

Do you see any difference in behavior if you check TCPC?

@qrothing here are the files:

@john You’re right, it does seem like my post-processor version was out of date. I started using the latest one from the Fusion 360 Post Library. What is the latest version of the post processor? I’m seeing 44083:

Now that I’ve updated the post processor and select M999, I see a correct toolpath that skips the unwinding operations:

I’ve tried with and without TCPC, and it seems to produce the same toolpath (I can’t discern the difference). (ASIDE: I did try enabling TCPC with the old post software, and that fixed the wonky toolpaths). What does TCPC do?

Thank you both for the help! The GCode is now running as expected on my machine!

Woops I spoke too soon. I’m seeing a B-axis limit violation when using a M999 command:


Here’s the g-code and F360 file that I was using:

Note that I enabled M999 as well as TCPC in this g-code. It looks like it’s hitting the limits using the G53 and G0 commands:


Any idea what’s going on here?

ASIDE: I noticed that the simulator’s behavior can change when uploading new g-code, depending on where you paused it before the upload. For example, I tried uploading the same exact G-code (with same sim settings), and got two different results. In one case I see limit violations, in the other I do not. To get around this I make sure to home the axes (by scrolling to the end of a simulation) before uploading any new g-code.

I changed the target setpoint on line 8807 from exactly 9999 to slightly less than that:

N43990 X-0.2756 Z0.0133 B-9998.995

and that seemed to fix things. Is there a setting that will add this kind of buffer automatically?

What version of control software are you using? My guess is updating will address the 9999 leading to overtravel errors.

TCPC allows you to use work offsets when doing continuous 4th and 5th axis machining. It makes the work offset and commanded linear axes represent points relative to your part rather than a global position of the axes. When A or B rotate the local X, Y and Z axes will rotate with them. If you’re not using work offsets, then the resulting tool paths should look the same (though, the code should be different if there are rotary moves). I suggested trying it because the tool path that was being generated previously looked like it may have been local to the part, but I didn’t see the TCPC codes to allow that to work.

Looks like my machine is on 5.1.1? Where can I download the latest firmware?

I tried enabling TCPC, but the resulting code is exactly the same (minus some comments).

I tried looking for the firmware on, but I’m intermittently hitting this:


You need to connect your machine with an Ethernet cable to your local network and you can then update via the same page you took a screenshot of. You’ll click the shutdown services button and it will give you a button to update the software.

You may run into a problem with an expired key on your machine. You can follow the instructions in this thread: Error with latest upgrade