В архиве прикрепляю сам файл УП до работы с вашей программой.
Юрий.
Я запустил этот файл в симуляторе NCcorrector. Нормальные холостые перемещения без рывков и скачков. Но мы уже выяснили, что GGEasy хорошо оптимитизирует УП и не требует дополнительной обработки.
Чтобы заставить мою прогамму поработать с этим файлом пришлось сделать некоторые правки файла руками.
Вот кусок текста Вашей УП:
G21 G17 G90
G0Z0
M4
X4.893Y15.476S0
G1X4.899Y15.472F1500S255
X4.903Y15.474
И тут у меня появились вопросы:
- зачем двигать лазер по оси Z?
- включать "двигатель" (лазер) с вращением против часовой стрелки....
- первый холостой не обзначен командой G0, ну понятно, режим не изменился с движения по Z;
- команда подачи включена в первый рабочий ход, а если при последующей оптимизации эта трасса переместится в другое место, то с какой скоростью лазер будет перемещаться?
Эту часть я преобразовал вот так
G21 G17 G90
;G0Z0
M4F1500
G0X4.893Y15.476S0
G1X4.899Y15.472S255
В конце УП последняя трасса не закрыта командой S0. Конец трассы спокойно закрылся командой M5, но в случае перемещения этой трассы в другое место станок будет выполнять УП с выключенным лазером и что он нарисует?
Пришлось изменить с
X31.96Y7.921
M5
G0X0Y0
M30
на
X31.96Y7.921
S0
M5
G0X0Y0
M30
После таких изменей моя программа стала оптимизировать эту УП, но начисто теряла первую трассу.
Пришлось и её закрыть командой S0. Тогда оптимизация пошла нормально. Длина рабочих ходов сравнялась, а длина холостых ходов выросла по сравнению с исходной УП.
Прогон в симуляторе показал, что моя программа очень основательно перекроила УП и изменила порядок обхода. Увеличение длины холостых ходов выросло незначительно - с 1877 мм до 1911 мм.
Ну и выводы
- в УП, созданные GGEasy с оптимизацией лезть не стоит. Лучше не сделаешь;
- решение о необходимости применять оптимитизацию принимать при рассмотрении УП в NCcorrector, если рябит в глазах как на примерах в посте # 67- значит надо;
- УП должна соответствовать требованиям, изложенным в Guid_l поста # 73.
- мне нужно доработать алгоритм анализа команд G0 для того, чтобы трассы формировались корректно.