Как сгенерировать gcode только для первого слоя?
Поскольку первый слой так важен, я ищу простой способ сгенерировать gcode для печати только первого слоя. Я вижу, что с Slic3r вы можете вырезать из a Z Но для целей тестирования я предпочитаю просто выбрать несколько слоев, которые будут сгенерированы, чтобы я мог легко генерировать различные "тесты первого слоя" с различными настройками первого слоя(ширина, высота, скорость, поток...). Единственный способ добиться этого-отредактировать gcode. Какая-нибудь помощь? Спасибо
@Luis Rosety, 👍3
Обсуждение2 ответа
Лучший ответ:
Я понимаю ваш вопрос так:
Я знаю, что могу разрезать сетку и просто разрезать нижнюю часть моей модели, но поскольку меня интересует заданное количество слоев, а высота слоя может меняться в зависимости от настроек (например, 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
Вы можете просто вставить 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
- Эндер 3 тяжелая недоэкструзия
- Печатное сопло: Перетаскивание и размазывание нити филамента во время печати
- Добавление дополнительного Z-смещения к столу для PETG в Slic3r
- G-код для сброса до 100% скорости
- Как изменить E0 на E1 на Marlin 1.1?
- Грязный верхний слой с нитью PETG?
- Как рассчитать объемную скорость для автоматической скорости Slic3r?
- Почему некоторые модели кажутся сломанными в программном обеспечении для нарезки?
Вы делаете это, чтобы установить Z-высоту, выравнивание стола и т. Д., Или у вас есть причины оценить первый слой для каждого конкретного печатаемого объекта?, @Carl Witthoft