Программа для фрезеровки рельефа (некий 2D->3D). Enraver

Craftsman

МЕСТНЫЙ
ПРОВЕРЕННЫЙ
Регистрация
12.10.2021
Сообщения
32
Реакции
39
Баллы
38
Коллеги, привет,
еще три года назад, как купил станок, закралась идея написать программку, которая бы умела по растровой картинке фрезеровать рельеф. За пару вечеров такое чудо родилось, я упоминал об этом CNC 3018 Pro Max от Yofuly Store | Page 2 | ФОРУМ О СТАНКАХ CNC 3018 . Спустя время программку многократно проверил, и добавил в нее целый ряд оптимизаций, чтобы g-код был покомпактнее и надежнее, насколько это возможно моему пониманию. Теперь не стыдно поделиться. Интересно ли это общественности?
Модератор, demyuri, разрешается ли тут выкладывать самописный софт? Если да - выложу последний релиз, правда, пока с английским интерфейсом, но в ближайшее время, как будет пара свободных вечеров, сделаю выбор языка интерфейса. Пока могу описать суть каждой из опций тут, на форуме, привести микро-мануал. Результат работы программки можно (и нужно) проверять в чем-то типо UGS, которая показывает путь инструмента. Заодно - оцените оптимальность кода.
Если есть интерес - скажите.
 
Не плохо бы маленькое видео о том как всё работает на доступном ресурсе!
 
разрешается ли тут выкладывать самописный софт?

а вы раздел просматривали, в коем эту тему создали? Здесь уже немало самописных программ, облегчающих работу на наших станочках.

оффтоп
 
Ажиотаж есть,программы пока нет.Ждем.
 
  • Последнее редактирование:
Последнее редактирование:
Простите, что задержал - допиливал перевод интерфейса на русский.
Программка в прицепе.
Логика простая: Картинка преобразуется в ч/б изображение, черному цвету соответствует максимальная глубина фрезерования (достигаемая за задаваемое количество проходов), белому цвету - соответствует Z=0.000. Для каждой строчки растра картинки будет в обязательном порядке выполнен один проход по горизонтали при фрезеровании. Это необходимо учитывать, если не требуется сверхъестественное качество на выходе, так как, если, к примеру, у вас картинка с разрешением 500х500 строк, а вы ее перекладываете на дерево на поле размером в 25 мм, то каждый последующий проход при фрезеровании будет отстоять от предыдущего на 0.05 мм (программа будет всовывать 500 строк растра картинки в 25 мм), что даже при шариковой фрезе в 1мм не будет особенно отличаться, если бы смещение было 0.1 мм. А вот размер файла g-code вырастет существенно. Поэтому по умолчанию, на основе размеров картинки программа задает рабочее поле в мм, равное 1/10 разрешения картинки. В общем, не увлекайтесь картинками очень высокого разрешения, если ваша область обработки на конечной детали будет небольшой.

Откройте картинку, задайте параметры и нажмите преобразовать. Программа выполнит несколько проверок "от дурака", если что - выдаст предупреждения. Но все равно, такие параметры как количество проходов (с учетом скорости подачи и снимаемого материала за проход) - на операторе. Так же в программе есть ряд оптимизаций кода, чтобы не писать слишком много бесполезных команд. Генерируемый код рекомендую проверить в UGS в 3D визуализации.

Изменение языка - кликните в правом нижнем углу. Если какие вопросы - постараюсь ответить.
 

Вложения

  • Engraver.rar
    259 KB · Просмотры: 49
Попробовал. Правда без фрезеровки на станке. Программа работает, но только я так понял с форматом bmp. Нужная программа если нужно быстро и без мук получить УП из картинки.
 
Попробовал. Правда без фрезеровки на станке. Программа работает, но только я так понял с форматом bmp
Спасибо! Да, я как-то не заморачивался поддержкой разных форматов, так как внутри программа работает именно с битмэпом. Благо, конверторов графики для изменения формата и размера картинки (тут см. мое описание про избыточность большого разрешения) выше крыши. Именно поэтому я не встраивал, и не планирую встраивать никаких дополнительных фишек для обработки картинки в самой программе. Тут я полагаюсь на внешние ресурсы, а в программку уже грузить подготовленный под нее битмэп.
 
  • Последнее редактирование:
Последнее редактирование:
Генерируемый код рекомендую проверить в UGS в 3D визуализации.
Я проверил в CIMCO Edit, Вроде все нормально. Но как говорится время покажет. Правда мой потрет при свечах :D потребовал 11784460 строк УП и времени выполнения 32часа 34 минуты...но как говорится. Хочешь быть красивым, терпи.:D
 
  • Последнее редактирование:
Последнее редактирование:
Тоже попробовал без подключения к станку, который от меня сегодня "за тридевять земель".
Программа, в первом приближении, работает довольно быстро создаёт G-код.
Пока отметил пару моментов:
- первый, нельзя ли в неё встроить форумный постпроцессор с плавным запуском шпинделя?
Второй момент, по всей видимости исключительно мой:
- учитывая формат файла с G-кодом запоминается и открывается он, первоначально, в программе LaserGRBL. Проблема не велика и труда большого не составит открыть в Блокноте.
А вот следующее утверждение немного не корректное:
Благо, конверторов графики для изменения формата и размера картинки (тут см. мое описание про избыточность большого разрешения) выше крыши.
Просто так переформатировать из любого формата в BMP не получится ввиду несоответствия оттенков серого в различных форматах. Было бы слишком легко и просто, но - увы, не получается.
В целом - пригодится!
Ваши сообщения автоматически объединены:

Вот ещё выявился один не понятный мне момент.
Эта программа не предусматривает замену инструмента, т.е. предварительная черновая обработка не предусмотрена. Это не плохо, такое возможно и допустимо. Но в этом случае работать придётся сразу "морковкой" с маленьким радиусом на кончике фрезы. Другими словами - на всю глубину рельефа за один проход.
Но вот сама "непонятка":
- загружен один и тот же файл BMP;
- выполнено два варианта создания G-кода с фрезеровкой профиля за один проход, с единственным отличием - в первом случае фрезой D2, во втором "морковкой" R0,25 (D0,5);
- но количество строк готового G-кода оказалось абсолютно одинаковым.
Получается, что шаг по оси Y абсолютно одинаковый и не зависит от диаметра фрезы?
Кстати, и в программе он остаётся неизменным.
Удобно ли это?
 
Да, я как-то не заморачивался поддержкой разных форматов, так как внутри программа работает именно с битмэпом.
если не ошибаюсь, то битмеп откроется автоматом из любого формата.
да, просто при открытии файла поставьте разрешение на разные картинки.
 
если не ошибаюсь, то битмеп откроется автоматом из любого формата.
Открыться-то откроется, но вот характеристики изображения (размер и т.п.) не подтягиваются в те программные компоненты, на которых построена моя программка. По крайней мере, так в той древней среде программирования, которая доступна мне. Из-за этого программа корректно не отрабатывает.
Поэтому только BMP, а конвертируем во внешних программах.
 
Поэтому только BMP, а конвертируем во внешних программах.
Из цветной картинки-уровень серого-фреза, правильно понимаю? А как вырежется фото брюнетки? С ямами на волосах или какой то хитрый алгоритм преобразования?
С уровнями серого работает даже StepCAM (там есть визуализатор) . Пробовал, настраивается, создает УП.
 
  • Последнее редактирование:
Последнее редактирование:
учитывая формат файла с G-кодом запоминается и открывается он, первоначально, в программе LaserGRBL. Проблема не велика и труда большого не составит открыть в Блокноте.
Это не зависит от моей программы. Как я понимаю, у вас на расширение файла, под которым вы сохраняете g-code, в операционной системе сопоставлено приложение LaserGRBL. Это можно изменить в настройках Windows у вас, у меня, например, на файлы g-code сопоставлен Wordpad, который в разы быстрее чем Notepad.
Просто так переформатировать из любого формата в BMP не получится ввиду несоответствия оттенков серого в различных форматах
Ну это уже разговор о тонкостях цветовосприятия цветовых тонов. Мне кажется, это применимо для профессиональных фото, но не для контекста преобразования картинки в 3D G-code...
Но в этом случае работать придётся сразу "морковкой" с маленьким радиусом на кончике фрезы. Другими словами - на всю глубину рельефа за один проход.
Категорически нет. Никакой необходимости фрезеровать за один проход у вас нет. Параметр 3.3 определяет, на сколько проходов разбить достижение максимальной глубины (параметра 3.2). Например, в какой-то точке вычисленная максимальная глубина фрезерования составляет 0.6 мм, и у вас 6 проходов. Значит, на каждом проходе у вас в этой точке будет сниматься по 0.1 мм. А там, где рассчитанная максимальная глубина, например, оказалась 3 мм, за каждый проход будет сниматься по 0.5 мм. Максимальную глубину фрезерования, соответствующую черному цвету (3.2), равно как и количество проходов (3.3), за которые мы будем достигать эту максимальную глубину, задаете вы. При этом вы должны учитывать твердость материала, силы и жесткость вашего станка, и т.п., что относится в вашем случае к СПИД. Оператора никто не отменяет.
Получается, что шаг по оси Y абсолютно одинаковый и не зависит от диаметра фрезы?
Кстати, и в программе он остаётся неизменным.
Да. НЕ зависит. Более того, по моему пониманию, вы должны были получить два одинаковых файла.
Я об этом написал:
Для каждой строчки растра картинки будет в обязательном порядке выполнен один проход по горизонтали при фрезеровании. Это необходимо учитывать, если не требуется сверхъестественное качество на выходе, так как, если, к примеру, у вас картинка с разрешением 500х500 строк, а вы ее перекладываете на дерево на поле размером в 25 мм, то каждый последующий проход при фрезеровании будет отстоять от предыдущего на 0.05 мм (программа будет всовывать 500 строк растра картинки в 25 мм)
Количество проходов по вертикали определяется не программой, а исходным изображением. Для каждой строчки растра картинки будет в обязательном порядке выполнен как минимум один или несколько (если глубину достигаем за несколько проходов) проход по горизонтали при фрезеровании, вне зависимости от того, какая у вас фреза. Диаметр фрезы задается для того, чтобы избежать очевидных ошибок, поэтому задание диаметра фрезы и производится "справочно".
Приведу пример. Вы открыли картинку 20х20 точек, и хотите перенести ее на рабочую область 20х20 мм. То есть, у вас каждая строчка картинки отразится со смещением в 1 мм. И вы указываете, что у вас фреза 0.5 мм диаметром. Очевидно, что при таких параметрах вы никакого рельефа не выгравируете, а получите "бороздки". Программа в этом случае вас предупредит.
Для управления количеством проходов выбирайте изображение подходящего разрешения. Минимум попыток и симуляций и станет ясно, что к чему.
Ваши сообщения автоматически объединены:

А как вырежется фото брюнетки? С ямами на волосах или какой то хитрый алгоритм преобразования?
С уровнями серого работает даже StepCAM (там есть визуализатор) . Пробовал, настраивается, создает УП.
Думаю, стоит попробовать мою прогу на вашей картинке и оценить. Светлые тона выгравируются меньше, темные тона (волосы) - глубже. Никаких специальных алгоритмов преобразования там нет. Если StepCAM умеет то же самое (я им не пользовался, понятия не имею), то я изобрел велосипед. Но он очень мне подходит для моих задач :)
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать