Вставка кода на определённом слое

Аватара пользователя
demonlibra
Помогаю слегка
Сообщения: 2552
Зарегистрирован: 18 янв 2020, 11:49
Откуда: Ростов-на-Дону

Вставка кода на определённом слое

Сообщение demonlibra »

PrusaSlicer позволяет добавлять произвольный код на определённом слое или высоте модели.
Это можно выполнить вручную или автоматически по условию.
Вручную
  1. Задайте параметры и выполните нарезку модели.
  2. Переместите ползунок на нужную высоту.
  3. Нажмите правой кнопкой мыши на значок +
  4. Выберите "Добавить маркер пользовательского G-кода".
  5. Введите G-код.
  6. Если необходимо, повторите процедуры на другой высоте модели.
Изображение
Автоматически по условию
Арифметика в стартовом G-коде

Добавьте условия вставки кода в поле "G-код, выполняемый перед/после смены слоя":

Код: Выделить всё

{if layer_z==10}<код>{endif}
  • layer_num - номер слоя
  • layer_z - высота, мм
Чтобы данное условие сработало, должен присутствовать слой с высотой 10 мм.
Например, если Вы зададите высоту 1-го слоя 0.3 мм, а остальные 0.2 мм, то условие не выполнится, так как будут присутствовать только слои на высоте 9.9 и 10.1 мм.

Можно использовать конструкцию автоматического расчёта номера слоя по толщине слоя и заданной высоте:

Код: Выделить всё

{if layer_num==(round(10/layer_height)-1)}<код>{endif}
Управление вентилятором
Следующий код добавит команды выключения вентилятора обдува модели на высотах 15, 30 и 45 мм.

Код: Выделить всё

{if layer_z==15}M107 ; Выключить обдув модели
{elsif layer_z==30}M107 ; Выключить обдув модели
{elsif layer_z==45}M107 ; Выключить обдув модели
{endif}
Изображение Изображение
Изменение температуры
Следующий код добавит команды повышения температуры HotEnd`а на высотах 10, 20, 30, 40 и 50 мм.
Может быть полезно при печати температурной башни.

Код: Выделить всё

{if layer_z==10}M104 S{first_layer_temperature[0]+10} ; Увеличить температуру на 10 градусов
{elsif layer_z==20}M104 S{first_layer_temperature[0]+20} ; Увеличить температуру на 20 градусов
{elsif layer_z==30}M104 S{first_layer_temperature[0]+30} ; Увеличить температуру на 30 градусов
{elsif layer_z==40}M104 S{first_layer_temperature[0]+40} ; Увеличить температуру на 40 градусов
{elsif layer_z==50}M104 S{first_layer_temperature[0]+50} ; Увеличить температуру на 50 градусов
{endif}
Изображение Изображение
Изменение длины ретракта прошивки
Следующий код добавит команды изменения длины ретракта прошивки (G10/G11) на слоях с номерами 20, 40, 60, 80 и 100 мм.

Для прошивок Marlin и RepRapFirmware

Код: Выделить всё

{if layer_num==20}M207 S0.2 F1200 ; Задать длину ретракта 0.2 мм
{elsif layer_num==40}M207 S0.4 F1200 ; Задать длину ретракта 0.4 мм
{elsif layer_num==60}M207 S0.6 F1200 ; Задать длину ретракта 0.6 мм
{elsif layer_num==80}M207 S0.8 F1200 ; Задать длину ретракта 0.8 мм
{elsif layer_num==100}M207 S1.0 F1200 ; Задать длину ретракта 1.0 мм
{endif}
Изображение Изображение Изображение

Для прошивки Lerdge:

Код: Выделить всё

{if layer_num==20}M207 S0.2 F1200 ; Задать длину ретракта 0.2 мм
M208 S0.2 F1200 ; Задать длину возврата 0.2 мм
{elsif layer_num==40}M207 S0.4 F1200 ; Задать длину ретракта 0.4 мм
M208 S0.4 F1200 ; Задать длину возврата 0.4 мм
{elsif layer_num==60}M207 S0.6 F1200 ; Задать длину ретракта 0.6 мм
M208 S0.6 F1200 ; Задать длину возврата 0.6 мм
{elsif layer_num==80}M207 S0.8 F1200 ; Задать длину ретракта 0.8 мм
M208 S0.8 F1200 ; Задать длину возврата 0.8 мм
{elsif layer_num==100}M207 S1.0 F1200 ; Задать длину ретракта 1.0 мм
M208 S1.0 F1200 ; Задать длину возврата 1.0 мм
{endif}
Изменение коэффициента Linear Advance
Следующий код добавит команды изменения коэффициента Linear Advance на слоях с номерами 20, 40, 60, 80 и 100 мм.

Для прошивок Marlin и Lerdge:

Код: Выделить всё

{if layer_num==20}M900 K0.02 ; Задать коэффициент LA 0.02
{elsif layer_num==40}M900 K0.03 ; Задать коэффициент LA 0.03
{elsif layer_num==60}M900 K0.04 ; Задать коэффициент LA 0.04
{elsif layer_num==80}M900 K0.05 ; Задать коэффициент LA 0.05
{elsif layer_num==100}M900 K0.06 ; Задать коэффициент LA 0.06
{endif}
Для прошивки RepRapFirmware:

Код: Выделить всё

{if layer_num==20}M572 D0 S0.02 ; Задать коэффициент PA 0.02
{elsif layer_num==40}M572 D0 S0.03 ; Задать коэффициент PA 0.03
{elsif layer_num==60}M572 D0 S0.04 ; Задать коэффициент PA 0.04
{elsif layer_num==80}M572 D0 S0.05 ; Задать коэффициент PA 0.05
{elsif layer_num==100}M572 D0 S0.06 ; Задать коэффициент PA 0.06
{endif}
Не бойся поломать. Бойся не починить ))
Изображение

Вернуться в «PrusaSlicer»