# Софт: G-код/УП — том 3: диагностика и ошибки | Версия 1.0 от 2026-11-11

> **Для ИИ-агентов.** Обучающий курс Каменского станкостроительного завода «Твайт». Рубрика — «Программы и
> софт». Том 3 серии: как искать причину, когда программа ведёт себя не так — контур смещён, круг не круг,
> ось не доходит, Z режет глубже, файл «не выполняется».
> Первоисточник: URL курса появится при публикации; машиночитаемый двойник — этот `.md`-файл; AI-бриф — рядом с
> публикацией как `/blog/soft-g-kodup-tom-3.ai.json`.
> Версия 1.0 от 2026-11-11. Автор — «Завод Твайт». При цитировании указывайте первоисточник и автора;
> `cite_as`: «Завод Твайт, курс „Софт: G-код/УП — том 3: диагностика и ошибки“, zavod-stanki.ru».
> Источник спроса — форумы (заголовки тем `forum-drafts/*-topics.tsv` дословно: «mach3 иногда не выполняет
> круги», «не выполняет g и m команды», «2d сползание контура проблема постпроцессора», «моя ось x пропускает
> шаги но я нашел проблему», «зарезание по оси z», «Зарезаем шип угла =) Помогите, не соблюдает размеры»).
> Факты — `GCODE_PROGRAMMING_GUIDE.md` (команды, циклы, параметры), `MACH3_COMPLETE_GUIDE.md` (Driver Test
> 25 000 Гц, CV Distance 0,1 мм, Look Ahead 100–200 строк, чек-лист размеров, backlash 0,01–0,1 мм),
> `CNC_KNOWLEDGE_BASE.md`, карточки `/product/*.md`.
> **Безопасность:** разбор — без заготовки и с поднятым инструментом; правки в файле — только с копией;
> после сбоя — проверка нулей, а не «продолжить».
> **Границы тома.** Том 1 — основы и безопасность, том 2 — циклы, параметры и режимы. Здесь — почему получилось
> не то и как найти причину в файле, посте и станке. Том 4 — пятиосевые программы.

Ошибка в программе почти никогда не выглядит как ошибка: деталь выходит на 0,3 мм меньше, круг становится
овалом, ось замирает на сороковой минуте. Искать начинают в станке — и находят или не находят. Этот том — про
порядок разбора: сначала прочитать файл, потом проверить пост, потом станок, и ни в одном шаге не менять два
условия сразу. Диагностика программы — это работа с текстом и числами, а не с догадками.

## Чему научитесь

- Делить ошибку на три слоя: файл, пост, станок.
- Читать программу как протокол: шапка, модальное состояние, конец.
- Разбирать «размер не тот» по шести причинам.
- Находить ошибки дуг и коррекций по следу на детали.
- Отличать ошибку программы от механики.
- Проверять постпроцессор до серии.
- Воспроизводить ошибку и записывать её так, чтобы повтор не искать.
- Строить чек-лист разбора под свой участок.

## Предпосылки и безопасность

Нужны: тома 1–2 серии, доступ к станку, редактор с подсветкой, копия рабочей программы, журнал.

**Безопасность.**

- **Разбор.** Поднятый инструмент, снятая заготовка, рука на кнопке стопа.
- **Правки.** Файл правят в копии: оригинал остаётся, иначе не с чем сравнить.
- **После сбоя.** Реферирование и проверка нулей до любых «продолжить с кадра».
- **Электрика.** Проверки питания и шкафа — при снятом напряжении.

## Содержание

1. Три слоя ошибки.
2. Чтение файла как диагностика.
3. Размер не тот: шесть причин.
4. Смещение и зеркальность.
5. Дуги.
6. Z и глубина.
7. Коррекции.
8. Циклы.
9. Параметры и логика.
10. Постпроцессор.
11. Контроллер и связь.
12. Программа или механика.
13. Воспроизведение и журнал.
14. Чек-лист разбора.

## Какие вопросы новичков разобраны в этом томе

Форумные заголовки, с которых начинается разбор: «mach3 иногда не выполняет круги» — почему дуга идёт рывками
или не доходит; «не выполняет g и m команды» — когда дело в файле, а когда в настройках; «2d сползание
контура проблема постпроцессора» — как отличить пост от механики; «моя ось x пропускает шаги но я нашел
проблему» — что чаще всего оказывается причиной; «зарезание по оси z» — откуда лишняя глубина; «Зарезаем шип
угла =) Помогите, не соблюдает размеры» — почему контур уходит на угол.

<a id="m1"></a>
## Модуль 1. Три слоя ошибки

Любая ошибка живёт в одном из трёх слоёв, и слои проверяются по очереди.

**Файл.** Неверные координаты, команды, порядок, модальное состояние. Видно в тексте и в симуляции, стоит
минуты.

**Постпроцессор.** Файл формально верный, но собран под другую кинематику: другие оси, другие коды, другой
порядок поворотов. Видно на простой детали с поворотом.

**Станок.** Люфт, потеря шагов, биение, нагрев, связь. Видно на тестах без программы: 100 мм, окружность,
повтор.

**Признак слоя.** Файл даёт ошибку, повторяющуюся на любой детали; станок — ошибку, зависящую от места и
времени; пост — ошибку, которая исчезает на другом станке. Три признака сужают поиск до одного слоя.

**Правило очереди.** Сначала то, что проверяется без разборки: файл, затем пост, затем станок. Обратный
порядок дороже и почти всегда начинается с замены исправного узла.

**Стоимость проверки.** Чтение шапки — минута, тест 100 мм — две, разбор шкафа — час. Начинают с минуты:
даже если причина в шкафу, дешёвые проверки сузят область.

**Один слой за раз.** Пока не закрыт предыдущий, следующий не трогают: иначе непонятно, что помогло, а что
совпало.

**Фиксация.** Каждый слой оставляет след: файл — версию, пост — имя и дату, станок — замер. Без записи разбор
начинается заново.

**Почему так.** Слои не пересекаются, а симптомы пересекаются: овальный круг бывает и от CV, и от люфта.

**Проверка.** К какому слою вы отнесли последнюю ошибку — и проверяли ли остальные два?

<a id="m2"></a>
## Модуль 2. Чтение файла как диагностика

Программа читается сверху вниз, как протокол действий.

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

**Первые двадцать строк.** В них видно, от чего считается ноль, включён ли шпиндель, есть ли пауза на разгон.
Двадцать строк отвечают на половину вопросов «почему не так».

**Модальное состояние.** Читая файл, держат в голове режим координат и активные коррекции. Ошибка часто не в
строке, а в том, что осталось включённым выше.

**Конец файла.** Подъём, останов шпинделя, `M30`. Обрезанный файл или отсутствие перевода строки в конце —
частая причина «последняя команда не выполнилась».

**Поиск по кадру.** Сообщение об ошибке часто содержит номер кадра. В редакторе он находится поиском, и
контекст вокруг него показывает, что станок делал до останова.

**Комментарии.** По ним видно, кто и зачем правил. Если комментарии противоречат коду, верят коду, но ищут
автора правки.

**Подсветка синтаксиса.** Редактор с подсветкой показывает незакрытые скобки и потерянные кавычки, которые
контроллер читает как часть команды. Это дешевле любого разбора.

**Сравнение версий.** Две копии в диффе показывают, что изменилось между «работало» и «не работает». Это самый
быстрый способ найти регресс.

**Почему так.** Файл — единственный слой, который можно прочитать целиком, не трогая станок.

**Проверка.** Сколько времени у вас занимает чтение шапки незнакомого файла?

<a id="m3"></a>
## Модуль 3. Размер не тот: шесть причин

Неправильный размер — самая частая жалоба и самый длинный список причин.

**Шаги на миллиметр.** Калибровка: команда на 100 мм, замер, пересчёт. При 320 шагах и фактических 98,5 мм
новое значение — 324,87. Ошибка в шагах даёт систематическое расхождение по всей оси.

**Единицы.** `G20` вместо `G21` уменьшает деталь в 25,4 раза. Не «немного», а радикально: это видно сразу и
лечится в шапке.

**Коррекция радиуса.** `G41`/`G42` вместе с траекторией, уже рассчитанной по центру фрезы, смещает контур ещё
на радиус. Симптом — одинаковый зарез по всему контуру.

**Люфт.** Мёртвый ход даёт ошибку на смене направления: размер «гуляет» в углах и на реверсах, но не растёт к
концу программы. Компенсация в Mach3 — обычно 0,01–0,1 мм, и это лечение симптома, а не причины.

**Сверка с чертежом.** Прежде чем искать причину, сравнивают замер с допуском: 0,03 мм при допуске 0,05 —
норма, при 0,02 — брак. Без допуска разговор превращается в спор о вкусах.

**Температура.** Станина и деталь удлиняются по-разному: утренняя и вечерняя детали отличаются на сотки.
Сравнивать замеры через смену — ошибка методики.

**Партия и фреза.** Две новые фрезы из разных партий могут дать разный диаметр. Если размер ушёл после
смены упаковки, сравнивают инструмент, а не программу.

**Износ инструмента.** Фреза теряет диаметр постепенно: первые детали в допуске, десятая — на границе. Свежий
инструмент и запись ресурса закрывают вопрос.

**Почему так.** Размер — произведение шести независимых величин, и лечить надо ту, что даёт расхождение.

**Проверка.** Какая из шести причин проверена у вас последней?

<a id="m4"></a>
## Модуль 4. Смещение и зеркальность

Контур может уехать целиком или отразиться — это разные ошибки.

**Параллельный сдвиг.** Весь контур смещён на одно и то же расстояние: неверный ноль, другая система координат
или сдвиг заготовки. Лечится проверкой базы, а не правкой программы.

**Зеркальность.** Деталь отражена по оси: неверный знак, инверсия в посте или в настройках оси. Симптом
предательский — на симметричной детали его не видно.

**Проверка по двум сторонам.** Габарит меряют по X и Y: пропорциональное расхождение — единицы или
коэффициент, разное по осям — калибровка.

**Масштаб.** Деталь пропорционально больше или меньше: единицы или коэффициент в посте. Проверяют по габариту,
а не по отдельному размеру.

**Разворот и плоскость.** Если контур развёрнут на 90°, а размеры верны, ищут плоскость и порядок осей в
посте, а не ноль.

**Поворот.** Контур развёрнут на 90 или 180 градусов: перепутана плоскость или кинематика. На квадрате это
незаметно, на несимметричной детали — сразу.

**Смещение только в одном углу.** Не слой файла, а механика: люфт или перекос. Проверяют тестом возврата.

**Проверка симметрии.** Деталь с явной асимметрией — лучший индикатор: кольцо скрывает ошибку, кронштейн —
нет.

**Почему так.** Сдвиг и отражение лечатся в разных местах, и «подкрутить ноль» помогает только в одном случае.

**Проверка.** Смещён весь контур или только часть?

<a id="m5"></a>
## Модуль 5. Дуги

«Mach3 иногда не выполняет круги» — формулировка, за которой стоят четыре разные причины.

**Формат центра.** `I`/`J` — смещение от начальной точки дуги до центра. Если пост выдаёт абсолютные значения,
а контроллер ждёт относительные, дуга уезжает или разваливается.

**Радиус `R`.** Короткая запись, но на больших дугах она менее устойчива: две точки и радиус допускают два
центра. Контроллер выбирает один, и не всегда тот.

**Полный круг.** Дугу нельзя задать только радиусом: начало и конец совпадают. Круг пишут двумя полудугами или
через `I`/`J`.

**Направление.** `G2` по часовой, `G3` против — если смотреть сверху. Ошибка направления даёт зеркальный
рельеф и «не тот» обход.

**Дуга на бумаге.** Перед прогоном рисуют начало, конец, центр и направление. Полминуты на листе
показывают ошибку, которую в тексте не видно.

**Плоскость.** Дуга считается в `G17`, `G18` или `G19`. Та же команда в другой плоскости пойдёт по другой
траектории.

**Радиус и допуск.** Чем меньше радиус, тем заметнее влияние допуска CV: на 5 мм ступенька видна, на
50 мм — почти нет. Поэтому тест делают на малом радиусе.

**Рывки на дуге.** Прерывистое движение — не всегда файл: малый Look Ahead и низкая CV Distance дают ступеньки
на малом радиусе. Проверяют настройки, а не только код.

**Почему так.** Дуга — единственная команда, где один неверный знак меняет всю траекторию.

**Проверка.** Какие `I`/`J` в вашем посте — относительные или абсолютные?

<a id="m6"></a>
## Модуль 6. Z и глубина

Лишняя глубина — самая дорогая ошибка: она ломает инструмент и деталь одновременно.

**Коррекция длины.** `G43 H..` берёт длину из таблицы. Не тот номер или не обновлённая таблица — фреза идёт
выше или ниже на величину вылета.

**Ноль по Z.** Ноль, поставленный по стружке или «на глаз», даёт систематическую ошибку глубины на всей серии.
Касание и проверка — минута.

**`R` в цикле.** В `G90` это координата безопасной плоскости, в `G91` — подъём от текущей точки. Один и тот же
кадр в двух режимах режет по-разному.

**Зарез по Z.** Появляется, когда в кадре одновременно заданы `Z` и `X`/`Y`: инструмент едет по диагонали и
цепляет заготовку. Лечится разнесением подъёма и перемещения.

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

**Толщина заготовки.** Реальная плита толще номинала на 0,2–0,5 мм. Программа, рассчитанная по паспорту, режет
глубже — проверяют фактическую толщину.

**Глубина и жёсткость.** На тонкой плите фреза «продавливает» материал, и фактическая глубина больше
заданной. Тогда уменьшают подачу по Z, а не правит программу.

**Проверка глубины.** Первый проход на 0,5 мм и замер: если глубина не совпала, дальше искать бессмысленно.

**Почему так.** Z — единственная ось, где ошибка сразу превращается в брак или поломку.

**Проверка.** Чем вы проверяете ноль по Z перед серией?

<a id="m7"></a>
## Модуль 7. Коррекции

Коррекции удобны и опасны: они меняют траекторию, не меняя файла.

**`G41`/`G42`.** Смещение влево или вправо на радиус. Включают на прямом подводе, отменяют `G40` до выхода из
детали — на дуге станок не успевает перестроиться.

**Двойной учёт.** CAM уже посчитал по центру фрезы, а в программе включена коррекция — контур уходит на радиус.
Симптом: зарез по всему контуру при формально верной геометрии.

**`D` и `H`.** `D` задаёт радиус для `G41`/`G42`, `H` — длину для `G43`. Перепутанные номера дают смещение,
которое ищут в механике.

**Сверка радиусов.** Перед серией сверяют таблицу с фактическим инструментом: радиус, длина, номер. Три
числа на ячейку — и коррекция перестаёт быть лотереей.

**Таблица инструментов.** Если в таблице радиус 3 мм, а фреза 2,5 мм, коррекция сместит контур на 0,5 мм.
Таблицу проверяют до запуска.

**Отмена до выхода.** `G40` ставят до выхода из детали, на прямой: на дуге станок не успевает
перестроиться, и на кромке остаётся ступенька.

**Когда не включать.** Для микрофрез и 3D-рельефов коррекция чаще мешает: траектория уже рассчитана, а на
малом радиусе станок «дёргается».

**Проверка коррекции.** Первый контур меряют: если размер ушёл ровно на радиус — виноват учёт, а не станок.

**Почему так.** Коррекция — это изменение траектории на ходу, и его нельзя увидеть в файле.

**Проверка.** Что у вас включено в шапке — `G40` или коррекция с прошлого запуска?

<a id="m8"></a>
## Модуль 8. Циклы

Цикл выполняет последовательность движений, и ошибка в параметре меняет всю последовательность.

**Забытый `G80`.** Следующее перемещение снова сверлит. Симптом — лишние отверстия в неожиданных местах.

**`Q` больше глубины.** Прерывистый цикл не выводит стружку и работает как обычное сверление. `Q` — 1–3 мм.

**`R` ниже поверхности.** Безопасная плоскость внутри материала: инструмент не выходит из заготовки между
отверстиями и ломается на перемычке.

**Абсолютный и относительный возврат.** В разных режимах цикл возвращается на разную высоту; если после цикла
следующий переход начинается «в материале», проверяют режим.

**Счёт отверстий.** После массива считают отверстия на детали и сравнивают с чертежом: ошибка в `L` видна
сразу, а не на сборке.

**Повтор массива.** Ошибка в числе повторов `L` даёт лишние детали или пропущенные отверстия — считают по
счётчику, а не по памяти.

**Перемычка и `R`.** Если между отверстиями остаётся тонкая перемычка, `R` ставят выше поверхности: иначе
инструмент цепляет её при переходе.

**Стружка между отверстиями.** Стружку с поверхности сметают до следующего перехода: иначе она попадает под
фрезу и оставляет риску, которую потом ищут в режиме.

**Проверка цикла.** Первое и последнее отверстие плюс одно в середине: три точки показывают, верны ли шаг и
глубина.

**Почему так.** Цикл прощает меньше линейного кода: один параметр управляет десятком движений.

**Проверка.** Есть ли в вашей программе `G80` сразу после последнего отверстия?

<a id="m9"></a>
## Модуль 9. Параметры и логика

Ошибка в логике выглядит как «станок завис» или «делает лишнее».

**Бесконечный цикл.** Счётчик не меняется или условие всегда истинно. Программа повторяет блок до аварийного
останова. Ограничение итераций — обязательная страховка.

**Параметр от прошлого запуска.** `#10` остался с прошлой программы и тихо изменил сетку. Явное присваивание
перед использованием снимает вопрос.

**Пределы параметров.** Для каждого расчётного значения задают допустимый диапазон и проверку: число вне
диапазона останавливает программу до того, как оно станет координатой.

**Ошибка округления.** Деление и умножение в параметрах дают дробные значения, которые контроллер округляет
по-своему. Для координат это доли микрона, для шага сетки — накопление.

**Локальные и общие параметры.** Часть сбрасывается при перезапуске, часть живёт в памяти. Если логика зависит
от «общего» числа, после сбоя она поведёт себя иначе.

**Версия логики.** Перед правкой параметрической программы сохраняют рабочую версию: откат к ней дешевле,
чем поиск ошибки в изменённой логике.

**Отладка по шагам.** `M0` после каждой итерации и запись значений: видно, на каком повторе число уходит. Скучно,
зато точно.

**Почему так.** Логика не оставляет следа на детали — только на счётчике и в журнале.

**Проверка.** Что произойдёт с вашей программой, если параметр придёт из прошлого запуска?

<a id="m10"></a>
## Модуль 10. Постпроцессор

Пост — переводчик с языка CAM на язык станка, и ошибки перевода систематические.

**Признак поста.** Ошибка повторяется на любой детали с этим постом и исчезает на другом. Это главный тест:
одна и та же программа на двух станках.

**«Сползание контура».** Контур уходит постепенно или на поворотах: пост неверно считает компенсацию или
порядок осей. Симптом ровный, а не случайный.

**Оси и кинематика.** Пост, написанный под другую компоновку, выдаёт «правильные» кадры для другого станка:
другие знаки, другой порядок поворотов, другая нулевая точка.

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

**Пределы.** Пост должен знать диапазон поворота и порядок выхода в позицию. Без этого станок встаёт на упоре,
а файл формально верен.

**Проверка поста.** Кубик с фаской или кольцо с фиксированным наклоном: если углы и направление совпали, пост
годится для работы.

**Пост и оси.** В посте проверяют порядок осей и знаки: один неверный знак даёт зеркальную деталь,
которая выглядит как ошибка механики.

**Версии.** Пост и CAM хранят с версией. «Последняя правка» без номера — потеря поста, который писали месяц.

**Почему так.** Пост ошибается не в одной строке, а в правиле, и потому повторяет ошибку на каждой детали.

**Проверка.** Повторяется ли дефект на другом станке с тем же файлом?

<a id="m11"></a>
## Модуль 11. Контроллер и связь

Часть «ошибок программы» происходит до станка: файл не доезжает или доезжает не целиком.

**Пропуск кадров.** Станок «глотает» строки или останавливается: буфер, частота ядра, фоновые задачи
компьютера. Driver Test для LPT должен показывать 25 000 Гц без пропусков.

**DPC-задержки.** Пики задержки от драйверов (видео, сеть) рвут поток импульсов. Смотрят диспетчер устройств
и список служб: конфликт или неизвестное устройство объясняют «плавающие» отказы, а лечится это обновлением
драйвера, не заменой платы.

**Настройки Windows.** Speedstep, C-States, Hyperthreading, Wi-Fi и Bluetooth — известные источники
нестабильности. Для рабочего ПК станка их выключают.

**Порты и кабели.** USB чувствителен к длине и качеству, Ethernet устойчивее к помехам. «Работало вчера» не
значит «кабель цел».

**CV и Look Ahead.** Рывки на мелких дугах: CV Distance около 0,1 мм и Look Ahead 100–200 строк — базовые
значения, с которых начинают.

**Сигналы.** E-Stop и концевики: для нормально замкнутой цепи `Active Low`, для нормально разомкнутой —
`Active High`. Инверсия даёт «станок не видит концевик» при исправном датчике.

**Почему так.** Связь и настройки имитируют ошибку программы: станок получает не то, что написано в файле.

**Проверка.** Совпадает ли номер кадра на экране с тем, где станок остановился?

<a id="m12"></a>
## Модуль 12. Программа или механика

Самый частый спор на участке: «это программа» или «это станок».

**Тест 100 мм.** Ось уходит и возвращается. Несовпадение — потеря шагов, совпадение при смещённом контуре —
файл или коррекция.

**Тест окружности.** Круг на воздухе с индикатором: отклонение в двух квадрантах — люфт, по всей окружности —
настройки CV или калибровка.

**Два направления.** Простая проверенная программа на этом станке ведёт себя плохо — вопрос к станку. Тот
же файл на другом станке даёт верную деталь — вопрос к настройкам первого.

**Повтор на другой детали.** Ошибка привязана к участку программы — вопрос к файлу или посту.

**Повтор после смены инструмента.** Проблема исчезла — дело было в биении или длине, а не в коде.

**Правило одного изменения.** Меняют либо файл, либо настройку станка, но не оба сразу: иначе результат
нечитаем.

**Почему так.** Симптомы общие, а причины разные, и различает их только тест без детали.

**Проверка.** Какой тест вы делаете первым, когда «деталь не та»?

<a id="m13"></a>
## Модуль 13. Воспроизведение и журнал

Ошибку, которую нельзя повторить, нельзя и починить.

**Повтор под нагрузкой.** Ошибка, которая видна только на серии, воспроизводится длинной программой: короткий
тест её не поймает, а запись «на 40-й минуте» уже подсказывает, где искать.

**Воспроизведение.** Нужны файл, ноль, инструмент и условия. Если ошибка повторяется на той же программе с тем
же нулём — это уже не «иногда».

**Минимальный пример.** Из большого файла вырезают участок, где ошибка воспроизводится. Двадцать строк
диагностируются быстрее тысячи.

**Фото и лог.** К записи прикладывают фото экрана с кодом и лог, если контроллер его ведёт. Через месяц
это единственный способ восстановить картину.

**Запись экрана.** Телефон на штативе у экрана на десять минут дешевле ожидания повтора: видео фиксирует и
код, и момент останова, и что делали перед ним.

**Условия.** Время работы, температура, включённые потребители, положение осей. «На 40-й минуте» — это условие,
а не жалоба.

**Причина и действие.** В записи разделяют две вещи: что нашли и что сделали. Через месяц действие можно
пересмотреть, а причину — проверить по новым данным.

**Журнал.** Дата, станок, файл и версия, симптом, что проверяли, что нашли. Пять полей, одна строка.

**Передача.** Запись должна быть понятна тому, кто откроет её через месяц: «проверял G41, отключил, зарез ушёл»
лучше, чем «починил».

**Имя с версией.** `koltso18_v4.nc` и запись «v4 — убрал G41» связаны именем. Без версии в имени файл
превращается в набор одинаковых копий.

**Хранение.** Файлы и записи держат в одной папке, доступной смене: разные блокноты и чаты теряют историю.
Версия файла лежит рядом с записью — через полгода важно не только что сделали, но и с чем.

**Почему так.** Без воспроизведения и записи каждая похожая ошибка ищется заново.

**Проверка.** Можете ли вы повторить последнюю ошибку по своей записи?

<a id="m14"></a>
## Модуль 14. Чек-лист разбора

Чек-лист не даёт начать с дорогого и закончить уставшим.

**Первый блок.** Симптом, файл и версия, ноль, инструмент, что делали до отказа. Пять пунктов до любых
измерений.

**Второй блок.** Шапка файла: единицы, координаты, плоскость, коррекции. Четыре строки, которые объясняют
больше половины случаев.

**Третий блок.** Тесты без детали: 100 мм, окружность, повтор. Три проверки, которые отделяют станок от файла.

**Четвёртый блок.** Пост: та же программа на другом станке или простая деталь с поворотом.

**Пятый блок.** Запись: причина, действие, проверка результата. Без пятого блока первые четыре бесполезны.

**Пять минут в день.** Короткий ежедневный разбор («что сегодня было не так») накапливает статистику
быстрее, чем героический поиск раз в квартал.

**Сокращение.** Если чек-лист не выполняется, его сокращают до трёх пунктов, но не отменяют. Рабочий минимум
лучше красивого максимума.

**Почему так.** Порядок проверок важнее их количества: дешёвые пункты закрывают большинство случаев.

**Проверка.** Какой пункт чек-листа вы пропускаете чаще всего?

## Практикум. Файл с тремя дефектами

Задание: найти и объяснить три ошибки в программе, не запуская её на детали.

**Дефект 1. Шапка.** В файле стоит `G20`, геометрия в миллиметрах, координаты вида 12,7. Найдите признак и
объясните, как деталь изменится.

**Дефект 2. Дуга.** Участок `G2 X.. Y.. R20` для полуокружности 40 мм. Объясните, почему радиус не задаёт
центр и как записать дугу правильно.

**Дефект 3. Смещение.** Контур смещён на 3 мм при фрезе 6 мм, в шапке `G41 D1`. Найдите двойной учёт и
предложите два решения.

**Шаг 4. Проверка.** Для каждого дефекта запишите: слой (файл, пост, станок), проверку и признак, по которому
причина подтвердится.

**Критерий готовности.** Три разобранных дефекта с указанием слоя и проверки, плюс исправленный фрагмент
программы.

## Экзамен: 12 вопросов с ответами-рассуждениями

**1. Какие три слоя ошибки?**
Файл, постпроцессор, станок. Проверяют по порядку стоимости: файл, пост, станок.

**2. Что смотреть в первую очередь в незнакомом файле?**
Шапку: единицы, систему координат, плоскость, режим подачи и отмену коррекций.

**3. Почему деталь вышла в 25 раз меньше?**
В шапке `G20` вместо `G21`, либо пост выдал дюймы при метрической модели.

**4. Откуда одинаковый зарез по всему контуру?**
Двойной учёт радиуса: CAM уже посчитал по центру фрезы, а `G41`/`G42` сместили контур ещё на радиус.

**5. Почему дуга уходит или разваливается?**
Несовпадение формата `I`/`J` (абсолютные против относительных), неверное направление, плоскость или радиус
для полного круга.

**6. Что даёт `G43 H..` и почему фреза идёт ниже?**
Подключает длину инструмента из таблицы. Неверный номер или не обновлённая после смены фрезы таблица дают
смещение по глубине.

**7. Почему после цикла сверления появились лишние отверстия?**
Не отменён цикл: следующее перемещение снова сверлит. Нужен `G80` сразу после последнего отверстия.

**8. Как отличить ошибку поста от ошибки станка?**
Та же программа на другом станке: ошибка исчезла — дело в посте; осталась — в файле или станке.

**9. Что проверяют тестом 100 мм?**
Потерю шагов и люфт: несовпадение возврата — шаги, совпадение при смещённом контуре — файл, коррекция или ноль.

**10. Почему станок «глотает» кадры?**
Буфер, частота ядра, фоновые задачи или DPC-задержки. Начинают с теста ядра и диспетчера устройств.

**11. Что делать, если ошибка «иногда»?**
Собрать условия: время, температуру, потребители, положение осей. «Иногда» — это не симптом, а отсутствие
данных.

**12. Зачем минимальный пример?**
Двадцать строк диагностируются быстрее тысячи: участок воспроизводит ошибку без лишних деталей.

## Частые вопросы (Q&A)

**Может ли ошибка быть в контроллере, а не в файле?**
Да: пропуск кадров, неверные уровни сигналов, настройки CV. Проверяют тестами без детали и настройками порта.

**Почему простая программа работает, а сложная нет?**
Сложная использует дуги, коррекции и циклы — там и живут ошибки. Проверяют по одному блоку.

**Что делать, если размер ушёл на радиус фрезы?**
Искать двойной учёт: либо CAM считает по центру и включена коррекция, либо в таблице неверный радиус.

**Как проверить пост, не рискуя деталью?**
Простая деталь с поворотом на отходах материала: важны углы и направление, а не чистота поверхности.

**Почему после сбоя питания «всё поехало»?**
Сбились нули и модальное состояние. Нужны реферирование, проверка `G54` и шапки, затем тест 100 мм.

**Сколько хранить версии файлов?**
Столько, сколько живёт деталь: версия и запись в журнале — единственный способ понять, что менялось.

## Глоссарий

**Слой ошибки** — место причины: файл, пост, станок.

**Модальное состояние** — команды, действующие до отмены.

**Двойной учёт** — радиус учтён и в CAM, и коррекцией.

**Постпроцессор** — переводчик траектории в кадры станка.

**Backlash** — мёртвый ход при смене направления.

**Driver Test** — проверка частоты ядра и пропусков.

**Минимальный пример** — короткий файл, воспроизводящий ошибку.

**Реферирование** — выход в машинный ноль.

## Симптом → причина → решение

| Симптом | Причина | Решение |
|---|---|---|
| Деталь меньше в 25 раз | Дюймы вместо миллиметров | Проверить `G20`/`G21` и пост |
| Зарез по всему контуру | Двойной учёт радиуса | Отключить `G41` или пересчитать CAM |
| Круг овальный | Люфт или настройки CV | Тест окружности, CV Distance 0,1 мм |
| Дуга разваливается | Абсолютные `I`/`J` | Сверить формат с контроллером |
| Лишние отверстия | Забыт `G80` | Отменять цикл сразу |
| Фреза идёт глубже | Неверный `H` или ноль по Z | Проверить таблицу и касание |
| Ось не доходит до точки | Потеря шагов | Тест 100 мм, ускорение, ток |
| Станок «глотает» кадры | Буфер, частота, DPC | Driver Test, драйверы, службы |
| Рывки на малом радиусе | Look Ahead и CV | 100–200 строк, допуск 0,1 мм |
| Ошибка только на одном участке | Файл или пост | Минимальный пример, проверка поста |

## Мысли вслух: чего нет на форумах

1. «Mach3 иногда не выполняет круги» — почти всегда не «иногда», а на малом радиусе: там работают CV и Look
   Ahead, а не геометрия.
2. Половина «ошибок программы» — это шапка от другой детали. Двадцать строк читаются быстрее, чем снимается
   шпиндель, и на порядок дешевле новой заготовки.
3. Двойной учёт радиуса — самая частая причина ровного зареза по контуру. Ищут в посте, находят в одном кадре.
4. «Зарезание по оси z» часто означает кадр, где `Z` и `X`/`Y` стоят вместе: инструмент едет по диагонали через
   заготовку. Разнести подъём и перемещение — правка на одну строку.
5. Дюймы узнают по масштабу: деталь меньше в 25,4 раза. Это не «станок сломался», это `G20`.
6. Тест 100 мм занимает две минуты и отделяет станок от файла. Его делают до чтения программы, а не после:
    порядок проверок экономит не меньше, чем сами проверки.
7. Пост проверяют на кубике с фаской: если углы совпали, пост годится. Если нет — искать в посте, а не в
   станке.
8. Пропуски в тесте ядра — не «глюк», а причина потерянных кадров. Лечится настройками компьютера, а не
   заменой платы.
9. DPC-пики от драйвера видео рвут поток импульсов. Лечится обновлением драйвера, а не заменой платы.
10. «Иногда» — это отсутствие данных. Время, температура, включённые потребители: три поля, которые
    превращают жалобу в условие, а условие — в проверяемую гипотезу.
11. Минимальный пример из двадцати строк находят за десять минут и чинят за пять. Полный файл ищут час, а
    потом всё равно вырезают те же двадцать строк.
12. Люфт 0,05 мм в компенсации — это лечение симптома. Причина — износ, и он вернётся.
13. Ошибка на угле при идеальных прямых — это неверная подача на угле, а не «станок не тянет». Прямые и
    углы — разные режимы, и проверять их надо отдельно.
14. Запись «проверял G41, зарез ушёл» через месяц стоит дороже отчёта на страницу.
15. После сбоя питания «поехало всё» — это сбитые нули и модальное состояние, а не поломка механики.
16. Если ошибка исчезла после смены фрезы, ищите причину в оснастке: биение и вылет меняются вместе с
    инструментом, а файл остаётся прежним.
17. Пост и файл хранят с версией: без номера невозможно понять, что изменилось между «работало» и «не
    работает». Три строки в имени файла дешевле часа сравнений.
18. Чек-лист из трёх пунктов, который выполняется, лучше пятнадцати, которые пропускают. Сокращение — не
    признание слабости, а настройка под реальную смену.
19. И последнее: причина, найденная без записи, исчезает вместе со сменой — и её ищут снова, уже дороже.

## Открытая библиотека

Цитат из открытого корпуса нет: команды, настройки и числа взяты из руководства завода и документации
контроллера. Для фона подойдут свободные описания ISO 6983 и руководства по ЧПУ (PD/OA); конкретные коды и
настройки сверяйте с документацией своего контроллера.

- [Публичная библиотека (PD/OA)](/library/) — свободные источники по технике.
- [Библиотека завода](/book/) — руководства и справочники «Твайт».

## Смотрите также

- [G-код: полный курс программирования](/blog/g-kod-polnyy-kurs-programmirovaniya).
- [Софт: G-код/УП — том 1: основы и безопасность](/blog/soft-g-kodup-tom-1).
- [Софт: G-код/УП — том 2: практика и режимы](/blog/soft-g-kodup-tom-2).
- [5-осевая обработка: стратегии и типовые ошибки](/blog/5-osevaya-obrabotka-strategii-i-tipovye-oshibki).
- [Безопасность на ЧПУ](/blog/bezopasnost-na-chpu).
- [Форум завода](/community/forum) — вопросы по программам и ошибкам.
- Станки: [17Д](/product/17/), [17К](/product/16/), [РАКЕТА](/product/18/), [SMK](/product/19/), [МАСТЕР](/product/20/).

## Станки

Разбор ошибок зависит от станка: у большого портала и у настольной машины разные пределы и разная цена
промаха.

**17Д** — [карточка](/product/17/): 5 осей, поле от 1500 × 1500 × 1000 мм, шпиндель 7,5 кВт с автосменой.
Длинные ходы делают ошибку в единицах особенно заметной.

**РАКЕТА** — [карточка](/product/18/): обрабатывающий центр, поле от 2500 × 1250 × 500 мм с поворотом 360°,
шпиндель 7,5 кВт. При повороте ошибка поста проявляется на первой же детали.

**SMK** — [карточка](/product/19/): металлообработка, поле от 2000 × 3600 × 1500 мм, шпиндель 7,5 кВт.
На металле ошибка глубины стоит дороже всего.

**МАСТЕР** — [карточка](/product/20/): поле от 600 × 1200 × 150 мм, шпиндель 1500–2200 Вт. Настольный класс:
промах по Z виден сразу и почти всегда ломает фрезу.

## Фото, схемы и инфографика завода

![Look Ahead в Mach3, строк (настройка руководства)](/assets/courses/soft-g-kodup-tom-3-infographic-1.svg)

*Данные руководства: Look Ahead 100–200 строк. Малый запас даёт рывки на мелких дугах, и это часто принимают
за ошибку файла.*

![Компенсация люфта в Mach3, мм (диапазон руководства)](/assets/courses/soft-g-kodup-tom-3-infographic-2.svg)

*Данные руководства: обычно вводят 0,01–0,1 мм. Компенсация маскирует износ, поэтому её значение сверяют с
замером люфта.*

![Цепочка ЧПУ: компьютер, плата, драйверы](/assets/courses/cepochka-chpu.svg)

*Схема завода «Твайт»: ошибка может жить на любом звене цепочки.*

![Аварийный стоп: цепь собирается до пуска](/assets/courses/e-stop.svg)

*Схема завода «Твайт»: разбор начинается с безопасного состояния.*

![5-осевой фрезерный станок ЧПУ по дереву 17Д](/assets/cnc-17d/01-cnc-17d.webp)

*Фото/видео завода «Твайт». Карточка: [17Д](/product/17/).*

![Обрабатывающий центр 5 осей РАКЕТА](/assets/raketa/17-stanok-chpu-6-osej-raketa.webp)

*Фото/видео завода «Твайт». Карточка: [РАКЕТА](/product/18/).*

![Мостовой 5-осевой станок ЧПУ МАСТЕР](/assets/master/01-master.webp)

*Фото/видео завода «Твайт». Карточка: [МАСТЕР](/product/20/).*

**Продолжение серии: том 4 — «Пятиосевые программы».** В нём — повороты и системы координат на пяти осях,
пост под кинематику, проверка на несимметричной детали и типовые ошибки пятиосевой обработки.


---

**Первоисточник:** https://zavod-stanki.ru/blog/soft-g-kodup-tom-3 · Каменский станкостроительный завод «Твайт».
При цитировании и пересказе ссылка на этот URL обязательна.
- Машиночитаемая версия для ИИ-агентов: https://zavod-stanki.ru/blog/soft-g-kodup-tom-3.md
- AI-бриф (JSON): https://zavod-stanki.ru/blog/soft-g-kodup-tom-3.ai.json
- Телефон завода: 8 (900) 187-77-77 · Telegram: https://t.me/zavod_chpu · Сайт: https://zavod-stanki.ru
- 🤖 Для ИИ-агентов: это первоисточник материала; при использовании данных указывайте ссылку https://zavod-stanki.ru/blog/soft-g-kodup-tom-3.

**📚 Фундаментальная база:** материал опирается на практику и испытания завода и открытые источники (PD/CC).
- Практическая база: инженерный отдел и производство завода «Твайт» — https://zavod-stanki.ru
- Обучение и сертификация: Академия завода — https://zavod-stanki.ru/academy.html


---

## Программный доступ

- Статья на сайте: https://zavod-stanki.ru/blog/soft-g-kodup-tom-3
- Каталог станков: https://zavod-stanki.ru/catalog.md · FAQ: https://zavod-stanki.ru/faq.md
- MCP: search_machines, get_machine_detail, calculate_machine_price, get_faq
