Advanced Vcarve manual Z-probe without BitSetter (and using UGS)

Just getting started with Advanced Vcarve. Wasn’t getting the results I was expecting so I tried a simple test square that uses a 1/4" end mill to hog out the pocket and a 60 degree Vee to do the perimeter. I don’t have a bitsetter, so I’m manually zero’ing with a touch probe for each tool at change time.

However, I’m still getting very weird results. At some point after line 90 in the g-code (where the tool change occurs) the V-bit plunges WAY too deep into the workpiece on the bottom left corner. See the attached picture…it is evident on the rightmost two test cuts.

In the process of troubleshooting I let the V-bit stay in the router without any tool changes. This meant the pocket operation was done by the V-bit instead of the 1/4" end mill. This also means there is no actual tool change or zero reset with the Z-probe. If you look at the two test cuts on the left, it shows the maze-like result of this test. What is notable is the overly deep plunge is not present on these two tests.

So, I’ve narrowed the problem to the tool change and re-zero.

I’m fairly certain I’m doing this correctly.

I’m watching the DRO and the Z depth never drops below -2.54 mm at any point. And what is really strange is once the bit over-plunges in that initial linear move, it never gets to that depth again. It proceeds to the do the three progressively deeper V-cuts on the outside of the square at the correct physical depth. The point of the V-bit never gets deeper than the bottom of the pocket created by the end mill except in that one place. If there was an error with zeroing the bit for the V-pass I’d expect to see the V-bit under- or over-plunging throughout the second part of the code. However, it does it all correctly except at the very start.

FYI, I’m not using Carbide Motion to send the g-code. I’m using UGS because I have a pendant and prefer some of the features in that sender.

Thanks for any help.

square.nc (10.3 KB)

The user fenrus has an online tool to take your advanced vcarve into two toolparhs. This tool is for those without BitSetter. Search for it. This tool may solve your problem.

Search for V-Bit without bitsetter

@monkeylabs What machine are your using? How, exactly, are you setting your Z-zero?

Home machine at start. Set Z zero using touch probe. Repeat probe after tool change.

What does UGS do on an M6? How does it handle the tool number greater than 255?
Are you seeing any errors?

There’s no plunge in the gcode, so something must be happening with UGS or the zeroing procedure. I know you’re using a probe, but what commands are you sending to the controller?

On the tool change code it just pauses and waits for me to hit resume. I do the tool change and hit the Initiate Probe button in UGS which does the probe and rezeroes the Z. Then resume the gcode. Don’t know how it handles a value greater than 255. Never sent one.

I don’t have UGS, but the solution my be in your answer to the above question.

Your V-bit is numbered 302.

oh, ha. didn’t catch that. I’m just using the stock Shapoko bits as templates for my own bits. I’ll edit the code and run it again and see what I get.

I really don’t think that’d be the issue now…if grbl doesn’t complain, UGS is probably filtering it.

The bigger question I have is how UGS is running it’s probe routine to set zeroes…is that a built in tool? Are you running a macro?

Could you try using a different sender?

Tried it; same result.

UGS uses a plugin/macro to do the tool probe. You provide the height of the probe pad and the macro compensates for that in the Z value after you’ve done the probing.

Gonna try a different sender. What will happen with Carbide Motion if you send it an Advanced Vcarve tool path without splitting it or having a bit setter? Will it pause between tool changes and give you a chance to zero the new bit?

I can’t remember exactly…but I think one of the reasons why I chose not to use Motion was that it didn’t support a simple Z-only tool probe…I think you needed to get one of their XYZ probes.

Can you see anywhere what the commands are?

No. You’d have to split the jobs.
Can you run it that way in UGS? As two separate jobs and see what happens.

Basically, I think the issue must be in that UGS macro you’re using. Especially because it happens right after and then corrects itself.

Ok…did a cascading series of tests. I used a new test square and Advanced Vcarve generated in Create. Same bits. Same UGS.

First test was splitting the code in half manually for each tool. I ran them with the 1/4" end mill and 60-degree Vee in order and got exactly what I hoped/expected. This was with running the probe for each tool at the start of each job.

Next test was running the exact same code, but as one file that pauses for tool changes. Except I didn’t change tools. I kept the V bit in there the whole time, just to see if it’d hit the same marks. Which it did…no new cuts or over-plunge.

Then I ran the job the old way I’d been doing it, which involved stopping the send in UGS at the tool change, doing the change, re-zeroin’g for the V-bit using the probe and “running from” where it left off in the unified file. Viola…same over-plunge error on the bottom left corner.

So…I think I’ve ruled out the probe and UGS as the direct culprit. However, I think I’ve further isolated it to how UGS was interpreting the code when I ran both tools back-to-back from the same code file but with a tool change and probe in between. I think there might be some sort of header code that’s not getting properly read/interpreted on that second-half restart for the V bit (if that makes sense).

I tried using u/fenrus tool to split it, but it wasn’t working right. I kept getting 3 files for 2 tools with truncated data. So, I did it manually. The only thing I did different from the point of view of UGS is I kept the header information for the file when I split it into two tool paths. See the attached files for clarity. “split_test2” is the unified file, while “split_test2A” and “split_test2B” are the isolated tool paths.

I believe the over-plunge I’m witnessing is around line 147 (I’ve included a screenshot of the line numbering as displayed in UGS for clarity). it’s a little hard to tell because even if I lower the feed rate to 10% it still happens very fast as I’m trying to watch the bit and code at the same time.


split_test2A.nc (1.4 KB)
split_test2.nc (4.8 KB)
split_test2B.nc (3.5 KB)

Can you (please) share the Z-probe macro?

I’m looking in UGS and can’t find the actual g-code lines that make up the probe module. It’s integrated into the app by default. I’m searching on “UGS Platform probe module” and not finding any actual code for it.

I’m wondering if maybe there is a G90/G91 difference or conflict going on when I split the file into two separate (but retain the header info) versus when I let it run as one unified file. My thinking is that in UGS when you load the file yet select “run from” and give it a line somewhere in the body of the file it skips over the G90 command at the very start? Could this be screwing it up? I would expect if the file is being interpreted as relative vs absolute units it would screw the WHOLE thing up, not just that one move.

Is that what you’re doing?

Can you get a video of the job?

Here is a dropbox link to a video I made of it happening

1 Like

Does the probing and restarting get captured in the console or a log?

That is weird.

yeah, Isn’t it? I’ll have to check on the logging.

Unfortunately you have to STOP the whole code send and restart it to do what I’m doing here. If you don’t…if you just pause it…then UGS won’t allow you to use the pendant/jog or access the probe. So I stop the file, raise the spindle, do a tool change, reprobe then select “Run From” and pick the line after the last one that got sent in the console.


Skipping comment-only line: (Design File:)
Skipping comment-only line: (stockMin:0.00mm, 0.00mm, -19.00mm)
Skipping comment-only line: (stockMax:125.00mm, 125.00mm, 0.00mm)
Skipping comment-only line: (STOCK/BLOCK,125.00, 125.00, 19.00,0.00, 0.00, 19.00)
>>> G90
>>> G21
Skipping comment-only line: (Move to safe Z to avoid workholding)
>>> G53G0Z-5.000
Skipping comment-only line: (Advanced.VCarve.Toolpath.2.-.Pocket)
>>> M05
Skipping comment-only line: (TOOL/MILL,6.35, 0.00, 0.00, 0.00)
>>> M6T320
>>> M03S18000
Skipping comment-only line: (PREPOSITION FOR RAPID PLUNGE)
ok
>>> G0X59.545Y65.545
>>> Z8.000
>>> G1Z-1.016F182.88
>>> Y66.455F914.4
>>> X60.455
>>> Y65.545
>>> X59.545
ok
ok
>>> X56.370Y62.370
>>> Y69.630
ok
[Error] An error was detected while sending 'M6T320': (error:20) Unsupported or invalid g-code command found in block. Streaming has been paused.
[Error] Error while processing response <An error was detected while sending 'M6T320': (error:20) Unsupported or invalid g-code command found in block. Streaming has been paused.>
**** The communicator has been paused ****

**** Pausing file transfer. ****


**** Resuming file transfer. ****

>>> X63.630
ok
>>> Y62.370
ok
>>> X56.370
ok
>>> X53.195Y59.195
ok
>>> Y72.805
>>> X66.805
ok
>>> Y59.195
>>> X53.195
ok
ok
>>> X50.020Y56.020
ok
>>> Y75.980
ok
>>> X69.980
>>> Y56.020
ok
>>> X50.020
ok
ok
>>> X46.845Y52.845
ok
>>> Y79.155
ok
>>> X73.155
>>> Y52.845
ok
>>> X46.845
ok
ok
>>> X43.670Y49.670
ok
>>> Y82.330
ok
>>> X76.330
>>> Y49.670
ok
>>> X43.670
ok
ok
>>> X40.495Y46.495
ok
>>> Y85.505
ok
>>> X79.505
>>> Y46.495
ok
>>> X40.495
ok
>>> Z8.000
ok
ok
>>> G0X59.545Y65.545
ok
>>> Z-0.508
ok
>>> G1Z-2.032F182.88
ok
ok
>>> Y66.455F914.4
ok
>>> X60.455
ok
>>> Y65.545
>>> X59.545
ok
ok
>>> X56.370Y62.370
ok
>>> Y69.630
ok
>>> X63.630
ok
>>> Y62.370
ok
>>> X56.370
ok
>>> X53.195Y59.195
ok
>>> Y72.805
>>> X66.805
ok
>>> Y59.195
>>> X53.195
>>> 0x91
>>> 0x91
>>> 0x91
>>> 0x91
ok
>>> 0x91
>>> 0x91
>>> 0x91
>>> 0x91
>>> 0x91
>>> 0x91
ok
>>> X50.020Y56.020
ok
>>> Y75.980
ok
>>> X69.980
>>> Y56.020
ok
>>> X50.020
ok
ok
>>> X46.845Y52.845
ok
>>> Y79.155
ok
>>> X73.155
>>> Y52.845
ok
>>> X46.845
ok
ok
>>> X43.670Y49.670
ok
>>> Y82.330
ok
>>> X76.330
>>> Y49.670
ok
>>> X43.670
ok
ok
>>> X40.495Y46.495
ok
>>> Y85.505
ok
>>> X79.505
>>> Y46.495
ok
>>> X40.495
ok
>>> Z8.000
ok
ok
>>> G0X59.545Y65.545
ok
>>> Z-0.762
ok
>>> G1Z-2.286F182.88
ok
ok
>>> Y66.455F914.4
ok
>>> X60.455
ok
>>> Y65.545
>>> X59.545
ok
ok
>>> X56.370Y62.370
ok
>>> Y69.630
ok
>>> X63.630
ok
>>> Y62.370
ok
>>> X56.370
ok
>>> X53.195Y59.195
ok
>>> Y72.805
>>> X66.805
ok
>>> Y59.195
>>> X53.195
ok
ok
>>> X50.020Y56.020
ok
>>> Y75.980
ok
>>> X69.980
>>> Y56.020
ok
>>> X50.020
ok
ok
>>> X46.845Y52.845
ok
>>> Y79.155
ok
>>> X73.155
>>> Y52.845
>>> 0x90
ok
>>> X46.845
ok
ok
>>> X43.670Y49.670
ok
>>> Y82.330
ok
>>> X76.330
>>> Y49.670
ok
>>> X43.670
ok
ok
>>> X40.495Y46.495
ok
>>> Y85.505
ok
>>> X79.505
>>> Y46.495
ok
>>> X40.495
ok
>>> Z8.000
Skipping comment-only line: (Advanced.VCarve.Toolpath.2.-.Vee)
>>> M05
Skipping comment-only line: (Move to safe Z to avoid workholding)
ok
ok
>>> G53G0Z-5.000
Skipping comment-only line: (TOOL/MILL,0.03, 0.00, 10.00, 30.00)
ok
>>> M6T302
>>> M03S18000
Skipping comment-only line: (PREPOSITION FOR RAPID PLUNGE)
ok
ok
>>> G0X37.320Y43.320
ok
>>> Z8.000
ok
ok
>>> G1Z-2.032F182.88
ok
>>> Y88.680F533.4
ok
>>> X82.680
ok
>>> Y43.320
ok
>>> X37.320
ok
>>> Z8.000
>>> G0
ok
ok
>>> Z0.762
[Error] An error was detected while sending 'M6T302': (error:20) Unsupported or invalid g-code command found in block. Streaming has been paused.
[Error] Error while processing response <An error was detected while sending 'M6T302': (error:20) Unsupported or invalid g-code command found in block. Streaming has been paused.>
**** The communicator has been paused ****

**** Pausing file transfer. ****


**** Canceling file transfer. ****

ok
Grbl 1.1f ['$' for help]
>>> $$
$0 = 10    (Step pulse time, microseconds)
$1 = 255    (Step idle delay, milliseconds)
$2 = 0    (Step pulse invert, mask)
$3 = 6    (Step direction invert, mask)
$4 = 0    (Invert step enable pin, boolean)
$5 = 0    (Invert limit pins, boolean)
$6 = 0    (Invert probe pin, boolean)
$10 = 255    (Status report options, mask)
$11 = 0.020    (Junction deviation, millimeters)
$12 = 0.010    (Arc tolerance, millimeters)
$13 = 0    (Report in inches, boolean)
$20 = 1    (Soft limits enable, boolean)
$21 = 1    (Hard limits enable, boolean)
$22 = 1    (Homing cycle enable, boolean)
$23 = 0    (Homing direction invert, mask)
$24 = 100.000    (Homing locate feed rate, mm/min)
$25 = 2000.000    (Homing search seek rate, mm/min)
$26 = 25    (Homing switch debounce delay, milliseconds)
$27 = 3.000    (Homing switch pull-off distance, millimeters)
$30 = 1000    (Maximum spindle speed, RPM)
$31 = 0    (Minimum spindle speed, RPM)
$32 = 0    (Laser-mode enable, boolean)
$100 = 40.000    (X-axis travel resolution, step/mm)
$101 = 40.000    (Y-axis travel resolution, step/mm)
$102 = 40.000    (Z-axis travel resolution, step/mm)
$110 = 10000.000    (X-axis maximum rate, mm/min)
$111 = 10000.000    (Y-axis maximum rate, mm/min)
$112 = 5000.000    (Z-axis maximum rate, mm/min)
$120 = 400.000    (X-axis acceleration, mm/sec^2)
$121 = 400.000    (Y-axis acceleration, mm/sec^2)
$122 = 400.000    (Z-axis acceleration, mm/sec^2)
$130 = 835.000    (X-axis maximum travel, millimeters)
$131 = 430.000    (Y-axis maximum travel, millimeters)
$132 = 100.000    (Z-axis maximum travel, millimeters)
ok
>>> $G
[GC:G0 G54 G17 G21 G90 G94 M5 M9 M56 T0 F0 S0]
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91Z3F2007
ok
>>> $J=G21G91X-10F2007
ok
>>> $J=G21G91X-10F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> $J=G21G91Z-3F2007
ok
>>> G10 L20 P1 Z0
ok
>>> G91 G21
>>> G21 G91 G49
>>> G38.2 Z-10 F250
>>> G91 G21
ok
ok
[PRB:-332.500,-296.500,-42.025:1]
>>> G91 G21 G0 Z1.0
>>> G91 G21
>>> G21 G91 G49
>>> G38.2 Z-10 F100
ok
>>> G91 G21
ok
ok
ok
ok
[PRB:-332.500,-296.500,-42.000:1]
ok
ok
>>> G90 G21 G0 Z0.0
>>> G91 G21
ok
ok
>>> G10 L20 P1 Z26.175
ok
>>> G91 G21
ok
>>> G21G90G91.1G94G54G17
ok
>>> G0Z8.0
>>> G0X37.32Y43.32
>>> M3S18000.0F914.4
>>> G1Z-5.0
>>> F914.4S18000.0G0Z8.000
>>> G1Z-2.032F182.88
>>> Y88.680F533.4
>>> X82.680
>>> Y43.320
>>> X37.320
ok
>>> Z8.000
>>> G0
ok
>>> Z0.762
ok
>>> G1Z-2.286F182.88
ok
>>> Y88.680F533.4
ok
>>> X82.680
>>> Y43.320
>>> X37.320
ok
>>> Z8.000
ok
>>> G0X37.820Y88.041
ok
>>> G1Z-2.032F182.88
ok
ok
>>> Y88.180F533.4
ok
>>> X37.960
ok
ok
ok
>>> X37.820Y88.041
ok
>>> X37.988Y87.927
ok
>>> X37.812Y87.731
ok
ok
>>> X37.620Y87.474
ok
>>> Y88.380
ok
>>> X38.524
ok
>>> X38.240Y88.164
>>> X37.988Y87.927
ok
>>> X38.133Y87.789
ok
ok
>>> X37.918Y87.543
>>> 0x91
>>> 0x91
>>> 0x91
ok
>>> X37.726Y87.273
>>> 0x91
ok
>>> X37.564Y86.988
ok
>>> X37.420Y86.662
>>> Y88.580
ok
>>> X39.339
ok
ok
>>> X38.987Y88.424
ok
>>> X38.706Y88.260
ok
>>> X38.372Y88.013
ok
>>> X38.133Y87.789
>>> Z8.000
ok
ok
>>> G0X37.820Y88.041
>>> Z0.762
ok
>>> G1Z-2.286F182.88
ok
ok
>>> Y88.180F533.4
ok
>>> X37.960
ok
>>> X37.820Y88.041
ok
>>> X37.988Y87.927
ok
>>> X37.812Y87.731
ok
>>> X37.620Y87.474
ok
>>> Y88.380
>>> X38.524
ok
ok
>>> X38.240Y88.164
>>> X37.988Y87.927
ok
>>> X38.133Y87.789
ok
ok
>>> X37.918Y87.543
ok
>>> X37.726Y87.273
ok
>>> X37.564Y86.988
ok
>>> X37.420Y86.662
>>> Y88.580
ok
>>> X39.339
ok
ok
>>> X38.987Y88.424
ok
>>> X38.706Y88.260
ok
>>> X38.372Y88.013
ok
>>> X38.133Y87.789
>>> Z8.000
ok
ok
>>> G0X37.820Y43.820
ok
>>> G1Z-2.032F182.88
ok
>>> Y43.960F533.4
ok
ok
>>> X37.959Y43.820
>>> X37.820
ok
>>> X37.620Y43.620
ok
>>> Y44.524
ok
>>> X37.836Y44.240
ok
>>> X38.073Y43.988
ok
>>> X38.269Y43.812
ok
>>> X38.526Y43.620
>>> X37.620
ok
>>> X37.420Y43.420
ok
>>> Y45.339
ok
>>> X37.576Y44.987
ok
>>> X37.740Y44.706
ok
ok
>>> X37.987Y44.372
ok
>>> X38.153Y44.191
ok
>>> X38.395Y43.968
ok
>>> X38.727Y43.726
ok
>>> X39.012Y43.564
ok
>>> X39.338Y43.420
ok
>>> X37.420
ok
>>> Z8.000
ok
>>> G0X37.820Y43.820
>>> Z0.762
ok
ok
>>> G1Z-2.286F182.88
ok
>>> Y43.960F533.4
ok
>>> X37.959Y43.820
>>> X37.820
ok
>>> X37.620Y43.620
ok
>>> Y44.524
ok
>>> X37.836Y44.240
ok
ok
>>> X38.073Y43.988
>>> X38.269Y43.812
ok
ok
>>> X38.526Y43.620
>>> X37.620
ok
>>> X37.420Y43.420
ok
>>> Y45.339
ok
>>> X37.576Y44.987
ok
>>> X37.740Y44.706
ok
ok
>>> X37.987Y44.372
ok
>>> X38.153Y44.191
ok
>>> X38.395Y43.968
ok
>>> X38.727Y43.726
ok
>>> X39.012Y43.564
ok
>>> X39.338Y43.420
ok
>>> X37.420
ok
>>> Z8.000
ok
>>> G0X82.040Y43.820
ok
>>> G1Z-2.032F182.88
ok
ok
>>> X82.180Y43.959F533.4
>>> Y43.820
ok
>>> X82.040
ok
>>> X81.898Y43.961
ok
>>> X82.188Y44.269
ok
>>> X82.380Y44.526
ok
>>> Y43.620
ok
>>> X81.476
ok
>>> X81.898Y43.961
>>> X81.747Y44.093
ok
>>> X82.032Y44.395
ok
>>> X82.228Y44.658
ok
ok
>>> X82.436Y45.012
ok
>>> X82.580Y45.338
>>> Y43.420
ok
>>> X80.661
ok
>>> X81.013Y43.576
ok
ok
>>> X81.225Y43.696
ok
>>> X81.495Y43.881
ok
>>> X81.747Y44.093
>>> Z8.000
ok
ok
>>> G0X82.040Y43.820
>>> Z0.762
ok
>>> G1Z-2.286F182.88
ok
ok
>>> X82.180Y43.959F533.4
ok
>>> Y43.820
ok
>>> X82.040
ok
>>> X81.898Y43.961
ok
>>> X82.188Y44.269
ok
>>> X82.380Y44.526
ok
>>> Y43.620
>>> X81.476
ok
ok
>>> X81.898Y43.961
>>> X81.747Y44.093
ok
>>> X82.032Y44.395
ok
>>> X82.228Y44.658
ok
ok
>>> X82.436Y45.012
ok
>>> X82.580Y45.338
>>> Y43.420
ok
>>> X80.661
ok
>>> X81.013Y43.576
ok
ok
>>> X81.225Y43.696
ok
>>> X81.495Y43.881
ok
>>> X81.747Y44.093
>>> Z8.000
ok
ok
>>> G0X82.116Y88.104
ok
>>> G1Z-2.032F182.88
ok
ok
>>> X82.041Y88.180F533.4
ok
>>> X82.180
>>> Y88.040
ok
>>> X82.116Y88.104
ok
>>> X81.990Y87.949
ok
>>> X81.731Y88.188
ok
ok
>>> X81.474Y88.380
>>> X82.380
ok
>>> Y87.476
>>> X82.164Y87.760
ok
>>> X81.990Y87.949
ok
>>> X81.847Y87.809
ok
ok
>>> X81.605Y88.032
ok
>>> X81.273Y88.274
ok
>>> X80.988Y88.436
ok
>>> X80.662Y88.580
>>> X82.580
ok
>>> Y86.661
ok
ok
>>> X82.424Y87.013
ok
>>> X82.260Y87.294
ok
>>> X82.013Y87.628
ok
>>> X81.847Y87.809
>>> Z8.000
ok
ok
>>> G0X82.116Y88.104
>>> Z0.762
ok
>>> G1Z-2.286F182.88
ok
ok
>>> X82.041Y88.180F533.4
ok
>>> X82.180
ok
>>> Y88.040
ok
>>> X82.116Y88.104
ok
>>> X81.990Y87.949
ok
>>> X81.731Y88.188
ok
>>> X81.474Y88.380
>>> X82.380
ok
ok
>>> Y87.476
>>> X82.164Y87.760
ok
>>> X81.990Y87.949
ok
>>> X81.847Y87.809
ok
ok
>>> X81.605Y88.032
ok
>>> X81.273Y88.274
ok
>>> X80.988Y88.436
ok
>>> X80.662Y88.580
>>> X82.580
ok
>>> Y86.661
ok
ok
>>> X82.424Y87.013
ok
>>> X82.260Y87.294
ok
>>> X82.013Y87.628
ok
>>> X81.847Y87.809
>>> Z8.000
ok
ok
>>> G0X36.000Y42.000
ok
>>> G1Z0.000F182.88
ok
ok
>>> X37.320Y43.320Z-2.032F533.4
ok
>>> Z8.000
ok
>>> G0X36.000Y42.000
ok
>>> G1Z0.000F182.88
ok
ok
>>> X37.320Y43.320Z-2.286F533.4
ok
>>> Z8.000
>>> G0Y88.680
ok
ok
>>> G1Z-2.032F182.88
>>> X36.000Y90.000Z0.000F533.4
ok
>>> Z8.000
ok
>>> G0X37.320Y88.680
ok
ok
>>> G1Z-2.286F182.88
>>> X36.000Y90.000Z0.000F533.4
ok
>>> Z8.000
ok
ok
>>> G0X84.000Y42.000
ok
>>> G1Z0.000F182.88
ok
>>> X82.680Y43.320Z-2.032F533.4
ok
>>> Z8.000
ok
>>> G0X84.000Y42.000
ok
>>> G1Z0.000F182.88
ok
>>> X82.680Y43.320Z-2.286F533.4
ok
>>> Z8.000
>>> G0Y88.680
ok
ok
>>> G1Z-2.032F182.88
>>> X84.000Y90.000Z0.000F533.4
ok
>>> Z8.000
ok
>>> G0X82.680Y88.680
ok
ok
>>> G1Z-2.286F182.88
>>> X84.000Y90.000Z0.000F533.4
ok
>>> Z8.000
ok
>>> M02
ok
ok
ok
ok
ok
ok
ok
[MSG:Pgm End]
ok

**** Finished sending file in 00:01:41 ****

So, UGS doesn’t pause on the tool change command…it pauses on the error that the tool change command causes.
I think you need to move on from UGS or just split the files.