Fusion 360 and Avid Relay 1

Just added a vacuum table to my CNC. It is connected through Relay 1. Works fine turning it on through Mach 4 (pressing relay 1 on), and adding an M8 command to the Gcode generated by Fusion 360.

One thing that eludes me is how to get Fusion 360 to add the M8 command automatically (I am currently editing the gcode after the fact). I thought changing the cooling on the spindle bit to “Flood” would get Fusion 360 to add the M8 command, but it does not.

Anybody else run into this and found a solution??

You need to change the configuration in ESS/Mach4 to point that output to a different signal than coolant flood.

Personally, I would not control flow-through fixturing using M codes. I like to get the stock set up, turn on the vacuum motors and then after running the program, leave the motors running until I have verified the parts are within tolerance.

But if you want to use the m-codes then you need to open the AvidCNC post processor and go through any Fusion 360 tutorial to alter it. Since it is standard to F360 you get the docs from Autodesk. Then you will need to write the m-code in Lua for Mach4 to actuate the output.


And yes, I do use coolant/lubricant with my flow-through fixturing. Look up “near-dry machining.” Use nitrogen as your pressurizer and run technical grade isopropanol (99%) and make sure you are well ventilated and no open flame (for aluminum sheet). And I do mean “near-dry” and “well ventilated” as most vacuum motors generate an arc.

And, for the record, I do control the flow-through fixturing from a on-screen button in the Mach4 UI. I just don’t make it part of the program I am running.

Thanks for the suggestion. Running the vacuum from the Mach 4 interface works fine. I have dust collection automatically turned on/off by Fusion 360. The M9 command to turn off the dust collection vacuum also turns off the spoilboard vacuum system also, so I only have to remember to turn it on before I run a program.

I ended up editing the Avid CNC post processing file.

Now if I check the box to use the dust collection in Fusion 360 it will automatically add the M8 command to start the vacuum table.

if (properties.useDustCollector) {
writeBlock(mFormat.format(7)); // turns on dust collector
writeBlock(mFormat.format(8)); // turns on vacuum table

I can still start the vacuum table manually through Mach 4 by pressing the relay 1 button. The additional M8 command will not interfere with the vacuum operation if the vacuum is already running and the additon of the command will just provide a failsafe if I do something stupid like run a program and forget to turn the vacuum on.


I am loathed to repurpose M code for things they are not intended for. The reason is if you ever get the wrong post processor in there you can have problems.

Case in point; same relay you are using but controlling the drawbar on the ATC spindle.

Without realizing it I started a new project and did not specify a post processor. So F360 supplied one of its own! The spindle gets up to the 24K rpm… drops the tool!

First time I was going to do a cut at 24k rpm with the machine. Kind of a test piece.

Remember the coolant is turned off during rapids. So if you do mess up the selection of the post processor it will turn on an off the vacuum motors between each engagement.

M9 turns off all coolant and dust collection, btw.

I’ve never run a vacuum table but I’m interested. Is it common to enable the vacuum at the start of a job? I always viewed it as workholding that you do prior to hitting Cycle Start. Does the vacuum ever cause the stock to shift when it pulls suction or is it pretty reliable?

I am relatively new to using the vacuum table (use a blackbox hurricane and made my own plenum, etc.) but the only reason I can see to start it early is if you think someone may accidentally bump it prior to starting the cycle or you want to press down on the piece to ensure maximum suction. The table suction I have is a straight pull and I haven’t noticed any movement of the piece when applying vacuum. Once you turn on the vacuum table good luck trying to adjust the piece since the suction holds it securely in place. You would have to close the zone valve or turn off the vacuum to adjust the piece.

My situtation may be slightly different than most. Mach 4 is on a computer in an adjacent room to the CNC. The room has a window so you can see the CNC, but being in a separate room it is easier to forget to do things, and we get lazy and do not want to have to keep running in and out of the rooms to adjust things (ie. position piece, run back to the computer, start the vacuum, run back to the CNC and check it is still in the same place, run back to the computer and start the file). We have had to re-wire our touch probe several times since we zero to a working piece then forget to take off the probe and the spindle starts up during a program and gives it a merrygoround ride and tears the wiring off. Sometimes we are not the sharpest knives in the drawer.

For the lazy milling people, it just seems easier to get everything setup on the CNC and then go to the other room and start the program. That way if we forget to start the dust collection or vacuum mach 4 reads the M7 and M8 codes to automatically start them anyway. If they are already running, it does not stop them so it does not prevent us from starting these first, we can always hit the relay 1 (vacuum) and relay 2 (dust collection) buttons manually before starting the program. It just helps us prevent a brain fart.

Once you have Fusion 360 enter a M7 (dust collection) OR M8 (vacuum in my case) a M9 code is automatically entered at the end of the program which automatically shuts down both the dust collection and vacuum. As per subnoize who keeps the vacuum on after the program, even having the dust collector automatically start up and manually starting the vacuum will shut off the vacuum at the end of the program. To do what subnoize does you would tell Fusion 360 not to use dust collection and then manually start both relays (in my case since the Avid relays control both the dust collection and vacuum table) and then have to manually stop both relays after the program finishes.

I can see the benefit of manually startiing everything, but for us I think automatically starting things is just one less thing we have to worry about.

1 Like

If the stock isn’t flat it will want to wiggle around and seat crooked if your motors have a high enough CFS flow. The flatter the piece the less trouble it is getting it stationary.

But you are right, you want to get the stock set, then you want to touch off to the corners and if you are touching off on the top, you do it with vacuum on.

Otherwise if the part moves or the bow in it flattens under vacuum then your work offset is not longer valid.

Like I said before, when the program is finished, I don’t want it to move until I have inspected the results. If you let off the holding force then if you have to do “fix” something you will will play heck trying to get the alignment back again.

Then there is the question of hitting the pause or stop. Your stock will pop up off the table and then when you hit run again, you got to pray it seats back exactly like you had it.

Yep, separate switch for me. I actually use ModBus for that. If the Mach4 ModBus wasn’t broken I would send back the CFM from the motors so I could set alarms for sudden or large upticks in CFM. Try to notify the operator of troubles.

Bowed and distorted stock can cause it to move when you turn on the motors.

But more importantly you will only get true values from your probe when the motors are on and the stock is firmly seated.

For in process inspection is also important to keep the part seated. Otherwise you will not get accurate reads from your probe.

Don’t get me wrong. I am a huge automation guy! I automate everything. But the one switch that is manual is the vacuum table. If I could battery back it I would. But at 250v 48a its a bit difficult doing that. The CNC machine can lose power all day but if the stock moves, you can rarely recover.

Being new to the vacuum sub noise brings up a good point that we quickly experienced. The Z offset changes with a vacuum table. It not only charges with the vacuum on or off but it also changes depending on what valves are open or closed and whether the vacuum has a secondary motor that is on or off.

1 Like

FYI: This is especially important when you use the Mach4 surface mapping function for doing engraving.