Problem rozwiązany.
Przyczyną u mnie był plik tc.ngc który przechwytuje działanie kodu M6 a wyglądał tak:
Kod: Zaznacz cały
o<tc> sub
;tool_change
M73
G21
G90
(; tool changed - move to toolensor)
G53 G0 Z0 F200
G53 G0 X #<_ini[toolsensor]x> Y #<_ini[toolsensor]y> F1000
;G53 G0 Z #<_ini[toolsensor]z>
M6
G91
G38.3 Z -60 F200
G38.4 Z10 F2
G90
o111 if [#5070 EQ 0]
(MSG, Zły pomiar)
o111 endif
G92 Z[#1000-#5223]
G53 G1 Z #<_ini[after_change_position]z> F300
G53 G0 X #<_ini[after_change_position]x> Y #<_ini[after_change_position]y>
o<tc> endsub
m2
Naprowadziła mnie ujemna wartość Y w komunikacie błędu. Zawsze projekt umieszczam dla dodatnich X i Y.
Program próbował wykonać łuk gdzie punktem startowym był ostatnia pozycja ze zmiany narzędzia:
Kod: Zaznacz cały
X #<_ini[after_change_position]x> Y #<_ini[after_change_position]y>
a nie punkt z przed wymiany narzędzia.
Wystarczy dodać na początek pliku
Kod: Zaznacz cały
#1 = #5420 ;zachowanie pozycji X
#2 = #5421 ;zachowanie pozycji Y
a na końcu
Kod: Zaznacz cały
G0 X#1 Y#2 ;odtworzenie poprzedniej pozycji
I pliki wczytują się teraz bez błędów.
W sumie temat można by przenieść do działu LinuxCNC.