Оптимизация холостых ходов

Так что ваше утверждение о незавершонности работы оказалось верным.
Это нормально. Я в своей "Выжигалке" уже 3 года баги вылавливаю. Хоть это и не мешает пользоваться программой.

И ещё вставлю свои 5 копеек. Уж очень долго, на мой взгляд, программа проводит оптимизацию. Где-то у вас неверный сам подход к оптимизации. слишком много лишних расчётов производится.
Я бы делал так:
При первом сканировании файла создавал текстовый файл где каждая строка соответствовала участку кода от G0 до следующей G0. И в строке указывал координаты первой точки, координаты последней и номера строк этого участка в коде например 5 -20.
И весь анализ проводил уже с этим упрощённым файлом. Удаляя обработанные строки и копируя нужные участки из основного кода в новый файл. Так вся структура кода останется неизменной включая комментарии мощность и скорость. Ведь бывает код, где разная мощность на разных участках.
 
Примерно так оно и делается, только в оперативке. Там быстрее.
 
Ну вот, исправил ещё один баг и глюки пропали. Теперь, как говорят, картина достойна пера. Вот такая:

1738753468285.png

В аттачменте последняя версия (по сроку). На всякий случай выкладываю полный комплект, ужесли скачивать, то за один раз.
 

Вложения

  • idl_optim.pdf
    240.7 KB · Просмотры: 10
  • optim7.zip
    528.1 KB · Просмотры: 11
Увжаемые форумчане.
Я хотел было совсем забросить этот проект, но долгими зимними вечерами пенсионеру делать нечего - и я к нему вернулся. Переработал алгоритмы и постарался сделать программу максимально удобной для пользователя.
В результате этого проект разделился на 2 части - для фрезерной и лазерной обработки отдельно.
Предлагаю Вам бэта весию программы для фрезерной обработки.
Она создаёт в папке, где расположена Ваша УП, файл с тем же именем, к которому добавляется "_opt" перед расширением.
Её преимущества перед прежней версией:
- Она может использоваться для гравировки и фрезеровки любых изделий, а так же для сверловки ППМ.
- Все Ваши режимы и параметры обработки сохраняются без необходимости какой либо правки вручную.
- Все комментарии, расположенные в начале Вашей УП до начала рабочего цикла, сохраняются. Пустые строки и комментарии, распложенные внутри рабочего цикла, теряются. После сортировки трасс их непонятно куда пришивать.
Её недостатки (уже собственные):
- Программа написана на бейсике (интерпретатор), а потому работает довольно медленно.
- В этой бэта версии нет индикации её работы (возможно пока). Применять сторонние программы типа кухонного таймера, как было в прежней версии, настоящие программисы сказали - не камильфо. Но если процесс занимает более 15 сек - она выдаёт сообщение о предполагаемом времени обработки. А вы уже решаете что Вам в это время делать.
- Этот бейсик, на котором прога написана, довольно свежий и потому работант в кодировке UTF-8. В кодировку Windows 1251 настраиваться не хочет от слова совсем. Поэтому комментарии, написанные кириллицей в кодировке Windows 1251 искажаются до неузнаваемости. Что с этим делать - кадый решает сам. Один из вариантов. Поскольку Ваш файл остаётся неизменным, то комменты можно прернести в новый файл в тескстовом редакторе.
Вполне возможно, что недостатков ещё немеряно. Готов их выслушать и, по возможности, исправить.
В вашей исходной УП не должно быть номеров строк. В противном случае она на выходе даст чёрти что. Да и после сортировки номера строк теряют свой смысл.
Пробуйте.
 

Вложения

  • optim_mill_b5.zip
    450.3 KB · Просмотры: 13
Навскидку попробовал на нескольких УП.
В принципе, штука полезная, и, как минимум, если при предпросмотре УП выясняется, что имеются бесполезные перемещения, то есть повод для оптимизации.
Например, такая УП, где хватает "мельтешни" -
Bilderman 2026.03.15 21-38-40.png
после прогона через программу -
Bilderman 2026.03.15 21-38-48.png
По итогу, в данном случае, количество строк не изменилось, комменты на месте, а траектории упорядочились.
Это была "искусственно разоптимизированная" УП, чисто для наглядности.

Файл обрезки платы из G2G -
Такая вот "звезда Давида"
Bilderman 2026.03.15 21-58-53.png
После оптимизации -
Bilderman 2026.03.15 21-59-01.png

Фактус на мордус (лат), оптимизатор свою функцию выполняет и имеет право быть в наборе софта нашего брата.
В остальном - поюзаем-посмотрим.
 
  • Последнее редактирование:
Последнее редактирование:
Доброго времени суток.
В продолжение темы выкладываю программу для оптимизации холостых ходов при лазерной обработке.
В общих чертах она повторяет условия применения программы для оптимизации холостых ходов при фрезерной обработке.
Для управления излучением могут быть использованы команды включения/выключения лазера (M3/M5) или команды управления его мощностью(S>0/S=0). Важно только чтобы по всей УП они были одинаковые, иначе часть трасс не будет прорисовываться.
Не стоит пользоваться и конструкциями типа
G0XnYnS0 и G1XnYnSr
Почему то иногда происходят глюки. Пока на разбирался.
Пробуйте. Оставляйте отзывы.
 

Вложения

  • optim_laser_b.zip
    450.3 KB · Просмотры: 3
Вы правы, простите, ошибочка вышла. В программе команды именно S. Исправил.
 
Добрый день всем.
Мой очередной пост чуть-чуть не в тему, но тоже посвящён оптимизации. Только на этот раз не холостых ходов, а размеров УП.
Я думаю, что эта программа может пригодиться тем, кто готов пожертвовать некоторой потерей подробностей конечного рисунка в пользу сокращения размеров УП и времени обработки.
Она может обрабатывать УП и для гравера и для лазера.
 

Вложения

  • opim_bit.zip
    449.3 KB · Просмотры: 3
  • Ruk.pdf
    44.3 KB · Просмотры: 6
  • ttt.zip
    358.2 KB · Просмотры: 7
Поскольку на пост #36 не пришло никаких замечаний и сам я не обнаружил больше никаких глюков, то можно считать что время бэтатестирования кончилось. Теперь будем считать её первой рабочей версией. Она обзавелась идикатором выполнения и в конце сообщает сколько времени затрачено. Индикатор каждую секунду сообщает сколько строк считано, сколько трасс сформировано и склько трасс отсортировано. Естественно, что самый медленный процесс - это сортировка. Поскольку количество трасс уже выведено, то по скорости изменения количества отсортированных трасс можно прикинуть что делать: смотреть дальше в монито или сходить перекурить.
Тут же приложен тестовый файлик. Он небольшой по размеру, но трасс в нём много. Время обработки обратно пропорционально тктовой частоте процессора. На десктопе с тактовой частотой 3.6 ГГц время обработки составляет чуть больше 1 мин, на лаптопе с тактовой частотой 2.4 ГГц - около 2 ми 45 сек. Время работы станка тоже уменьшается, ему не нужно мотаться из конца в конец на большой скорости. Ну и его ресурс от этого повышается.
Удачи.
 

Вложения

  • anheles.zip
    13.5 KB · Просмотры: 4
  • optim_laser_v1.zip
    450.2 KB · Просмотры: 5
Как говорят "ошибок не делает тот, кто ничего не делает".
В программе, размещённой в предыдущем посте, обнаружился не то, чтобы глюк, но небольшой недочёт - при возникновении ошибок проргамма останавливалась, а по какоё причине - непонятно. После принудительно её завершения при повторном запуске ситуация повторялась. Происходило это от того, что приоритет вывода сообщения об ошибках был установлен ниже приоритета вывода хода выполнения программы.
В прилагаемой весии этот недочёт устранён.
 

Вложения

  • optim_laser_v2.zip
    450.2 KB · Просмотры: 4
Ну и родился наконец первый рабочий вариант программы для оптимизации холостых ходов при фрезеровке в развитие бэтаверсии из поста #34. И этот вариант хочет быть Вами опробован :).
 

Вложения

  • Guide.pdf
    75.2 KB · Просмотры: 8
  • optim_mill_v1.zip
    450.5 KB · Просмотры: 7
оптимизатор свою функцию выполняет и имеет право быть в наборе софта нашего брата
Олег, привет. Если речь о GGEasy, сам понимаешь, я молчать не буду.:)
А теперь хотел бы уточнить вопрос оптимизации и её применения... Думаю, что оптимизацию нужно считать всего затраченного времени.
Например, если УП неоптимизированная выполняется 5 минут, а оптимизированная с помощью новой программы (в данном случае программы ТС),
выполняется 4 минуты, но само время открывания УП в новой программе и выполнение оптимизации в ней занимает в данном случае 1 минуту, то
смысл экономии времени в разовом случае теряется. То есть в случае с GGEasy по обрезке контура с мостами:
Bilderman 2026.03.15 21-58-53.pngBilderman 2026.03.15 21-59-01.png
Оптимизация составила 17 секунд, по подсчетам Candle. Сколько на самом деле, это надо замерять с секундомером рядом с CNC, но разница получится не намного больше, наверное.
Поэтому если речь не идёт о массовом производстве или УП выполняется несколько минут (и имея при этом хороший опыт работы с программами оптимизации), то надо ещё принять волевое решение, а нужна ли в таком случае оптимизация её?
Хотел эту тему немного развить и сделал свою обрезку периметра ПП в GGEasy вообще без мостов и с 10-ю мостами:
Простая_обрезка_ПП.jpgОбрезка_ПП_с_10_мостами.jpg

NC Corrector выдал мне вообще, что время УП без мостов 30 минут, а с мостами 29 минут (со странной "звездой" перемещений над ПП)...
Обрезка_NC_Corrector.jpg
Чтобы дальше двигаться в вопросе оптимизации, наверное, нужно найти какой-то предварительный более точный инструмент замера времени выполнения УП,
чтобы можно было четко сказать какой выигрыш и когда уже (при каком размере, например, УП) рентабельно выполнять оптимизацию УП. Candle тоже посчитала, что с мостами будет быстрее. Причем разница около минуты при средней длительности выполнения 29 минут. :)
NC Corrector выдал для оптимизированной УП с помощью оптимизатора-программы ТС (время оптимизации 0 сек, кстати) тоже время 29 минут.
Обрезка_NC_Corrector_for_optim.jpg УП прикрепляю в зипе.
 

Вложения

  • With_Without_Bridges.zip
    1.3 KB · Просмотры: 2
то надо ещё принять волевое решение, а нужна ли в таком случае оптимизация её?
Юра, на моих скринах в Кэнл время было 03:33 и 03:16, т.е. выигрыш всё же присутствует.
А кроме времени выполнения есть ещё лишние перемещения, а это уже износ подшипников-винтов-валов.
И, если есть возможность это уменьшить, то пуркуа бы да и не па?
В общем, оператор пусть сам решает, надо оно ему или не надо...
 
Хочу внести свои 5 копеек в Ваши рассуждения о времени выполнения УП.
В посте #40, посвящённом оптимизации УП для лазерной обработки, приведён пример УП для оценки эффективности работы программы.
Обе программы построены совершенно одинаково, но, как говорится "В один возок запрячь не можно вола и трепетную лань". У фрезерной и лазерной обработок сильно различаются признаки для выделения трасс, и потому пришлось их развести по разным программам.
На картинках предствлены скриншоты изображений, которые выдаёт NCcorrector для исходной и оптимизированной УП. Сразу видно отсутствие отсутствие заливки всего изображения красными линиями холостых ходов на избражении оптимизированной УП.
snap1.png

snap2.png

NCcorrector так же сообщает, что
раб.ход 6'47" 1695 mm
хол.ход 0'32" 5257 mm
для исходной УП и
раб.ход 6'47" 1695 mm
хол.ход 0'09" 1469 mm
для оптмизированной УП.
Вычисленное им время для рабочих ходов примерно соответствует установленной в Уп скорости.
А для вычисления времени холостых ходов он принимает скорость перемещения на холостом ходу примерно 10000 мм/мин.
Реально эта скорость значительно меньше. В моём случае она составляет 1500 мм/мин. При попытках установить выше появляется рёв приводов и, иногда, проскоки.
Так что реальный выигрыш по времени присутствует. Особенно если по ней нужно изготовить несколько экземпляров изделия. Ну и продление ресурса станка...
 
Сверху Снизу