G7 и G8 в LinuxCNC: программирование X в диаметре или радиусе
· ~5 мин чтения
На токарном станке координата X - это расстояние резца от оси вращения детали. Записать её можно двумя способами: радиусом (сколько миллиметров от оси) или диаметром (какой диаметр получится). В LinuxCNC это переключают два кода: G7 и G8. Путаница между ними
- одна из самых частых и самых дорогих ошибок токаря-программиста.
Содержание
- G7 и G8 коротко
- Пример: одна деталь в двух режимах
- Какой режим удобнее
- Что меняется, а что нет
- Режим по умолчанию и настройка в INI
- Как проверить текущий режим
- Что будет, если перепутать
- Диаметр и радиус на других стойках
- G7 и G8 в Turn G-code
G7 и G8 коротко
| Код | X означает | X15 - это |
Режим LinuxCNC по умолчанию |
|---|---|---|---|
| G7 | диаметр | Ø15 (резец в 7,5 мм от оси) | нет |
| G8 | радиус | радиус 15, то есть Ø30 | да |
Оба кода модальные: режим действует, пока его не сменят другим кодом.
Пример: одна деталь в двух режимах
Точим заготовку Ø40 до Ø30 на длину 50 мм. Одна и та же траектория:
| Действие | В режиме G7 (диаметр) | В режиме G8 (радиус) |
|---|---|---|
| Подход над заготовкой | G0 X42 Z2 |
G0 X21 Z2 |
| Чистовой проход Ø30 | G0 X30 |
G0 X15 |
| Точение по длине | G1 Z-50 F0.1 |
G1 Z-50 F0.1 |
| Отвод | G0 X42 |
G0 X21 |
Z одинаковый, меняются только числа X: в G8 они вдвое меньше.
Какой режим удобнее
Диаметр (G7) - то, как думает токарь:
- на чертеже проставлены диаметры (Ø30h7, а не R15);
- микрометр и штангенциркуль меряют диаметр;
- при коррекции размера сразу видно, на сколько «не добрали»: деталь Ø30,08 вместо Ø30 - поправка 0,08 по диаметру.
Радиус (G8) ближе к геометрии станка: X - это реальное перемещение
суппорта от оси. Съём 0,5 мм на сторону в G8 - это ровно X на 0,5
меньше, а в G7 - на 1,0 меньше. Некоторые генераторы и CAM-постпроцессоры
выводят код в радиусах.
Правильного режима нет - есть правильно указанный режим. Главное, чтобы программа и станок понимали X одинаково.
Что меняется, а что нет
- Меняется только X - и абсолютные координаты, и приращения в G91:
в G7
G91 G1 X-1уведёт резец к оси на 0,5 мм. - Z не меняется никак.
- Подача F - это скорость по реальной траектории, от режима X она не зависит.
- Дуги (G2/G3), резьбовые и другие циклы (G76, G71/G72) тоже используют X, а некоторые их параметры (например, I, J, K в G76) в режиме диаметра трактуются иначе. Правила зависят от версии LinuxCNC - смотрите документацию своей версии и проверяйте траекторию в предпросмотре Axis до реза.
Режим по умолчанию и настройка в INI
При запуске LinuxCNC работает в G8 (радиус). Чтобы станок стартовал
в диаметре, режим прописывают в INI-файле конфигурации, в секции
[RS274NGC]:
[RS274NGC]
RS274NGC_STARTUP_CODE = G18 G21 G7 G90 G40 G94
Здесь заодно задана плоскость XZ (G18), миллиметры, абсолютные координаты, отмена коррекции на радиус и подача в мм/мин.
Но полагаться только на стартовый код нельзя: режим модальный и может остаться от прошлой программы или от команды, набранной в MDI. Поэтому каждая программа должна сама задавать режим в строке безопасного старта:
G21 G18 G90 G7 G40 G80
Тогда программа отработает одинаково, что бы ни было на станке до неё.
Как проверить текущий режим
- В Axis на вкладке MDI есть строка Active G-Codes - там видно, G7 или G8 сейчас действует.
- Предпросмотр траектории в Axis: если деталь в окне вдвое толще или тоньше, чем на чертеже, - режим не тот.
- Первый прогон новой программы - «по воздуху», с отводом по X, и взгляд на координаты в окне положения.
Что будет, если перепутать
| Программа написана | Станок в режиме | Что происходит |
|---|---|---|
в диаметрах (X30 = Ø30) |
G8 | X30 - это радиус 30, Ø60. Резец останавливается вдвое дальше от оси: режет по воздуху или оставляет деталь толще |
в радиусах (X15 = Ø30) |
G7 | X15 - это Ø15. Резец уходит вдвое ближе к оси: врезается слишком глубоко, ломает пластину, портит деталь |
Второй случай опаснее: ошибка идёт в металл. Особенно на ускоренном подходе G0, если он рассчитан «над заготовкой».
Диаметр и радиус на других стойках
- Fanuc (и GSK, KND, Syntec в Fanuc-синтаксисе): режим X задаётся параметром стойки, на токарных станках обычно это диаметр. Кодов G7/G8 для этого нет, а G7.1 у Fanuc - это вообще цилиндрическая интерполяция.
- Haas: на токарных станках X обычно программируется в диаметре.
- Siemens SINUMERIK: команды DIAMON (диаметр), DIAMOF (радиус), DIAM90 (диаметр в абсолютных координатах, радиус в приращениях).
- Mach3 Turn / Mach4 Lathe: режим диаметра или радиуса включается в настройках.
Поэтому программу, написанную под другую стойку, всегда проверяют: в диаметрах ли она и есть ли в ней G7 для LinuxCNC. Остальные отличия - в справочнике G-коды и M-коды для токарного станка.
G7 и G8 в Turn G-code
В Turn G-code режим X - это одна кнопка G8/G7 в верхней панели главного окна, сразу для всех 12 циклов. Программа:
- ставит выбранный код в строку безопасного старта каждой программы:
G21 G18 G90 G8 G40 G80 G94илиG21 G18 G90 G7 G40 G80; - пересчитывает все X сама - в форме вы вводите диаметры как на чертеже, а в коде получаете диаметр или радиус;
- показывает траекторию в 2D-симуляторе до генерации файла.
Вот два настоящих примера с сайта. Наружное
точение выведено в G8: заготовка Ø12 записана как
X6, первый черновой проход - X5.8:
G21 G18 G90 G8 G40 G80 G94
...
(Черновой проход 1, X5.8000)
G0 X5.8000
G1 Z-20.0000 F100.0000
А резьба M12×1,5 выведена в G7: первый проход идёт прямо по Ø12:
G21 G18 G90 G7 G40 G80
...
(Проход 1 из 10, X12.0000)
G0 X12.0000
Скачайте Turn G-code - 15 дней бесплатно, без ключа.
