Коды G54-G59 - Переключиться на заданную оператором систему координат.
Код задает новое смещение программных координат относительно машинных.
На мой программистский взгляд - после того, как задано новое смещение, его необходимо
применить и спозиционироваться в какие-нибудь программные координаты (но с новым смещением).
То есть, после команд G54-G59 должна следовать команда позиционирования G0.
Это подтверждается многочисленными примерами из книжек, википедии и тп. Например
G54 G0 X0 Y0 Z100
или
N90 Y1
N95 X1.5 Y1.5
N100 G80 G00 Z1
N102 G54 (Reset work coordinate system)
N105 X0 Y0
Однако, встретил пример программы, где это не так -
N1G40G49G80
(Horizontal Roughing)
N2(Tool Diameter = 4 Length = 10 )
N3G21T1M6
N4S4851M3
N5G90G0X-22.3071Y0.9085
N6G43Z17.0746H1
N7G54
N8G1X-22.3054Y-5.489Z14.7461F1200
N9X-22.2781Y-5.6961Z14.6701
Здесь, после G54 следует линейная интерполяция и применять новое смещение придется на ней.
Мне кажется, это некорректный код, но насколько я прав?