Laser post-processor for Fusion 360?

Well after a few days of putzing with it, I think I’ve got it mostly working. I actually made two post processors.

The first was just a proof of concept kind of thing. It’s adapted from the Mach3 water-jet post processor, and only accepts jet-type operations, so it’s pretty plug-and-play with the laser cutting toolpaths in Fusion 360. It uses M62P#/M63P# for on/off (so it’s compatible with the standard Avid Mach build), and you can set a PWM parameter, but there’s no way (yet) of changing this setting mid-program. It works, but has absolutely no bells, nor whistles.

My second attempt is an adaptation of the standard Mach4Mill post processor for Fusion 360. I liked @jjneeb 's idea about a “laser endmill.” This way, all of the normal milling toolpaths are available, giving a lot more flexibility. You can set up an endmill in your tool library to have the same diameter as the laser kerf, and designate that tool number as the “laser endmill.” The post processor handles all the normal milling operations as before, but has a different set of rules if the “laser endmill” is called e.g. m67 commands for on/off, no cutting during rapids, use the spindle RPM as the laser PWM value, etc. If you had all of your offsets set up right, you should be able to have both laser and milling operations in the same program! In practice, though, I think that’s asking for dusty optics and/or crashes.

I’ve run several tests and it seems to work well - definitely not “consumer grade,” but it does the things I wanted. I know there are much better options out there, but for simple laser projects within Fusion 360, I think it’s a handy hack. If any of you want to take a look at either of these projects, you can email me at and I’ll send you a copy of the .cps. Caveat emptor though, I didn’t know Javascript and Java were different things a week ago. :joy_cat: I’d appreciate any feedback.

Nice Job. I like the idea of using the tool offsets. I thought about using those a while back, and I decided not to but I can’t remember why.

So you use the length offset for Z, and then just the X and Y offsets for those. What is your reference, touchplate with a pin in your spindle, or some kind of a rod mounted to your laser mount?


I’m still playing around with that - I’m sitting here right now drawing up a few ideas of revised mounting brackets, trying to integrate in a fume extractor shoe. Better fume extraction is on my mind; my shop is in the basement, so even these quick test cuts I’ve been taking have left the house smelling pretty smokey.

I lean toward the idea of a rod mounted to the laser mount. As the laser will likely frequently be mounted/unmounted, I like the idea of the reference being as close to the laser as practical, and to be part of the assembly that’s being mounted/unmounted. As much as I think the idea of the spindle axis being the datum is really satisfying, it just seems like it would be a hassle to get it repeatable.

Ya, thats what i did. I have a retractable rod mounted to the laser baseplate of my magnetic mount. As long as I don’t unbolt the laser or rod brackets, I can attach/remove my laser as much as I want and the rod to laser relationship never changes.

Another idea that just occurred to me: what if I made a new air assist nozzle whose tip was cylindrical instead of conical? Then I could just use the touchplate for x, y, and z, and eliminate the whole issue.

That would work too in some cases. You can make a new air nozzle, or potentially make something that slides over it temporarily that is a cylinder. I have used my nozzle for Z touch before, and the laser body was conductive enough. Some people have told me that theirs wasn’t consistently conducting through the nozzle but i haven’t had that problem.

This will work for something with a fixed nozzle like the above shown 15W laser. However, some have a variable position nozzle that you can adjust depending on your needs and how deep in the workpiece you want to set the focal point. So it just depends on your needs. You could also make a new rim for your touchplate that had higher sidewalls that could catch the upper part of the existing air assist nozzle…lots of options.

@Eric , does AVID have any options for the touchplate for a higher sidewall on the two screw-on plates of the touchplate?

Good point. It can be totally temporary. It doesn’t need to be an air assist at all; it doesn’t even need a bore for the beam to pass through really. You could slip this “dummy nozzle” onto the laser, touch off on the touchplate, and then replace it with the functional air assist nozzle.

No… but you could touch to the outside of the touch plate instead of the inside to get position. It’s only basic math to figure out where the corner of the material is.

I’m curious about how you set up the “laser endmill” in Fusion.
Do things like “number of flutes” and length of flutes/shoulder/overall make any difference?

I’ve been working on my own edit of the F360 Mach4Mill post processor for a few weeks and feel like I’ve finally gotten something useable, but I’m interested in comparing code to see how you handled the m2003/2004/2005 calls and m62/63 and things like that. Do you put them every time you do a new operation (onSection?), or just once at the top of the file, or something different?

I agree! Sorta seems like we are! But we also appear to be driven problem-solvers and go-getters.

I just stumbled upon this thread and y’all have been very informative. I felt very invested in this conversation as I was scrolling through these 3-month old posts :slight_smile:

I don’t know anything about F360, but I would recommend using M67 and ESS285 if you can. That makes your power commands synchronized to your motor movements, whereas M62/63 are just on/off.

I use M67 at 0 power for off, and M67 with the power (or rpm value if you are using the laser endmil method) for turning it on and to a certain power level at the same time.

No, number of flutes etc. doesn’t map to anything - chipload isn’t really a thing with a laser :wink: . I just used spindle rpm as the pwm power of the laser.

As far as power on/off/modulation, I used M67 commands. I tried to separate it by type of motion (e.g. off for rapids, on for feeds, off for plunge etc.) It works pretty well most of the time but there’s still some subtle weirdness and room for improvement - if you have the ‘stay down’ height set too low on the linking tab, you can get an errant burn mark. Still not sure what that’s about.

I can send you my code if you want to take a look. I’m certainly not an expert, but sometimes it’s nice to look over/steal other people’s code.

Good tip! I’m not sure off the top of my head which ESS I have, but I’ll check as soon as I get back to my machine. I guess I’ll be doing more research on M67. I just “defaulted” to M62/63 as that’s the way the code came out when using the proprietary software from our vendor (not Avid) would post laser code.

There are a lot of places where I feel like I just brute-forced the code I wanted, but I’m happy to swap anyway.
What’s a good way to send? I don’t know what the forum’s file upload restrictions are.

If you want to DM me your email address, I can send you what I have

After a couple hours struggling to find out how to DM, I learned that I need to advance another “trust level” on this forum to be granted that privilege :grimacing: (I created this account yesterday) . Off to explore more topics…

I’ll drop my email here craigslist-style and hope the webcrawling spam bots won’t pick up on it…

abstractpaul thirteen at geemail dot com


Thanks, friend!

I use Vectric, and they have a pretty good post processor guide, but I still had questions trying to figure out exactly what it was outputing to the post processor on some files.

So I wrote a “dumpout” post processor that is just basically outputing text that says what kind of command (feed, rapid, etc.) was outputted, and what the power, X, Y, Z , and other variables were. That gave me a little more insight into what the CAM was writing to the post processor to help fine tune the post processor.

I’ve been watching this thread, now that the “Cat is out of the bag” I can tell you this:

We are working on a laser post for Vectric that will address some of the things that Jim pointed out. I am looking into Fusion 360 as well.

@shopratsneedshopcats With our Vectric post we can combine laser and routing. Would that suite your needs or is there some specific reason you would want to do that in Fusion 360?

1 Like

That’s basically what I did with my hacked post.

I really like the modeling environment in Fusion 360, so I’ve never invested in Vectric. Until recently, I just felt like I could get everything I needed done without the redundancy of buying another piece of software. But you guys are increasingly tempting me over… :wink: