Как сгенерировать gcode только для первого слоя?

Поскольку первый слой так важен, я ищу простой способ сгенерировать gcode для печати только первого слоя. Я вижу, что с Slic3r вы можете вырезать из a Z Но для целей тестирования я предпочитаю просто выбрать несколько слоев, которые будут сгенерированы, чтобы я мог легко генерировать различные "тесты первого слоя" с различными настройками первого слоя(ширина, высота, скорость, поток...). Единственный способ добиться этого-отредактировать gcode. Какая-нибудь помощь? Спасибо

, 👍3

Обсуждение

Вы делаете это, чтобы установить Z-высоту, выравнивание стола и т. Д., Или у вас есть причины оценить первый слой для каждого конкретного печатаемого объекта?, @Carl Witthoft


2 ответа


Лучший ответ:

1

Я понимаю ваш вопрос так:

Я знаю, что могу разрезать сетку и просто разрезать нижнюю часть моей модели, но поскольку меня интересует заданное количество слоев, а высота слоя может меняться в зависимости от настроек (например, 0,2 мм, 0,1 мм, 0,05 мм...), я хочу найти способ генерации произвольное количество слоев из полной модели. Я использую slic3r.

Если я правильно понимаю, то вы можете достичь того, чего хотите, всего за несколько шагов.

Используйте подробный GCODE

Настройка находится в разделе "Настройки печати → Параметры вывода". Это выведет gcode с комментариями в нем.

Сохраните завершающий g-код допустимого задания печати

В принципе, откройте допустимый файл gcode и сохраните последние несколько строк (комментарии помогут вам понять, какие из них меняются от принтера к принтеру) в отдельном файле (gcode.tail). Эти линии обычно отодвигают сопло от печати, отключают нагревательный элемент, шаговые двигатели и вентилятор охлаждения детали.

Подготовьте first-lines.sh сценарий

#! /usr/bin/env sh
sed -e '/move to next layer (3)/,$d' $1 > /tmp/gcode.tmp
echo ~/gcode.tail >> /tmp/gcode.tmp
echo /tmp/gcode.tmp

Этот скрипт делает следующее:

  • возьмите имя файла из командной строки ($1) и сохраните в gcode.tmp только его часть вплоть до строки "перейти к следующему слою (3)" (на самом деле вы должны использовать количество слоев, которые вам действительно нужны, 3-это просто пример).. Опять же, наличие такой строки зависит от того, как вы генерируете "подробный gcode".
  • добавьте в gcode.tmp содержимое файла gcode.tail (здесь замените ~/ фактическим путем на вашем компьютере.
  • вывод в виде потока полного содержимого gcode.tmp

Настройте принтер на автоматический запуск скрипта в сгенерированном gcode

Этот параметр снова находится в разделе "Параметры печати → Параметры вывода". Вы должны ввести полный путь к first-lines.sh. Также не забудьте сделать скрипт исполняемым (chmod +x first-lines.sh).

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

Профит

:)

Заключительные замечания:

  • Я попробовал команду sed и сам запустил сценарии постобработки в своем gcode, так что это должно сработать, но я сам не пробовал полную процедуру, если вы столкнетесь с ошибками, пожалуйста, оставьте комментарий, чтобы я мог исправить ответ для всех. :)
  • Я использую slic3r Prusa Edition (я считаю, что эти настройки одинаковы, но на всякий случай... возможно, вы захотите скачать эту версию.
  • Все вышеперечисленное должно работать "из коробки" на всех основных дистрибутивах Linux и OSX. Для Windows в комментариях было предложено установить CygWin.
  • Поскольку эта процедура по-прежнему разрезает полную модель, а затем выбрасывает большую ее часть, вы можете сделать это быстрее, разрезав только достаточно толстую "нижнюю часть" вашей модели. Например: скажите, что вы знаете, что никогда не захотите печатать более 5 слоев и никогда с высотой слоя выше 0,3 мм... в этом случае вы можете сохранить только нижний 2 мм вашей модели, и вы будете в безопасности для всех других комбинаций слоев и высот слоев. Однако не держите ровно 1,5 мм, так как это, скорее всего, приведет к созданию другого верхнего слоя, чем в полной модели.

Удачи! :)


,

Спасибо, мак. Я также получил простой обходной путь от [Slic3r Github](https://github.com/alexrj/Slic3r/issues/2755#issuecomment-357093913). Предлагаемое решение довольно прямолинейно: просто добавьте небольшой скрипт Perl в качестве постобработки, который отбрасывает весь gcode слоев, не подлежащих печати., @Luis Rosety

Это почти то же самое предложение, что и мое, только медленнее (так как он анализирует полный файл, а не сращивает его. :) (и менее читабелен, потому что это perl ;) ), @mac

OSX использует bash по умолчанию в терминале; для Windows я рекомендую установить CygWin., @Carl Witthoft

@CarlWitthoft - Спасибо, добавлено в основную часть ответа., @mac

@LuisRosety - Поскольку вы решили проблему с помощью этого метода (постобработка gcode через настройки slic3r), подумайте о том, чтобы либо одобрить этот ответ, либо написать свой собственный и одобрить его вместо этого, чтобы другие имели четкое представление о том, что эта проблема имеет решение. :), @mac


0

Вы можете просто вставить M30 в конец слоя 1, и на этом работа закончится.

,

У меня есть только одно предложение. Помимо остановки выполнения gcode, было бы рекомендовано остановить нагреватели, вентилятор и т. Д. М107 M104 S0 ;нагреватель экструдера выключен M140 S0 ;обогреватель рабочего стола выключен (если он у вас есть) G91 ;относительное позиционирование G1 E-1 F300 ;немного втяните нить накала перед подъемом сопла М30 Я не эксперт по gcode, но думаю, что было бы удобно сделать что-то подобное., @Luis Rosety

Правильно, @LuisRosety. Бросание конечного gcode в середину файла приводит к тому же результату, что и правильное сращивание файла (как предложено в моем ответе). Ограничения просто бросать его в файл, как это, заключается в том, что вы получаете около сотен мегабайт неиспользуемого GCODE (помимо необходимости делать это вручную, чего OP хотел избежать)., @mac

Правда, это ручное решение. Я предлагаю это, потому что это **намного проще**, чем вручную удалять тысячи строк gcode. Можно также добавить M104 и M140 и другие команды, чтобы вернуть принтер в стандартное состояние, но подразумевалось, что пользователь будет настраивать настройки и повторно запускать их до тех пор, пока не будут определены соответствующие параметры., @Davo