Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Постобработка G-кода скриптами

Постобработка G-кода скриптами: что можно и чего нельзя менять

Как безопасно изменять G-код скриптами: вставка пауз и смены температуры, проверка безопасных высот, поиск опасных перемещений, git-контроль версий и тесты на симуляторе.

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

Типовые задачи

  • Вставка паузы для смены заготовки.
  • Смена температуры по слоям (для 3D-печати).
  • Добавление кода в начало/конец программы.
  • Удаление или замена команд конкретной стойки.
  • Проверка наличия обязательных команд (обороты, СОЖ, отмена коррекций).
  • Разбиение большой программы на части.
  • Преобразование координат или масштаба (осторожно!).

Это задачи, где скрипт уместен. Генерация траектории — нет: для этого есть CAM.

Что скрипт делать не должен

  • Пересчитывать геометрию без понимания последствий.
  • Менять подачи «на глаз» во всей программе.
  • Удалять проверки и защитные блоки.
  • Трогать команды, которых не понимает.
  • Работать «поверх» оригинала без сохранения копии.

Правило: любые изменения должны быть понятны человеку, который прочитает diff.

Минимальный рабочий скрипт

На Python это выглядит примерно так:

lines = open(src).read().splitlines()
out = []
for line in lines:
    out.append(line)
    if line.startswith(";LAYER:"):
        name = line.split(":")[1]
        temp = temps.get(int(name))
        if temp:
            out.append(f"M104 S{temp}")
open(dst, "w").write("\n".join(out) + "\n")

Ключевое: скрипт не «переписывает» строки, а вставляет новые. Так проще проверять.

Проверки перед запуском

  1. Diff: сравните оригинал и результат, посмотрите каждое изменение.
  2. Симуляция: прогоните в симуляторе стойки или в визуализаторе.
  3. Лимиты: убедитесь, что перемещения не выходят за рабочую зону.
  4. Безопасные высоты: проверьте, что вставленные перемещения не ниже допустимой высоты.
  5. Первая деталь: запустите с пониженной подачей и рукой на кнопке.

Пропускать эти шаги — то же, что ехать без тормозов «потому что обычно везло».

Работа с версиями

  • Оригинал G-кода не редактируется.
  • Результат сохраняется с суффиксом версии.
  • Скрипт хранится вместе с программой (в репозитории или папке).
  • В карте программы фиксируется, что применён скрипт и какой.

Через полгода вы сможете объяснить, откуда в программе взялась пауза на 40-м слое.

Опасные места

Что менять Риск
Координаты столкновение, брак
Подачи поломка инструмента
Высоты врезание
Отмена коррекций неверные размеры
Коды стойки игнорирование команд

Всё это допустимо, но только с проверкой и пониманием.

Пример: вставка паузы

В 3D-печати пауза нужна для установки гайки в деталь. Скрипт вставляет M600 (или M0) на нужном слое после включения определённой температуры. Проверка: посмотреть в превью, что пауза стоит именно там, и что после неё сопло не «плюёт» материалом.

Пример: контроль завершения

Полезный скрипт проверяет, что в конце программы есть отключение шпинделя, СОЖ, отвод в безопасную точку и M30. Это дешёвая защита от «программы, которая не выключает шпиндель».

Скрипты и операторы

Если скриптом пользуется несколько человек, нужен минимальный интерфейс: файл на входе, файл на выходе, понятные сообщения об ошибках. Иначе скрипт станет «магическим», который запускает только один человек, а остальные боятся.

Итог

Скрипты экономят время на рутинных правках, но требуют проверки, сравнения и версионирования. Начинайте с простых вставок, заканчивайте анализом diff и симуляцией. Так автоматизация помогает, а не создаёт новые риски.

Частые вопросы

Можно ли править G-код в текстовом редакторе?

Можно, но для повторяющихся правок скрипт надёжнее и воспроизводимее.

Нужен ли симулятор?

Для ответственных программ — обязательно.

Как проверить, что скрипт ничего не сломал?

Diff и симуляция; плюс первая деталь на пониженных режимах.

Что делать, если стойка не понимает команду?

Заменить её на поддерживаемый аналог и проверить документацию стойки.

Можно ли хранить скрипт в git?

Да, это лучший способ отслеживать изменения.

Почему diff важнее самого скрипта

Скрипт может быть написан за десять минут, а последствия его ошибки устраняются часы. Поэтому основной инструмент контроля — сравнение файлов: вы видите каждую вставленную и удалённую строку и можете оценить, соответствует ли она замыслу. Если diff занимает сотни строк, значит скрипт делает слишком много за один проход, и его стоит разбить на этапы.

Как тестировать на «пустом» файле

Полезный приём: сгенерируйте короткий тестовый G-код из десяти строк, включающий начало, смену слоя, конец программы, и прогоните скрипт на нём. Вы увидите, куда именно вставляются команды, не рискуя реальной программой. Такой тест занимает минуту и ловит большинство ошибок индексации и условий.

Обратная совместимость

Если скрипт используют несколько человек, изменения в нём нужно сопровождать описанием: что изменилось и почему. Иначе через месяц кто-то запустит новую версию на старой программе и получит неожиданный результат. Версионирование и короткий changelog — минимальная гигиена.

Работа с комментариями

Комментарии в G-коде — не мусор, а разметка. Скрипт, который удаляет все строки, начинающиеся с точки с запятой, ломает навигацию и отладку. Если нужно «почистить» файл, делайте это отдельным этапом и сохраняйте оригинал: комментарии часто содержат единственную подсказку о том, что делал автор программы.

Когда лучше не писать скрипт

Если правка нужна один раз и занимает пять минут в редакторе, скрипт не нужен. Если правка повторяется и содержит условия — скрипт оправдан. Граница простая: автоматизация должна уменьшать риск, а не создавать новый источник ошибок.

Небольшой пример проверки лимитов

Скрипт может пройти по всем строкам с координатами, выделить максимальные и минимальные значения X, Y, Z и сравнить с рабочей зоной станка из паспорта. Если значение выходит за границы, программа останавливается с сообщением, а не запускается. Это десять строк кода, которые спасают от столкновения и от испорченной заготовки.

Как приучить участок к скриптам

Начните с одного скрипта, который решает болезненную мелочь: например, добавляет паузу для контроля или проверяет завершение программы. Покажите результат, сохраните скрипт в общем месте и опишите запуск в три строки. Когда люди убедятся, что он не ломает программы, следующий скрипт примут спокойно.

Полезные материалы