[Info] Fusion 360 - Setting Home Coordinates / Machine Profile

This came up in another thread, but thought I’d create a dedicated spot for reference. The default Fusion 360 (F360) post-processor will end a program the Machine Coordinate System 0, 0 (x=0, y=0). This can be seen in the processed g-code G53 G0 X0 Y0. For some, that can be an unwanted behavior.

I solved this by creating a Machine Profile within F360 (Machine Library), and setting the Home Position for both X and Y (Z is already set to 0).

This will change the G53 output to something like G53 G0 X400 Y500 (X and Y will be the values you set within the profile).

In addition, there are some other things you can default within the machine profile, like which post-processor to use. If you’re like me, and have multiple machines you post-process to, this can be a nice default to set (save your self the sanity of wondering why your probing operation is gone crazy, only to realize you were post processing for a different controller).

I’ve attached the profile (.machine) file, for those interested as well. Note, I’ve slowed down my rapids on X/Y if you use this, adjust accordingly.
RENAME THIS FILE - REMOVE THE .NC (I had to add that to get around the file type permissions :wink: )
onefinity_ww_profile.machine.nc (2.2 KB)


Thanks Tim - aside from the super simple way of doing this in Fusion (<-- joke), will it affect the origin for cutting? I hope not, but just checking.


No, this is all within the machine coordinates system (MCS). When you zero on your part, you’re doing that in the work coordinate system (WCS). So all cutting is relative to WCS.

Also I’m sure there’s other ways within the Post Processor to adjust these settings, but I was just goofing around, and stumbled across this and figured I’d try it, and it worked :smiley: - as I was getting tired of the unit returning to the front left corner after each process (I prefer a machine to finish away from where I’m standing :wink:

1 Like

This feature (at least in the post processor I’m using) is hardcoded. However, it’s really fairly simple to modify the post processor .cps file to have the machine go wherever you want. There is a function towards the end of the script called “onClose()” where you can input whatever coordinates you’d like other than 0,0,0.

1 Like

I was looking at exactly that, but didn’t want to have to maintain a separate version of post-processor (though I think I will anyway) - and I prefer things to be parameterized. But good call.

Also - the machine profile works across different post-processors - which I’m facing currently while I test my other controller (GRBL).

Yeah, that is what I was going to do. Just haven’t gotten around it it.

There should be a way to make those parameters and have them show up in the list GUI. Haven’t done it personally. But now I’d like to try.

1 Like

This should do the trick…
onefinity_fusion360.cps (52.7 KB)

Okay, The front left homing after running programs has bothered me too. On program end, I prefer the machine fully retract the Z and remain at the X and Y wherever it ended the program. I found an easy fix:

I’m a strict amateur at editing code, but I’m kinda proud of myself that I figured out how this can be easily edited into the post processor. Autodesk has a post-processor training guide available here. On page 4-132, it details the writeRetract function in the onClose() section at the end of the post. This is the function responsible for returning the axes to a set position after the program has run. The onefinity post processor used two instances of writeRetract. The first one, writeRetract(Z) will retract Z up to its clearance plane. The second one, writeRetract(X,Y) will send X and Y to their home position. Since the post processor is written in javascript, the fix is easy: Just comment out the line containing writeRetract(X,Y) by placing two forward slashes in front of it ( // ). The edited line should look like this:

// writeRetract(X, Y);

Now on program end, the Z will retract and the X and Y will stay where they are.


Thanks for digging into this - it would be great if the PP allowed you to control that via the interface. If I get time, I might look into it.

Anyone know if the official PP is open source? I wouldn’t want to make changes to something that is date or will change after the fact.


I already propose a community version for fusion360 with fews features customizes (spindle delay, spindle pause, etc) that can be manage from nc program general option.


There is multiple proposion. Which one do you think should be add to this version?