Vectric V-Carve CNCjs Automatically Populate M6 Tool Change Multiple Tool

As mentioned in a Winston Moy video linked below the Vectric V-Carve Post Processor (.pp) does not automatically support the ability to save multiple tools in one G-Code file. My primary gcode sender is CNCjs designing in Vectric V-Carve Pro (V10), but I started outwith Carbide Motion / Carbide Create. In Carbide Create many of us have become accustomed to saving out our G-Code files with multiple tools. When its time for a tool change the Z axes retracts to a safe height and we are prompted to do a tool change.

This is typically due to the M6 command which executes a pause for the tool change and is automatically added into the gcode file when saved from Carbide Create. The following explains how to adjust the Vectric .pp for the Shapeoko. Please note that this is just a tutorial for the basic addition of an M6 command and does not include the z-axes retract. (Broke a few 1/16" end mills forgetting that the bit does not retract automatically like in Carbide Motion but remedied this with a tool change macro in CNCjs)

Warning from Vectric is that adjusting your .pp is VERY serious and should be thoughtfully executed. With that said I am a hobbyist, ex-Marine, and NOT G-Code master Jedi or programer. Thanks to the help from the Vectric forum, Vectric e-mail support and a huge push in the right direction from @neilferreri I am not sponsored nor endorsed by Vectric or anyone, if that even matters, although that would be pretty neat. @WillAdams just going to go ahead and thank you as well.

The Goal:
Simulate the Carbide 3D workflow because it’s awesome by carefully adjusting the Vectric v-carve .pp so that multiple tools can be saved in a single G-Code file and by auto-populating the M6 command into the target gcode file automatically. When its time for a tool change CNCjs will pause due to the M6 command and prompt for a tool change. Then one could execute a custom tool change macro via the neat little super fantastic custom MACRO button options in CNCjs.


a. I highly recommend reading the Post Processor Editing Guide to better understand exactly what is going on. To find this guide via Vectric Vcarve open the App, starting at the top of the screen Help > Post Processor Editing Guide. If running version a previous to 10 you should get a PDF and the relevant information is around pg. 27 if your using version 10 you now get a web-link. Scroll down to Post Processor Blocks.

  1. With Vectric open go to File > Application Data Folder > PostP here you will see all of the available .pp’s. Scroll down to Shapeoko_inch / Shapeoko_mm Right Click > COPY the one you want to use. (For this example I am using the Shapeoko_mm) Go back a screen and open my_PostP and paste the Shapeoko _mm .pp file. It is not recommendable to edit the original file found in the PostP to keep a copy free of adjustments. Vectric recommends editing the .pp file from a saved location such as your desktop.

  2. I’m putting the last step here so no one skips it! Once you save the edited .pp file into the my_PostP folder you have to close Vectric V-Carve and re-open it to load the updated Post Processor options list. This is essentially how you confirm that things are working or not working. If they are not working check over every little thing you entered when adding the command block mentioned in step 3. Because I didnt have an awesome tutorial like this I had to go through it a a dozen times working out the kinks.

  3. Now open the Shapeoko_mm .pp file in Notepad. Diligently type in the command lines shown in the second picture in green from the second picture. I found it to work a lot easier to manually type in the lines instead of copying and pasting to prevent little errors. Not sure if this is mandatory.

Picture 1

Picture 2

Note 2.1: In the My_PostP folder if you open the ReadME file you will see, “If any post processors are placed here, they will become the only ones displayed in the Post-Processor list.”

Note 2.2: the “+” is like a semi-colon for gcode “;” saying ignore the data after this mark.

Note 2.3: Per Vectric Correspondence the Tool Change command block needs to be entered after the Post_Base line.

@wmoy Love your videos.

I would love to hear about what others are doing to improve their work flow or ideas for adjusting the .pp to help with the overall workflow. For example adding a safe retract height when the M6 Tool Change command is executed would be great maybe using G0 G53 Z-6.

I may be doing some videos/ write ups on leveraging basic MACROS in CNCjs. So feel free to hit me up with any workflow ideas!

Semper Fi


Nice, the missing link in VCarve, tool changes! This will mesh nicely with my CNCjs workflow including @neilferreri macros.

I will be modifying my post as soon as I get into my shop.


1 Like

Thank you for taking the time to post this!

1 Like