Нашел описание того, как работает trajectory planner.
Если четко следовать программе, описанной Gкодом, то придется останавливаться до 0 на каждом угле, т.к. у станка есть конечные параметры ускорения по каждой оси и он не может повернуть мгновенно. В EMC2 есть несколько способов обработки углов - полная остановка (exact stop) и скругление (blending). При включенном скруглении станок не будет полностью останавливаться на каждом угле до нуля, а будет его не много скруглять, для достижения необходимого ускорения. Это ухудшит точность траектории, зато позволит выполнить обработку на больших скоростях. Эта функция полезна при черновой обработке.
Различные моды можно переключать прямо внутри Gcode:
- G61 говорит планировщику траектории останавливаться на каждом конце сегмента. Это гарантирует точное следование траектории, но может быть не очень благоприятно для обработки в целом.
- G64 говорит планировщику пожертвовать точностью следования траектории для сохранения скорости обработки. Эта мода необходима для некоторых видов обработки и инструментов где полная остановка может повредить детали, например, при резке оргстекла остановка может вызвать оплавление детали.
- G64 Px.xxx - допуск скругления. Определяет максимальное расстояние на которое планировщик траектории может отойти от траектории описанной Gкодом. Например, если указать G64 P0.5 Вы скажете планировщику, что вы хотите непрерывное движение, но на углах он не должен отходить от траектории больше чем на 0.5мм (единиц измерения). Это дает полный контроль над скруглением траектории, этот параметр можно менять в процессе обработки, т.е. можно использовать G64 Px.xxx с разными значениями несколько раз в одной программе. Внимание G64 P0 имеет такое же значение как G64 без параметра, т.е. следующий Gкод скруглит все углы, а не только первые два. Используйте G61 для отключения скругления.
Код: Выделить всё
G64 P10
G64
G01 X100
G01 Y100
G64 P0
G01 X0
G01 Y0
Вот пример Gcode с разным скруглением (такие большие радиусы скругления будут только при очень маленьком значении ускорения по осям):
Код: Выделить всё
%
G61
G01 X0 Y0 f3000
G01 X100
G64 P10
G01 Y100
G64 P30
G01 X0
G01 X0 Y0
%