M0 MSG while export gCode from Vectric


I’m searching a solution about a prob while exporting gCode export from Vectric.
When I’m exporting several toolpath using the same bit they’re merged into the same .ngc file and it’s fine but when I run the file on my journeyman I get a msg on the display before to run the new toolpath, it comes from the lines : M0(MSG, Click ‘Continue’ when the spindle is up to speed) that are added at each start of the toolpath. I can manually update the file and remove these lines, but it’s not answome

Does anyone has an idea how I can skip these msg in order the processing goes through all toolpath without any msg ??

Many thanks

I do not recall ever seeing this behavior when combining multiple tool paths with the same bit. Are you sure you have not inadvertently assigned different tool numbers in the settings for each path?

1 Like

Stefano, I get the same thing when I group tool paths in the same file. Fortunately, the spindle never slows down and I am able to just press continue. It is a minor annoyance, probably coded into the post processor by design.

Thx for your suggestion !!

I’ve checked it → I’ve applied the same tool Nb for the 4 toolpath, only adapted some parameter like pass depth, stepover or feed rate. Into the gCode, the tool Nb is mentioonned only once at the begining.

When exporting the gCode I use option : Visible toolpath to one file and of course with the oneFInity post processor…

Will you post your Vcarve project and gcode so we can see them?

I have run several tests. The only way I have found to recreate this behavior on my end is to assign a different tool number to one of the paths. But I would be interested to see your files in more detail to see if something else is at play.

1 Like

Here are both files : crv3d plus the ngc with 4 path
Template_contour ext.crv3d (288.5 KB)
all path.ngc (18.5 KB)

I’ve found this … that might help.
But as beginnier I won’t implement it without any confirmation

  • Exporting with another post processor (Mach 2/3 ATC arcs) no lines with M0 MSG, therefore I guess this is related to the oneFInity post processor

  • Checking the oneFinity post processor in notePad, I’ve seen this block with an interesting clue


  • Commands output for a new segment - toolpath
  • with same toolnumber but maybe different feedrates


“G0[SAFEZ] M03[S]”
“M0(MSG, Click ‘Continue’ when the spindle is up to speed)”

I’m wondering if it’s possible to simply cancel this line into the post prop without any risks or side effect… ??

What do you think ?

Nota : I’ve tested to use for the 4 path the same bit with all parameters (feed rate, etc) and I have the same behaviour

Unfortunately, I can’t open the .crv3d file. I had incorrectly assumed you were using VCarve, not Aspire.

However, it’s worth noting that the gcode intro is different, so it may be a post processor issue specific to Aspire, as there are clearly differences. Are you using the Onefinity post processor that comes with Aspire or one of the older ones posted by Onefinity?

Gcode intro from my machine:

M0(MSG, Click 'Continue' when the spindle is up to speed)

Gcode intro from yours:

T1 (MSG, Insert Tool 1)
M0(MSG, Click 'Continue' when the spindle is up to speed)
1 Like

I got the post pro posted by oneFInity from here :

Have you seen my update above – the block for NEW_SEGMENT ??

Interesting. I have confirmed that the NEW_SEGMENT block is removed from the current Vectric-supplied Onefinity post processor. That seems to be the culprit. But removing it means all instances of that tool would run at the same spindle speed as the change is never sent, something I had actually already noticed on my end but didn’t give too much thought.

I wonder if you could simply replace the M0 command with a pause/dwell instead to allow the spindle to change speed.

Of course, if you are using a hand-held router, the programmable speed change is irrelevant and unneeded, unless it’s being done manually.

1 Like

Hey Stefano,

I don’t know if your Aspire has an option activated that tells it to insert the spindle wait to speed message, but at least to remove it in the g-code program is easy if you have sed installed:

sed -i "s/M0(MSG, Click 'Continue' when the spindle is up to speed)//g" all\ path.ngc

I checked this with your file “all path.ngc”, all instances of this M0 pause with the message are removed:

all path.new.ngc (18.3 KB)

If I diff your original file with the file modified by ‘sed’ above, you can see the difference (in unified diff format):

--- "all path.ngc"	2022-07-29 17:35:44.356265394 +0200
+++ "all path.new.ngc"	2022-07-29 17:37:12.840830333 +0200
@@ -3,7 +3,7 @@
 G0 G17 G21 G90 G40 G49
 G0 Z20.000
 G0 X0.000 Y0.000 M03 S10200
-M0(MSG, Click 'Continue' when the spindle is up to speed)
 G0 X-184.500 Y-158.000 Z20.000
 G0 Z10.000
 G1 Z-1.000 F400.0
@@ -92,7 +92,7 @@
 G1 X-182.820
 G0 Z20.000
 G0 Z20.000 M03 S10200
-M0(MSG, Click 'Continue' when the spindle is up to speed)
 G0 X-172.500 Y-162.000 Z20.000
 G0 Z10.000
 G1 Z-7.100 F400.0
@@ -142,7 +142,7 @@
 G3 X-172.500 Y-162.000 I17.000 J0.000
 G0 Z20.000
 G0 Z20.000 M03 S10200
-M0(MSG, Click 'Continue' when the spindle is up to speed)
 G0 X-188.708 Y-64.866 Z20.000
 G0 Z10.000
 G1 Z-5.000 F400.0
@@ -876,7 +876,7 @@
 G1 X185.890
 G0 Z20.000
 G0 Z20.000 M03 S10200
-M0(MSG, Click 'Continue' when the spindle is up to speed)
 G0 X-160.000 Y-129.499 Z20.000
 G0 Z10.000
 G1 Z-2.500 F400.0
1 Like

Hey Stefano,

I am not familiar with the post processor, but it’s clear that removing these lines will simply remove what they do.

In your “all path.ngc”, the first line translates to

G0 Z20.000 M03 S10200

Does it make sense to you to have the Z moved rapidly (G0) to 20 mm (Z20.000) at the beginning of each new segment? If yes, I would leave it there. In any case, you would want to have the spindle set in “run” mode (M03) and at the desired speed (S10200) before running a program segment. If you remove this part, your spindle will not run.
The second line tells to pause the program and to display the message and to wait until the operator clicks “continue”.

If you remove this, it will not pause and wait, but run the next segment immediately. However maybe at least once at the start of the first segment, you would want to make sure the spindle reached the set speed?

PS: I just saw that in your “all path.ngc” (I hate spaces in filenames), the first instance of the pause and message is preceded with another line:

G0 Z20.000
G0 X0.000 Y0.000 M03 S10200
M0(MSG, Click 'Continue' when the spindle is up to speed)

Probably the first instance of the rapid move to Safe Z, set spindle to “run”, set speed, is not made by the lines you cited above (since it also contains a “home XY” command), but by another code portion somewhere (I don’t have the post processor here!). I would remove the line and see what g-code it generates then. Is the first instance still there if you remove the line(s)?

The tip from Matticustard is a known workaround (replace the pause with message with waiting for operator acknowledgement by a G4, dwell command)

Where did you found the current vectric supplied onefinity processor ?

I’ll try to modify the line with a pause or even remove it

I need to drvce the spindle speed, I’m using a VFD for it

I got them from the post processor library within my version of VCarve.

Onefinity (Inch).pp (4.3 KB)

Onefinity (mm).pp (4.3 KB)

But I don’t know if anything is version-specific to Vectric.

I would probably start by changing the NEW_SEGMENT M0 line in your existing PP to a pause of a second or two and see if that works for you, or however long your spindle needs.

I’m hesitant to tell you the wrong thing. But I think this would be a 2-second dwell/pause:

"G4 P2"

However, I’ve seen some references that mention milliseconds, which would be 2000 instead.

1 Like

Hey Matticustard,

the P[milliseconds] is historically correct and e.g. to find here, but for the buildbotics controller, the LinuxCNC g-code was the model, so it is like on the LinuxCNC page: P[seconds]. See here for proof.

1 Like

You’re both amazing !!

With your generous knowledges sharing, my understanding of this matter has made another step, thank you very much !!

I’m going to replace the M0 line for NEW_SEGMENT with G4 P5000 and test it (I also viewed it’s miliseconds)

I won’t touche the line above “G0[SAFEZ] M03[S]” even if you’re right Aiph5h it’s probably useless because the spindle is already running , M03 with speed instruction is given by the header block.
for the moment, I prefer to keep my post pro as close as possible to the original, then learn and practice more

I’ll dig more about SED … it could be very helpfull for other situations

Matticustard, thx four your PP version … I’ll compare and check diff before to use it.
I’m not sure to understand 100% from where your version comes from, you got it from vectric online library ?

Ha …
G4 p5 instead of 5000 … Thx !!

1 Like

As per @Aiph5u’s confirmation above, it should be:

"G4 P5"

Unless you want a 1.4 hour long pause. :stuck_out_tongue:

1 Like

No, I got it from inside the VCarve software. But you may not have them on an older version.

Machine > Post-processor Management

I see, thx
I’m usiing Aspire v10.5