Кремень КД Реклама
Кремень КМ Реклама

Лазерный резак из 3d-принтера. Часть вторая, софтварная

Ghozt
Идет загрузка
Загрузка
12.05.2016
28718
22
Разное

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

34
Лазерный резак из 3d-принтера. Часть вторая, софтварная
В прошлой части я описал все аппаратное обеспечение. Настало время научить принтер работать с лазером.

Управление лазером.



При описании процесса настройки пришлось коснуться этой темы, но повторюсь. Управлять включением/выключением лазера мы будем крайне полезной командой M42. Ее поддерживают прошивки Sprinter, Marlin, Repetier, RepRap Firmware. Достаточно внушительный список, поэтому у большинства проблем с этим возникнуть не должно. Команда выглядит так:

M42 Px Sy, где x - номер пина, на котором сидит TTL-управление, а y - величина цикла ШИМ.

По ходу статьи я буду упоминать необходимую для каких-либо операций мощность лазера, примерное значение S для конкретного лазера можно вычислить из пропорции. Например, при требуемой мощности в 0,5Вт величина S для 1,6Вт-лазера будет равна (255/1,6)*0,5~80.

Подготовительные команды для лазерной резки/гравировки.

Из-за того, что мы забиваем гвозди микроскопом, подготовка делится на 2 этапа: серия команд перед резкой и серия команд собственно в самом файле резки. Сейчас речь о первом этапе.

После того, как выставлен фокус, предпочтительно иметь файл, который будет загонять все оси в home и поднимать каретку на высоту, с которой был настроен фокус для конкретного материала. Несколько сумбурно, поэтому объясню на примере.

Предположим, я отстроил фокус на положенной пластине 1мм-текстолита при поднятой на 8мм каретке. Тогда код подготовки к резке/гравировке материала толщиной 1мм будет выглядеть следующим образом:

G28 X Y ; загоняем X и Y в home

G28 Z ; загоняем Z в home

G1 Z8 ; поднимаем каретку на 8мм

M84 ; отключаем шаговики



Z загоняется отдельно из-за включенного safe home. Если он отключен, то код сокращается до трех команд:

G28

G1 Z8

M84



Подобных файлов удобно иметь несколько штук для материалов разной толщины. Для 2мм будет 9мм-поднятие, для 3 - 10 и так далее. Фокус все равно придется отстраивать перед каждой резкой, но хотя бы меньше придется крутить кольцо отстройки.

Начальные и конечные команды в gcode-файле.



После предварительной подготовки можно начинать резку. Но ей предшествует второй этап подготовки в виде списка начальных команд в самом gcode-файле.

Вот список команд, предшествующих началу гравировки:

G28 X Y ; в отличие от 3D-печати, делающейся чаще всего на середине стола, гравировку удобнее делать с края. Потому XY загоняются в самый угол. Z остается неизменной, ее мы установили предыдущим файлом.

G1 Y43 ; дальше идет сдвиг стола, чтобы прийти в начало координат лазера. Об этом ниже.

G92 X0 Y0 ; обнуление координат после сдвига - так мы даем понять принтеру, что мы пришли в начало координат.

M42 P5 S255 ; включение вентилятора. Подробнее здесь.

Определение положения лазерного модуля относительно сопла. Когда мы отправляем все оси в home, мы это делаем для экструдера. Но лазер находится в другом месте, и начало координат для него - тоже. Положение 'нового' начала координат нам и предстоит определить. Эта операция делается один раз. Методика такая:

1. Наклеиваем кусок скотча/каптона на стол.

2. Передвигаем оси так, чтобы лазер находился над куском наклеенного скотча.

3. Пишем в Pronterface команду G92 X0 Y0 - это сбросит текущие координаты каретки в 0,0

3. Включаем лазер (M42 P6 S*), чтобы он выжег точку на скотче. 0,3-0,5Вт мощности вполне достаточно . Долго держать не надо, достаточно 3-5 секунд, и лазер можно выключить (M42 P6 S0).

4. Жмем стрелки управления осями в Pronterface так, чтобы навести сопло принтера на получившуюся точку.

5. После наведения отправляем команду M114 , она покажет текущую позицию каретки. В командной строке появится, что-то вроде X:0.00 Y:-43.00 Z:0.00. Из этого следует, что разница между началами координат для сопла и лазера равна 43мм, и чтобы прийти в начало координат лазера, нужно сдвинуть ось Y на 43мм. Поэтому итоговая команда выглядит как G1 Y43 . Пример приведен для соосного расположения экструдера и лазера относительно оси Y.

Из за того, что лазер находится дальше сопла, страдает рабочая область. Для лазерной резки она будет как раз на эти 43мм меньше. Если у вас максимальное измерение по 'пострадавшей' оси было, скажем 200мм, то для резки оно будет 157мм. Это максимальное измерение придется держать в голове, т.к. я не нашел элегантного способа задать максимальное измерение через G-code.

С конечными командами все элементарно. В конце исполняемого файла должно быть отключение лазера и обдувающего его вентилятора:

M42 P6 S0 ; отключаем лазер

M42 P5 S0 ; отключаем кулер

Итого софтварно-хардварная подготовка завершена.

О порядке работы.

Немного обобщу весь написанный выше ворох информации.

После всех манипуляций у нас должно быть 3 списка команд: один поднимает каретку на высоту фокуса, второй (сдвиг стола, сброс координат...) добавляется в начало файла гравировки и третий (выключение лазера и вентилятора) добавляется в конец файла гравировки.

Порядок работы примерно следующий:

1. Выполняем команды поднятия Z на высоту фокуса.

2. Помещаем заготовку в принтер. В плане крепления заготовки по удобству офисные зажимы для бумаг вне конкуренции

3. Готовим файл резки с помощью одной из программ, описанных ниже. Если это плагин, вручную добавляем соответствующие списки команд в начало и конец gcode-файла с помощью 'Блокнота'

4. Выполняем резку. Можно как через Pronterface, так и через SD-карту.

Выжигаем уголок в начале координат.



Первое, что я рекомендую сделать - это выжечь пару линий под прямым углом в начале координат, чтобы заготовку было проще устанавливать. Файл с уголком прикладываю. Он выжжет 2 прямых линии в начале координат по X и Y длиной 10см.

Подготовка файла под ваши нужды сводится к следующему:

1. Изменить величину сдвига

2. Изменить пин вентилятора в начале и конце файла на свой

3. Изменить пин и мощность лазера на свою, это надо сделать по всему файлу. Это можно легко сделать с помощью автозамены. Мощности достаточно 0,5Вт.

Необходимые для правки команды отмечены в файле через точку с запятой.

После гравировки должно получиться вот так:
Лазерный резак из 3d-принтера. Часть вторая, софтварная

Режимы лазера для гравировки различных материалов.



К сожалению, я не могу предоставить много информации по этому поводу. Режимы подбираются только практически. Но кое-что есть:

Для гравировки по фанере: 0,7-1Вт, подача 1000-2000мм/мин.

Для выжигания по краске/резки: полная мощность, подача 100-150мм/мин



Обзор софта для работы с лазером.

Здесь вкратце расскажу о программах, которые пощупал собственноручно.

Софта для нативной работы с лазером, собранным в подобной конфигурации, не так много. Прежде чем рассматривать софт, расскажу о 2 подходах к обработке черно-белого изображения программами для перевода в g-code.

1. Растровый подход: изображение рассматривается как набор точек, и лазер построчно, точка за точкой наносит изображение на материал. Довольно медленный в работе метод, но он позволяет получить заполнение, и является единственным для гравировки фотографий.

2. Векторный подход: изображение рассматривается как набор примитивов, которые являются готовыми траекториями для лазера. Такой подход дает намного большую скорость при выполнении гравировки, но есть краеугольный камень - заполнение примитивов. Лазер выжигает только их контуры.

Программы с растровым подходом.

Плагин Raster 2 Laser для Inkscape
был упомянут здесь, поэтому его описание я опущу. У плагинов для Inkscape есть один общий недостаток: нельзя автоматически вписать свои команды (сдвиг стола, обнуление осей...) в начало и в конец gcode-файла, поэтому приходится добавлять их вручную. Также не все прошивки поддерживают команды вида G01...G09 - их приходится менять автозаменой на G1, G2 и пр.

PicLaser. Кривая программа с дико страшным интерфейсом, да к тому же еще и платная (40$). Но, несмотря на страшный GUI и ворох мелких глюков, исправно делает свою работу. Демка не позволяет выводить в gcode больше половины изображения. Есть неудобный внутренний редактор изображений, я им пользоваться не рискнул. Зато есть полное удобство в плане настроек - и команды перед резкой, и после, задание команды на включение/выключение, задание максимального значения S, выбор нанесения гравировки - верикальный, горизонтальный или под углом в 45 градусов и пр.

Лазерный резак из 3d-принтера. Часть вторая, софтварная
Несмотря на все свои недостатки, на мой взгляд пока что остается лучшей программой для нанесения фоток в градациях серого на фанерки, т.к. умеет модулировать мощность лазера в зависимости от оттенка.



CHPU от NikRomSoft.
Неплохая программа от соотечественников, да к тому же бесплатная. Предназначена ЧПУ-фрезеров, лазерных и нихромовых граверов. Есть возможность ввести начало и конец G-code. Умеет пропускать белые участки. Есть встроенный редактор изображений.
Лазерный резак из 3d-принтера. Часть вторая, софтварная
Мне она не очень понравилась. Изображение выжигается только при ходе каретки в одну сторону, а потом лазер вхолостую возвращается обратно, чтобы начать новую строку. И код приходится вручную править для того, чтобы убрать задержку на черном - она очень сильно тормозит процесс, а если выставить нулевую - на выходе получается пустой gcode-файл. Даже пропуск белого этот процесс не ускоряет. Сохраняет в формате .cnc, приходится переименовывать в .gcode вручную. С другой стороны, есть заполнение... Неоднозначные впечатления, в общем. Возможно, кто-нибудь добьется с этой прогой большего.

P.S. небольшой финт: скорость гравировки задается в предварительных командах строчкой вроде 'G1 F1000', где 1000 - это подача в мм

LaserEtch от J-Tech Photonics. Еще одна платная программа (30$). Демка, по нехорошей традиции, выдает только половину изображения в g-code.
Лазерный резак из 3d-принтера. Часть вторая, софтварная
Несмотря на то, что разработчики ее позиционируют, как векторную, это не так - она просто умеет пропускать абсолютно белые участки, и перемещает каретку на них быстрее. Довольно богатое количество настроек, среди которых отмечу Fake Extrusion - она позволяет увидеть в Pronterface то, что будет выгравировано. На данный момент есть небольшой глюк при сохранении собственных gcode-команд в начале и конце файла (показан на скрине). В принципе, заменяема программой CHPU, хоть и с некоторыми оговорками.



Программы с векторным подходом.


Мной найдена только одна такая программа на данный момент:

Плагин J-Tech Photonics Laser Tool для Inkskape. Чтобы его использовать, надо векторизовать растр с помощью Inkscape.
Лазерный резак из 3d-принтера. Часть вторая, софтварная
Он понимает только чисто фото с черным и белым, а не в градациях серого. Удобен тем, что может опускать каретку для каждого прохода, есть возможность задать максимальную мощность лазера, задержку перед включением (у некоторых драйверов есть soft-start). Недостатки: начало и конец кода приходится добавлять вручную, и он не умеет заполнять примитивы - только контуры. Я с помощью него делаю маски печатных плат:
Лазерный резак из 3d-принтера. Часть вторая, софтварная
Как видно, он не убирает краску между дорожками. С одной стороны, это хорошо - готовая экранировка платы, с другой создает проблемы при монтаже деталей - рез довольно тонкий.

Из всего вышеперечисленного сложно что-то одно посоветовать. Оставлю за читателями выбор подходящей под их нужды программы. Или программ.

Заключение.



Итого многозадачность принтера успешно реализована. Не сказать, что обошлось без костылей, неудобств - но ведь главным было заставить все это работать вкупе. Основной проблемой мне видится недостаточное количество софта для такой узкоспециализированной задачи.

Adios

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

34
Комментарии к статье