3D-печать на PLA кажется простой, но каждый сталкивался с неприятными нитями между перемещениями и дырами на верхних слоях. Вместо долгой постобработки можно настроить G-код и профиль печати, чтобы сразу получать чистые детали. В этой статье разбираем, почему возникают проблемы, и как исправить строки G-кода, чтобы убрать нити и дыры без последующей обработки.

Почему появляются нити и дыры в PLA-моделях

Нити (stringing) — это тонкие волоски пластика, остающиеся между перемещениями печатающей головки. Основные причины:

  • неправильная настройка температуры и скорости охлаждения;
  • большое количество перемещений (wipe и подводы) без ретракции;
  • некорректные настройки ретракции;
  • высокая влажность PLA и низкое качество нити.

Дыры (гэпы, пропуски) в верхних слоях возникают из-за:

  • недостаточного заполнения верхнего слоя;
  • слишком низкой температуры пластика;
  • неправильных настроек ширины экструзии и потока;
  • механических проблем в приводе экструдера (слабый натяг, проскальзывание).

Важно понимать, что G-код — это результат работы срезащего слайсера. Настройки слайсера формируют команды перемещения, ретракции, охлаждения и экструзии. Изменяя их, мы меняем строки G-кода и итоговое качество печати.

Базовые настройки слайсера для чистого G-кода

Прежде чем править G-код вручную, настройте срезащую программу (Cura, PrusaSlicer, Bambu Studio). Ключевые параметры для PLA:

  • Температура сопла: 200–215°C (начните с 210 и снизьте, если есть нити).
  • Температура стола: 50–60°C (для PLA достаточно 55°C).
  • Скорость печати: 50–60 мм/с для периметров, 60–80 мм/с для заполнения.
  • Скорость перемещений (travel speed): 120–150 мм/с, чтобы сократить время между точками экструзии.
  • Охлаждение: 100% вентилятор с первого слоя, кроме мостов и тонких стенок.

Ретракция и wipe: как исправить строки G-кода

Ретракция — это откат нити обратно в экструдер перед перемещением. Wipe (протирка) — частичное выключение экструзии во время движения, чтобы «смыть» давление в сопле.

Для PLA в Bowden-приводе используйте:

  • Ретракция: 4–6 мм при скорости 40–45 мм/с.
  • Wipe: включите в слайсере (в Cura это «Coasting» и «Wipe»), настройте 0.1–0.2 мм длины протирки.
  • Минимальное расстояние перемещения: 1–2 мм (чтобы избежать микродвижений без ретракции).

Для прямого привода (direct drive):

  • Ретракция: 0.5–1.5 мм при скорости 25–35 мм/с.
  • Wipe: 0.05–0.15 мм.

Важно: избегайте слишком сильной ретракции, это ведет к засорам сопла и «дырам» в слоях из-за недостатка пластика при возобновлении экструзии.

Настройки периметров и верхних слоев против дыр

Дыры в верхних слоях часто появляются из-за недостаточного наложения периметров и заполнения. Решения:

  • Увеличьте количество верхних слоев (Top Layers) до 5–6 слоев при высоте слоя 0.2 мм.
  • Установите плотность верхнего слоя (Top Fill) 85–95% (в Cura — «Top Surface Skin Layers» и «Top Surface Pattern» — Concentric или Lines).
  • Используйте «Feather» или «Ironing» (выглаживание) в слайсерах для PLA, чтобы убрать мелкие неровности и микропоры.
  • Регулируйте ширину экструзии: 110–120% от диаметра сопла (например, 0.48–0.50 мм для сопла 0.4 мм) для лучшего перекрытия.

Как править G-код для устранения нитей

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

1. Добавьте ретракцию в точках перемещений

Ищите команды перемещения G0/G1 без предшествующих команд ретракции. В G-коде ретракция обычно выполняется командами G1 с отрицательной E-координатой. Пример добавления ретракции перед перемещением:

G1 E-2.0 F1800 ; Retract 2mm

G0 X120 Y80 Z2.0 F9000 ; Travel move

G1 E1.8 F1200 ; Prime (unretract)

Убедитесь, что после перемещения происходит «прим» (подача пластика) обратно. Для Bowden используйте значения 4–6 мм, для direct — 0.5–1.5 мм.

2. Включите «Coasting» в G-коде

Coasting — завершение экструзии перед остановкой, чтобы снизить давление. В слайсерах настраивается автоматически, но в G-коде вы можете имитировать:

  • Уменьшите E-подачу в последнем сегменте перед остановкой (примерно на 0.05–0.2 мм).
  • Замените последний G1 на G0 (перемещение) без экструзии.

Пример:

G1 X100 Y100 E4.5 ; last segment

G1 X102 Y102 E4.55 ; coasting: подача уменьшена

G0 X120 Y120 ; travel move

Это снижает избыточное давление и предотвращает нити.

3. Оптимизируйте перемещения (travel moves)

Избегайте перемещений через модель. В G-коде используйте команды перемещения по безопасной высоте (обычно Z = текущая высота слоя + 0.2–0.4 мм). В слайсерах настройте «Z-hop»:

  • Z-hop height: 0.2–0.3 мм.
  • Используйте только при пересечении периметров или при ретракции.

Пример команды:

G0 Z1.2 F600 ; Raise Z

G0 X150 Y50 F9000 ; Travel move

G0 Z1.0 F600 ; Lower Z

Это помогает избежать задевания слоев и появления нитей.

4. Коррекция температуры в G-коде

Если нити возникают из-за избыточной температуры, добавьте команду снижения температуры перед перемещениями в сложных зонах:

M104 S205 ; Set temp to 205°C

… перемещения и ретракции …

M104 S210 ; Return to base temp

Для PLA не опускайте температуру ниже 195°C, чтобы не вызвать неполную экструзию и дыры.

5. Управление охлаждением в G-коде

Команды M106 и M107 управляют вентилятором. Для PLA используйте 100% охлаждение после первого слоя:

M106 S255 ; Fan 100%

Если дыры появляются на мостах, уменьшите вентилятор до 70–80%:

M106 S179 ; Fan 70%

Как исправить дыры в G-коде

Дыры часто вызваны недостатком пластика из-за неправильного потока или слишком низкой температуры. В G-коде можно вручную добавить «прим» (подачу пластика) перед критичными сегментами.

1. Коррекция потока (extrusion multiplier)

В слайсере настройте поток 100–105% для PLA. В G-коде можно добавить微量ную коррекцию перед сложными зонами:

G1 E0.05 F1200 ; Micro-prime

G1 X90 Y90 E0.3 ; Сегмент с коррекцией

2. Повышение температуры в сложных слоях

Для верхних слоев и мостов поднимите температуру на 2–3°C:

M104 S213 ; Increase temp for top layers

После завершения верхних слоев верните базовую температуру.

3. Увеличение ширины экструзии в G-коде

Ширина линии влияет на заполнение. В G-коде сложно изменить напрямую, но в слайсере установите ширину периметра 110–120% от сопла, а в G-коде проверьте команды G1 с координатой E. Если в файле встречаются слишком тонкие экст