1. Конвенції

Умовні позначення, що використовуються в цьому розділі

У прототипах G-коду дефіс (-) означає дійсне значення, а (<>) позначає необов’язковий елемент.

Якщо в прототипі написано «L-», то «-» часто називатиметься «числом L» і так далі для будь-якої іншої літери.

У прототипах G-коду слово «осі» означає будь-яку вісь, визначену у вашій конфігурації.

Необов’язкове значення буде записано так: <L- >.

Реальна вартість може бути:

  • Явне число, «4»

  • Вираз «[2+2]»

  • Значення параметра «#88»

  • Значення унарної функції, acos[0]

У більшості випадків, якщо вказано слова «вісь» (будь-яке або всі з «X Y Z A B C U V W»), вони вказують точку призначення.

Номери осей вказані в поточній активній системі координат, якщо явно не зазначено, що вони знаходяться в абсолютній системі координат.

Якщо слова осей необов’язкові, будь-які пропущені осі збережуть своє початкове значення.

Будь-які елементи в прототипах G-коду, які явно не описані як додаткові, є обов’язковими.

Значення, що йдуть за літерами, часто подаються у вигляді явних чисел. Якщо не вказано інше, явні числа можуть бути дійсними значеннями. Наприклад, «G10 L2» можна також записати як «G[2*5] L[1+1]». Якщо значення параметра 100 дорівнює 2, «G10 L#100» також матиме те саме значення.

Якщо в прототипі написано «L-», то «-» часто називатиметься «числом L» і так далі для будь-якої іншої літери.

2. Таблиця швидкого довідника G-коду

Код Опис

G0

Скоординований рух з високою швидкістю

G1

Скоординований рух зі швидкістю подачі

G2 G3

Скоординований гвинтовий рух при швидкості подачі

G4

Залишатися

G5

Кубічний сплайн

G5.1

Квадратний B-сплайн

G5.2

NURBS, додати контрольну точку

G7

Режим діаметра (токарний верстат)

G8

Радіусний режим (токарний верстат)

G10 L0

Перезавантажити дані таблиці інструментів

G10 L1

Встановлення запису в таблиці інструментів

G10 L10

Встановити таблицю інструментів, розраховано, заготовка

G10 L11

Встановити таблицю інструментів, розраховано, пристосування

G10 L2

Налаштування початку системи координат

G10 L20

Розраховано налаштування початку системи координат

G17 - G19.1

Вибір площини

G20 G21

Встановити одиниці вимірювання

G28 - G28.1

Перейти до попередньо визначеної позиції

G30 - G30.1

Перейти до попередньо визначеної позиції

G33

Синхронізований рух шпинделя

G33.1

Жорстке нарізання різьби

G38.2 - G38.5

Зондування

G40

Скасувати компенсацію різця

G41 G42

Компенсація різця

G41.1 G42.1

Динамічна компенсація різця

G43

Використовувати зміщення довжини інструменту з таблиці інструментів

G43.1

Динамічне зміщення довжини інструменту

G43.2

Застосувати додаткове зміщення довжини інструмента

G49

Скасувати зміщення довжини інструмента

G52

Зміщення локальної системи координат

G53

Перемістити машинні координати

G54-G59.3

Виберіть систему координат (1 - 9)

G61

Режим точного шляху

G61.1

Режим точної зупинки

G64

Режим керування траєкторією з додатковим допуском

G70

Цикл фінішної обробки токарного верстата

G71-G72

Цикл чорнової обробки токарного верстата

G73

Цикл свердління зі стружколомленням

G74

Цикл нарізання різьби лівою рукою з затримкою

G76

Багатопрохідний цикл нарізання різьби (токарний верстат)

G80

Скасувати режими руху

G81

Цикл буріння

G82

Цикл свердління з витримкою

G83

Цикл свердління з відсіканням Peck

G84

Цикл нарізання різьби правою рукою з затримкою

G85

Цикл розточування, без витримки, вихідна подача

G86

Цикл нудного свердління, зупинка, швидкий вихід

G87

Цикл зворотного розточування (ще не реалізовано)

G88

Цикл розточування, зупинка, ручний вихід (ще не реалізовано)

G89

Цикл розточування, витримка, вихідна подача

G90 G91

Режим дистанції

G90.1 G91.1

Режим дугової відстані

G92

Зміщення системи координат

G92.1 G92.2

Скасувати зміщення G92

G92.3

Відновлення зміщень G92

G93 G94 G95

Режими подачі

G96 G97

Режим керування шпинделем, постійна поверхня в залежності від швидкості обертання (IPM або м/хв в залежності від об/хв)

G98 G99

Режим відведення по Z стандартному циклу

3. G0 Швидкий рух

G0 <axes>

Для швидкого руху запрограмуйте «осі G0», де всі слова осі є необов’язковими. «G0» є необов’язковим, якщо поточний режим руху є «G0». Це забезпечить скоординований рух до пункту призначення з максимальною швидкістю (або повільніше). «G0» зазвичай використовується як рух позиціонування.

3.1. Швидка швидкість

Параметр MAX_VELOCITY у розділі [TRAJ] файлу INI визначає максимальну швидкість швидкого переміщення. Максимальна швидкість швидкого переміщення може бути вищою за параметр MAX_VELOCITY окремих осей під час скоординованого переміщення. Максимальна швидкість швидкого переміщення може бути нижчою за параметр MAX_VELOCITY у розділі [TRAJ], якщо її обмежують параметр MAX_VELOCITY осі або обмеження траєкторії.

Приклад G0
G90 (встановлення режиму абсолютної відстані)
G0 X1 Y-2.3 (Швидке лінійне переміщення від поточного положення до X1 Y-2.3)
M2 (кінець програми)
  • Див. розділи G90 та M2 для отримання додаткової інформації.

Якщо корекція різця активна, рух відрізнятиметься від вищезазначеного; див. розділ Cutter Compensation.

Якщо G53 запрограмовано на тому ж рядку, рух також буде відрізнятися; див. розділ G53 для отримання додаткової інформації.

Шлях швидкого руху G0 може бути заокруглений при зміні напрямку та залежить від налаштувань trajectory control та максимального прискорення осей.

Це помилка, якщо:

  • Літера осі не має реального значення.

  • Використовується літера осі, яка не налаштована.

4. Лінійний рух G1

G1 axes

Для лінійного (прямолінійного) руху з запрограмованою feed rate (для різання або без нього) запрограмуйте «G1 осі», де всі слова осі є необов’язковими. «G1» є необов’язковим, якщо поточний режим руху є «G1». Це забезпечить скоординований рух до точки призначення з поточною швидкістю подачі (або повільніше).

Приклад G1
G90 (встановити режим абсолютної відстані)
G1 X1.2 Y-3 F10 (лінійний рух зі швидкістю подачі 10 від поточного положення до X1.2 Y-3)
Z-2.3 (лінійний рух з тією ж швидкістю подачі від поточного положення до Z-2.3)
Z1 F25 (лінійний рух зі швидкістю подачі 25 від поточного положення до Z1)
M2 (завершення програми)
  • Див. розділи G90 та F та M2 для отримання додаткової інформації.

Якщо корекція різця активна, рух відрізнятиметься від вищезазначеного; див. розділ Cutter Compensation.

Якщо G53 запрограмовано на тому ж рядку, рух також буде відрізнятися; див. розділ G53 для отримання додаткової інформації.

Це помилка, якщо:

  • Швидкість подачі не встановлена.

  • Літера осі не має реального значення.

  • Використана літера осі, яка не налаштована

5. G2, G3 Дуговий рух

Зміщення осей G2 або G3 (центральний формат)
Осі G2 або G3 R- (радіусний формат)
Зміщення G2 або G3|R- <P-> (повні кола)

Кругова або гвинтова дуга задається за допомогою G2 (дуга за годинниковою стрілкою) або G3 (дуга проти годинникової стрілки) при поточній feed rate. Напрямок (CW, CCW) визначається з позитивного кінця осі, навколо якої відбувається круговий рух.

Вісь кола або спіралі повинна бути паралельна осі X, Y або Z системи координат верстата. Вісь (або, що еквівалентно, площина, перпендикулярна до осі) вибирається за допомогою G17 (вісь Z, площина XY), G18 (вісь Y, площина XZ) або G19 (вісь X, площина YZ). Площини «17.1», «18.1» і «19.1» наразі не підтримуються. Якщо дуга є круговою, вона лежить у площині, паралельній до вибраної площини.

Щоб запрограмувати спіраль, включіть слово осі, перпендикулярне до площини дуги, наприклад, якщо в площині «G17», включіть слово «Z». Це призведе до переміщення осі «Z» до запрограмованого значення під час кругового руху «XY».

Щоб запрограмувати дугу, яка дає більше одного повного оберту, використовуйте слово «P», вказавши кількість повних обертів плюс запрограмовану дугу. Слово «P» повинно бути цілим числом. Якщо «P» не вказано, поведінка буде такою, ніби було вказано «P1», тобто буде виконано тільки один повний або частковий оберт. Наприклад, якщо дуга 180 градусів запрограмована з P2, результатом руху буде 1 1/2 обертів. Для кожного приросту P вище 1 до запрограмованої дуги додається додаткове повне коло. Підтримуються багатообертові гвинтові дуги, які забезпечують рух, корисний для фрезерування отворів або різьблення.

Warning
Якщо крок спіралі дуже малий (менший за naive CAM tolerance), спіраль може бути перетворена на пряму лінію. Bug #222

Якщо рядок коду утворює дугу і включає рух обертової осі, обертові осі обертаються з постійною швидкістю, так що обертовий рух починається і закінчується, коли починається і закінчується рух XYZ. Рядки такого типу майже ніколи не програмуються.

Якщо корекція різця активна, рух відрізнятиметься від вищезазначеного; див. розділ Cutter Compensation.

Центр дуги може бути абсолютним або відносним, як встановлено відповідно G90.1 або G91.1.

Для визначення дуги дозволено два формати: формат центру та формат радіуса.

Це помилка, якщо:

  • Швидкість подачі не встановлена.

  • Слово на літеру P не є цілим числом.

5.1. Дуги формату центру

Дуги центрального формату є точнішими, ніж дуги радіусного формату, і є кращим форматом для використання.

Кінцева точка дуги разом із зміщенням до центру дуги від поточного положення використовуються для програмування дуг, які не є повним колом. Немає проблем, якщо кінцева точка дуги збігається з поточним положенням.

Зміщення до центру дуги від поточного положення та, за бажанням, кількість поворотів використовуються для програмування повних кіл.

Під час програмування дуг помилка через округлення може виникнути внаслідок використання точності менше 4 знаків після коми (0,0000) для дюймів та менше 3 знаків після коми (0,000) для міліметрів.

Режим поступового визначення відстані дуги

Зміщення центру дуги – це відносна відстань від початкового положення дуги. За замовчуванням використовується режим збільшення відстані дуги.

Для дуги, меншої за 360 градусів, необхідно запрограмувати одне або декілька слів осей та одне або декілька зміщень.

Для повних кіл не потрібно програмувати жодних слів осей та одне або декілька зміщень. Слово «P» за замовчуванням дорівнює 1 і є необов’язковим.

Для отримання додаткової інформації про «Режим збільшення відстані дуги» див. розділ G91.1.

Режим абсолютної дугової відстані

Зміщення центру дуги – це абсолютна відстань від поточного положення 0 осі.

Для дуг менше 360 градусів необхідно запрограмувати одне або декілька слів осей та зміщення «обидва».

Для повних кіл не потрібно програмувати слова осей та обидва зміщення. Слово «P» за замовчуванням дорівнює 1 і є необов’язковим.

Для отримання додаткової інформації про режим «Абсолютна дугова відстань» див. розділ G90.1.

Площина XY (G17)
G2 або G3 <X- Y- Z- I- J- P->
  • Z - helix

  • I - X зміщення

  • J - Y зміщення

  • P - кількість обертів

XZ-площина (G18)
G2 або G3 <X- Z- Y- I- K- P->
  • Y - helix

  • I - X зміщення

  • K - Z зміщення

  • P - кількість обертів

YZ-площина (G19)
G2 або G3 <Y- Z- X- J- K- P->
  • X - helix

  • J - Y зміщення

  • K - Z зміщення

  • P - кількість обертів

Це помилка, якщо:

  • Швидкість подачі не встановлюється за допомогою слова F.

  • Зміщення не запрограмовано.

  • Коли дуга проектується на вибрану площину, відстань від поточної точки до центру відрізняється від відстані від кінцевої точки до центру більш ніж на (.05 дюйма/.5 мм) АБО ((.0005 дюйма/.005 мм) І .1% радіуса).

Розшифровка повідомлення про помилку «Радіус до кінця дуги відрізняється від радіуса до початку:»

  • start - поточна позиція

  • center - центральне положення, розраховане за допомогою слів i, j або k

  • end - запрограмована кінцева точка

  • r1 - радіус від початкової позиції до центру

  • r2 - радіус від кінцевого положення до центру

5.2. Приклади формату центру

Розрахунок дуг вручну іноді може бути складним. Один із варіантів — намалювати дугу за допомогою програми CAD, щоб отримати координати та зміщення. Зважаючи на зазначену вище похибку, можливо, доведеться змінити точність програми CAD, щоб отримати бажані результати. Інший варіант — обчислити координати та зміщення за допомогою формул. Як видно з наведених нижче рисунків, трикутник можна утворити з поточного положення, кінцевого положення та центру дуги.

На наступному малюнку ви можете бачити, що початкова позиція знаходиться в точці X0 Y0, а кінцева позиція — в точці X1 Y1. Центр дуги знаходиться в точці X1 Y0. Це дає нам зміщення від початкової позиції на 1 по осі X і на 0 по осі Y. У цьому випадку потрібно лише зміщення I.

Приклад Лінії G2
G0 X0 Y0
G2 X1 Y1 I1 F10 (Дуга за годинниковою стрілкою в площині XY)
Приклад G2
Figure 1. Приклад G2

У наступному прикладі ми бачимо різницю між зміщеннями для Y, якщо ми виконуємо рух G2 або G3. Для руху G2 початкове положення — X0 Y0, для руху G3 — X0 Y1. Центр дуги для обох рухів — X1 Y0,5. Для руху G2 зміщення J дорівнює 0,5, а для руху G3 — -0,5.

Приклад рядка G2-G3
G0 X0 Y0
G2 X0 Y1 I1 J0.5 F25 (дуга за годинниковою стрілкою в площині XY)
G3 X0 Y0 I1 J-0.5 F25 (дуга проти годинникової стрілки в площині XY)
Приклад G2-G3
Figure 2. Приклад G2-G3

У наступному прикладі ми показуємо, як дуга може утворити спіраль по осі Z, додаючи слово Z.

Приклад спіралі G2
G0 X0 Y0 Z0
G17 G2 X10 Y16 I3 J4 Z-1 (спіральна дуга з доданою Z)

У наступному прикладі ми покажемо, як зробити більше одного повороту, використовуючи слово на літеру "П".

Приклад слова на букву "П"
G0 X0 Y0 Z0
G2 X0 Y1 Z-1 I1 J0.5 P2 F25

У центральному форматі радіус дуги не вказується, але його можна легко знайти як відстань від центру кола до поточної точки або кінцевої точки дуги.

5.3. Формат радіуса дуг

Осі G2 або G3 R- <P->
  • R - радіус від поточного положення

Не рекомендується програмувати дуги радіусного формату, які є майже повними колами або майже півколами, оскільки невелика зміна розташування кінцевої точки призведе до набагато більшої зміни розташування центру кола (а отже, і середини дуги). Ефект збільшення є настільки великим, що похибка округлення числа може призвести до різання поза межами допуску. Наприклад, зміщення кінцевої точки дуги 180 градусів на 1% призвело до зміщення точки на 90 градусів уздовж дуги на 7%. Майже повні кола є ще гіршими. Дуги інших розмірів (в діапазоні від мінімальних до 165 градусів або від 195 до 345 градусів) є прийнятними.

У форматі радіуса вказуються координати кінцевої точки дуги у вибраній площині разом із радіусом дуги. Програма «G2» «осі» «R-» (або використовуйте «G3» замість «G2»). R — радіус. Слова осі є необов’язковими, за винятком того, що має бути використано принаймні одне з двох слів для осей у вибраній площині. Число R — це радіус. Додатний радіус означає, що дуга повертається менше ніж на 180 градусів, а від’ємний радіус означає поворот більше ніж на 180 градусів. Якщо дуга є гвинтовою, також вказується значення кінцевої точки дуги на координатній осі, паралельній осі гвинта.

Це помилка, якщо:

  • обидва слова осей для осей вибраної площини пропущені

  • Кінцева точка дуги така ж, як і поточна точка.

Приклад Лінії G2
G17 G2 X10 Y15 R20 Z5 (формат радіуса з дугою)

У наведеному вище прикладі створюється кругова або гвинтова дуга за годинниковою стрілкою (якщо дивитися від позитивної осі Z), вісь якої паралельна осі Z, що закінчується в точці X=10, Y=15 і Z=5, з радіусом 20. Якщо початкове значення Z дорівнює 5, це дуга кола, паралельна площині XY; в іншому випадку це гвинтова дуга.

6. G4 Житло

G4 P-
  • P - секунди для затримки (число з плаваючою комою)

Число P – це час у секундах, протягом якого всі осі залишатимуться нерухомими. Число P – це число з плаваючою комою, тому можна використовувати частки секунди. G4 не впливає на шпиндель, охолоджувальну рідину та будь-які операції введення/виведення.

Приклад рядка G4
G4 P0.5 (зачекайте 0,5 секунди, перш ніж продовжити)

Це помилка, якщо:

  • Число P від’ємне або не вказано.

7. Кубічний сплайн G5

G5 X- Y- <I- J-> P- Q-
  • I - приростне зміщення по осі X від початкової точки до першої контрольної точки

  • J - приростне зміщення по осі Y від початкової точки до першої контрольної точки

  • P - приростне зміщення по осі X від кінцевої точки до другої контрольної точки

  • Q - приростне зміщення по осі Y від кінцевої точки до другої контрольної точки

G5 створює кубічний B-сплайн у площині XY лише з осями X та Y. P та Q необхідно вказати для кожної команди G5.

Для першої команди G5 у серії команд G5 необхідно вказати як I, так і J. Для наступних команд G5 необхідно вказати або I, або J, або ж не вказувати жодної з них. Якщо I та J не вказані, початковий напрямок цього куба автоматично відповідатиме кінцевому напрямку попереднього куба (ніби I та J є запереченням попередніх P та Q).

Наприклад, щоб запрограмувати вигнуту N-подібну фігуру:

G5 Зразок початкового кубічного сплайна
G90 G17
G0 X0 Y0
G5 I0 J3 P0 Q-3 X1 Y1

Другу вигнуту N, яка плавно приєднується до цієї, тепер можна зробити без вказівки I та J:

G5 Зразок наступного кубічного сплайна
G5 P0 Q-3 X2 Y2

Це помилка, якщо:

  • P та Q не є одночасно заданими.

  • Вказано лише один з I або J.

  • I або J не вказані в першій з серії команд G5.

  • Вказано вісь, відмінну від X або Y.

  • Активна площина не G17.

8. G5.1 Квадратний сплайн

G5.1 X- Y- I- J-
  • I - приростне зміщення по осі X від початкової точки до контрольної точки

  • J - приростне зміщення по осі Y від початкової точки до контрольної точки

G5.1 створює квадратичний B-сплайн у площині XY лише з осями X та Y. Якщо I або J не вказано, зміщення для невказаної осі буде нульовим, тому необхідно вказати одну або обидві.

Наприклад, щоб запрограмувати параболу через початок координат від X-2 Y4 до X2 Y4:

G5.1 Зразок квадратичного сплайна
G90 G17
G0 X-2 Y4
G5.1 X2 I2 J-8

Це помилка, якщо:

  • як зсув I, так і зсув J не визначені або не відповідають нулю

  • Вказано вісь, відмінну від X або Y

  • Активна площина не G17

9. G5.2 G5.3 Блок NURBS

G5.2 <P-> <X- Y-> <L->
X- Y- <P->
...
G5.3
Warning
G5.2, G5.3 є експериментальним варіантом і не пройшов повного тестування.

G5.2 призначений для відкриття блоку даних, що визначає NURBS, а G5.3 — для закриття блоку даних. У рядках між цими двома кодами визначаються контрольні точки кривої з відповідними «вагами» (P) і параметром (L), що визначає порядок кривої.

Поточна координата, перед першою командою G5.2, завжди береться за першу контрольну точку NURBS. Щоб встановити вагу для цієї першої контрольної точки, спочатку запрограмуйте G5.2 P- без вказівки жодних X Y.

Вага за замовчуванням, якщо P не вказано, дорівнює 1. Порядок за замовчуванням, якщо L не вказано, дорівнює 3.

Приклад G5.2
G0 X0 Y0 (швидкий рух)
F10 (встановити швидкість подачі)
G5.2 P1 L3
     X0 Y1 P1
     X2 Y2 P1
     X2 Y0 P1
     X0 Y0 P2
G5.3
; Швидкі переміщення показують той самий шлях без блоку NURBS
G0 X0 Y1
   X2 Y2
   X2 Y0
   X0 Y0
M2
Зразок виводу NURBS

Зразок виводу NURBS

Більше інформації про NURBS можна знайти тут:

10. G7 Режим діаметра токарного верстата

G7

Запрограмуйте G7 для входу в режим діаметра для осі X на токарному верстаті. У режимі діаметра ось X переміщується на токарному верстаті на відстань, що дорівнює 1/2 відстані до центру токарного верстата. Наприклад, X1 перемістить різак на 0,500" від центру токарного верстата, отримавши деталь діаметром 1".

11. G8 Режим радіуса токарного верстата

G8

Програма G8 для входу в режим радіуса для осі X на токарному верстаті. У режимі радіуса ось X рухається на токарному верстаті на відстань від центру. Таким чином, різання в точці X1 дасть деталь діаметром 2 дюйма. G8 є стандартним налаштуванням при ввімкненні.

12. Дані таблиці інструментів для перезавантаження G10 L0

G10 L0

G10 L0 перезавантажує всі дані таблиці інструментів. Потрібно, щоб у шпинделі не було завантажено жодного інструменту.

Note
При використанні G10 L0 параметри інструменту (#5401-#5413) будуть негайно оновлені, а будь-які змінені діаметри інструменту будуть використовуватися для наступних команд компенсації радіуса різака G41,42. Існуючі значення компенсації довжини інструменту G43 залишатимуться в силі до оновлення новими командами G43.

13. Таблиця інструментів G10 L1

G10 L1 P- axes <R- I- J- Q->
  • P - номер інструменту

  • R - радіус інструмента

  • I - передній кут (токарний верстат)

  • J - задній кут (токарний верстат)

  • Q - орієнтація (токарний верстат)

G10 L1 встановлює таблицю інструментів для номера інструмента P на значення слів.

Дійсний код G10 L1 перезаписує та повторно завантажує таблицю інструментів для зазначеного інструменту.

Приклад лінії G10 L1
G10 L1 P1 Z1.5 (встановити зміщення інструменту 1 по осі Z від початку координат верстата на 1.5)
G10 L1 P2 R0.015 Q3 (приклад токарного верстата: встановити радіус інструменту 2 на 0.015 та орієнтацію на 3)

Це помилка, якщо:

  • Компенсація різця увімкнена

  • Номер P не вказано

  • Номер P не є дійсним номером інструменту з таблиці інструментів

  • Число P дорівнює 0

Для отримання додаткової інформації про орієнтацію різця, що використовується словом Q, див. діаграму Lathe Tool Orientation.

14. G10 L2 Встановити систему координат

G10 L2 P- <axes R->
  • P - система координат (0-9)

  • R - обертання навколо осі Z

G10 L2 зміщує початок координат у заданій системі координат на значення слова осі. Зсув відбувається від початку координат верстата, встановленого під час повернення в початкове положення. Значення зсуву замінить усі поточні зсуви, що діють для заданої системи координат. Невикористані слова осі не змінюються.

Запрограмуйте P0 - P9, щоб вказати, яку систему координат потрібно змінити.

Table 1. Система координат
Значення P Система координат G-код

0

Активний

n/a

1

1

G54

2

2

G55

3

3

G56

4

4

G57

5

5

G58

6

6

G59

7

7

G59.1

8

8

G59.2

9

9

G59.3

За потреби запрограмуйте R для позначення обертання осі XY навколо осі Z. Напрямок обертання — проти годинникової стрілки, якщо дивитися з позитивного кінця осі Z.

Усі слова осі є необов’язковими.

Перебування в режимі поступового збільшення відстані (G91) не впливає на G10 L2.

Важливі поняття:

  • G10 L2 Pn не змінюється з поточної системи координат на ту, що визначена P, для вибору системи координат потрібно використовувати G54-59.3.

  • Під час обертання виконується штовхання, вісь переміщуватиме цю вісь лише в позитивному або негативному напрямку, а не вздовж осі, що обертається.

  • Якщо локальне зміщення G52 або зміщення початку G92 діяло до G10 L2, воно продовжуватиме діяти і після цього.

  • Під час програмування системи координат за допомогою R, будь-які команди G52 або G92 будуть застосовані після обертання.

  • Система координат, початок якої встановлюється командою «G10», може бути активною або неактивною на момент виконання «G10». Якщо вона наразі активна, нові координати набувають чинності негайно.

Це помилка, якщо:

  • Число P не дорівнює цілому числу в діапазоні від 0 до 9.

  • Запрограмовано вісь, яка не визначена в конфігурації.

Приклад лінії G10 L2
G10 L2 P1 X3.5 Y17.2

У наведеному вище прикладі початок першої системи координат (вибраної за допомогою «G54») встановлено як X=3,5 і Y=17,2. Оскільки вказано тільки X і Y, точка початку переміщується тільки по X і Y; інші координати не змінюються.

Приклад лінії G10 L2
G10 L2 P1 X0 Y0 Z0 (чіткі зміщення для осей X, Y та Z у системі координат 1)

У наведеному вище прикладі координати XYZ системи координат 1 встановлюються на початок координат машини.

Система координат описана в розділі Coordinate System.

15. Таблиця інструментів G10 L10

G10 L10 P- axes <R- I- J- Q->
  • P - номер інструменту

  • R - радіус інструмента

  • I - передній кут (токарний верстат)

  • J - задній кут (токарний верстат)

  • Q - орієнтація (токарний верстат)

G10 L10 змінює запис в таблиці інструментів для інструменту P таким чином, що при перезавантаженні зміщення інструменту, коли верстат знаходиться в поточному положенні і активні поточні зміщення G52 і /G92, поточні координати для даних осей стануть заданими значеннями. Осі, які не вказані в команді G10 L10, не будуть змінені. Це може бути корисно при переміщенні датчика, як описано в розділі G38.

Приклад G10 L10
T1 M6 G43 (завантажити інструмент 1 та зміщення довжини інструмента)
G10 L10 P1 Z1.5 (встановити поточну позицію для Z на 1.5)
G43 (перезавантажити зміщення довжини інструмента зі зміненої таблиці інструментів)
M2 (закінчити програму)
  • Див. розділи T та M6, а також G43/G43.1 для отримання додаткової інформації.

Це помилка, якщо:

  • Компенсація різця увімкнена

  • Номер P не вказано

  • Номер P не є дійсним номером інструменту з таблиці інструментів

  • Число P дорівнює 0

16. G10 L11 Набір інструментів Таблиця

G10 L11 P- axes <R- I- J- Q->
  • P - номер інструменту

  • R - радіус інструмента

  • I - передній кут (токарний верстат)

  • J - задній кут (токарний верстат)

  • Q - орієнтація (токарний верстат)

G10 L11 аналогічний G10 L10, за винятком того, що замість встановлення запису відповідно до поточних зміщень, він встановлюється таким чином, що поточні координати стануть заданим значенням, якщо буде перезавантажено нове зміщення інструменту і верстат буде розміщено в системі координат G59.3 без будь-якого активного зміщення G52/G92.

Це дозволяє користувачеві встановити систему координат G59.3 відповідно до фіксованої точки на верстаті, а потім використовувати це пристосування для вимірювання інструментів без урахування інших активних наразі зміщень.

Це помилка, якщо:

  • Компенсація різця увімкнена

  • Номер P не вказано

  • Номер P не є дійсним номером інструменту з таблиці інструментів

  • Число P дорівнює 0

17. G10 L20 Встановити систему координат

G10 L20 P- axes
  • P - система координат (0-9)

G10 L20 подібний до G10 L2, за винятком того, що замість встановлення зміщення/введення на задане значення, воно встановлюється на обчислене значення, яке робить поточні координати заданим значенням.

Приклад лінії G10 L20
G10 L20 P1 X1.5 (встановити поточне положення осі X у системі координат 1 на 1,5)

Це помилка, якщо:

  • Число P не дорівнює цілому числу в діапазоні від 0 до 9.

  • Запрограмовано вісь, яка не визначена в конфігурації.

18. G17 - G19.1 Вибір площини

Ці коди встановлюють поточну площину наступним чином:

  • G17 - XY (за замовчуванням)

  • G18 - ZX

  • G19 - YZ

  • G17.1 - UV

  • G18.1 - WU

  • G19.1 - VW

Площини UV, WU та VW не підтримують дуги.

Гарною ідеєю є включення вибору площини у преамбулу кожного файлу G-коду.

Вплив вибору площини обговорюється в розділах G2 G3 Arcs та G81 G89.

19. Одиниці G20, G21

  • G20 - використовувати дюйми для одиниць вимірювання довжини.

  • «G21» – використовувати міліметри для одиниць вимірювання довжини.

Бажано включати одиниці вимірювання у преамбулу кожного файлу G-коду.

20. G28, G28.1 Перейти/Встановити попередньо визначене положення

Warning
Використовуйте G28 лише тоді, коли ваш верстат переведений у вихідне положення з повторюваною позицією, а бажане положення G28 було збережено за допомогою G28.1.

G28 використовує значення, збережені в parameters 5161-5169, як кінцеву точку X Y Z A B C U V W, до якої потрібно переміститися. Значення параметрів є «абсолютними» координатами машини в «одиницях виміру» машини, як зазначено в файлі INI. Усі осі, визначені в файлі INI, будуть переміщені при видачі команди G28. Якщо в G28.1 не збережено жодних позицій, то всі осі перемістяться до machine origin.

  • G28 - виконує rapid move з поточної позиції до абсолютної позиції значень у параметрах 5161-5166.

  • «G28 axes» — виконує швидкий рух до позиції, вказаної «axes», включаючи будь-які зміщення, а потім виконує швидкий рух до «абсолютної» позиції значень у параметрах 5161-5166 для всіх вказаних «axes». Будь-яка «axis», що не вказана, не рухатиметься.

  • G28.1 - зберігає поточну «абсолютну» позицію в параметрах 5161-5166.

Приклад рядка G28
G28 Z2.5 (швидке переміщення до Z2.5, потім до позиції Z, зазначеної в #5163)

Це помилка, якщо:

  • Компенсацію різця ввімкнено

21. G30, G30.1 Перейти/Встановити попередньо визначену позицію

Warning
Використовуйте G30 лише тоді, коли ваш верстат переведений у вихідне положення з повторюваною позицією, а бажане положення G30 було збережено за допомогою G30.1.

G30 працює так само, як G28, але використовує значення, збережені в parameters 5181-5189, як кінцеву точку X Y Z A B C U V W, до якої потрібно переміститися. Значення параметрів є «абсолютними» координатами верстата в «одиницях виміру» верстата, як зазначено в файлі INI. Всі осі, визначені в файлі INI, будуть переміщені при видачі команди G30. Якщо в G30.1 не збережено жодних позицій, то всі осі перемістяться до machine origin.

Note
Параметри G30 будуть використовуватися для переміщення інструменту, коли запрограмовано M6, якщо TOOL_CHANGE_AT_G30=1 знаходиться в розділі [EMCIO] INI-файлу.
  • G30 - виконує rapid move з поточної позиції до абсолютної позиції значень у параметрах 5181-5189.

  • «G30 axes» — виконує швидкий рух до позиції, вказаної «axes», включаючи будь-які зміщення, а потім виконує швидкий рух до «абсолютної» позиції значень у параметрах 5181-5189 для всіх вказаних «axes». Будь-яка «axis», що не вказана, не рухатиметься.

  • G30.1 - зберігає поточну абсолютну позицію в параметрах 5181-5186.

Приклад рядка G30
G30 Z2.5 (швидке переміщення до Z2.5, потім до точки Z, зазначеної в #5183)

Це помилка, якщо:

  • Компенсацію різця ввімкнено

22. G33 Синхронізований рух шпинделя

G33 X- Y- Z- K- $-
  • K - відстань за оберт

Для синхронізованого руху шпинделя в одному напрямку введіть код «G33 X- Y- Z- K-», де K вказує відстань, пройдена в XYZ за кожен оберт шпинделя. Наприклад, якщо почати з «Z=0», «G33 Z-1 K.0625» створює рух на 1 дюйм в Z за 16 обертів шпинделя. Ця команда може бути частиною програми для створення різьби 16TPI. Інший приклад у метричній системі: «G33 Z-15 K1.5» створює рух на 15 мм, коли шпиндель обертається 10 разів для різьби 1,5 мм.

Аргумент $ (необов’язковий) встановлює, з яким шпинделем синхронізується рух (за замовчуванням дорівнює нулю). Наприклад, G33 Z10 K1 $1 переміщуватиме шпиндель синхронно зі значенням виводу HAL spindle.N.revs.

Рух, синхронізований зі шпинделем, очікує на індекс шпинделя та штифти швидкості шпинделя, тому кілька проходів вирівнюються. «G33» переміщує кінець у запрограмовану кінцеву точку. G33 можна використовувати для різання конічних різьблень або фузеї.

Усі слова осі є необов’язковими, окрім того, що принаймні одне має бути використане.

Note
Осі K відповідає лінії приводу, описаній як X-Y-Z-. Осі K не паралельна осі Z, якщо кінцеві точки X або Y використовуються, наприклад, під час нарізання конічної різьби.
Технічна інформація

На початку кожного проходу G33 LinuxCNC використовує швидкість шпинделя та обмеження прискорення верстата, щоб обчислити, скільки часу знадобиться Z для прискорення після імпульсу індексації, і визначає, на скільки градусів обернеться шпиндель за цей час. Потім він додає цей кут до позиції індексації та обчислює позицію Z, використовуючи скоригований кут шпинделя. Це означає, що Z досягне правильного положення одразу після завершення прискорення до належної швидкості і зможе негайно розпочати різання якісної різьби.

З’єднання HAL

Для запуску руху необхідно встановити або активувати контакт «spindle.N.at-speed». Крім того, значення spindle.N.revs повинно збільшуватися на 1 за кожен оберт шпинделя, а контакт spindle.N.index-enable повинен бути підключений до лічильника енкодера (або резольвера), який скидає індекс-активацію один раз за оберт.

Див. посібник інтегратора для отримання додаткової інформації про синхронізований рух шпинделя.

Приклад G33
G90 (режим абсолютної відстані)
G0 X1 Z0.1 (швидке переміщення в положення)
S100 M3 (запуск обертання шпинделя)
G33 Z-2 K0.125 (переміщення осі Z до -2 зі швидкістю 0,125 на оберт)
G0 X1.25 (швидке переміщення інструменту від заготовки)
Z0.1 (швидке переміщення до початкової позиції Z)
M2 (завершення програми)
  • Див. розділи G90 та G0 та M2 для отримання додаткової інформації.

Це помилка, якщо:

  • Усі слова осі пропущені.

  • Шпиндель не обертається, коли виконується ця команда.

  • Запитаний лінійний рух перевищує обмеження швидкості машини через швидкість шпинделя.

23. G33.1 Жорстке нарізання різьби

G33.1 X- Y- Z- K- I- $-
  • K - відстань за оберт

  • I - додатковий множник швидкості шпинделя для швидшого зворотного руху

  • $ - додатковий селектор шпинделя

Warning
Для Z тільки натискання препозиції XY перед викликом G33.1 і тільки використання слова Z в G33.1. Якщо вказані координати не є поточними координатами при виклику G33.1 для натискання, рух не буде вздовж осі Z, а буде скоординованим, синхронізованим з веретеном рухом від поточного місця до вказаного місця і назад.

Для жорсткого нарізання різьби (синхронізований рух шпинделя з поверненням) використовується код G33.1 X- Y- Z- K-, де K- вказує на відстань, що переміщується за кожен оберт шпинделя.

Рух жорсткого постукування складається з наступної послідовності:

  • Переміщення від поточної координати до заданої координати, синхронізоване з вибраним шпинделем у заданому співвідношенні та починаючи з поточної координати за допомогою імпульсу індексу шпинделя.

  • Після досягнення кінцевої точки, команда на реверс шпинделя та збільшення прискорення на коефіцієнт, встановлений множником (наприклад, з годинникової стрілки на проти годинникової стрілки).

  • Продовження синхронізованого руху за межі заданої кінцевої координати, доки шпиндель фактично не зупиниться та не почне обертатися у зворотному напрямку.

  • Продовження синхронізованого руху назад до початкової координати.

  • Після досягнення початкової координати, команда на реверс шпинделя вдруге (наприклад, з руху проти годинникової стрілки на рух за годинниковою стрілкою).

  • Продовження синхронізованого руху за межі початкової координати, доки шпиндель фактично не зупиниться та не почне обертатися у зворотному напрямку.

  • Несинхронізований рух назад до початкової координати.

Синхронізовані зі шпинделем рухи очікують на індекс шпинделя, тому кілька проходів вишиковуються. Рухи G33.1 завершуються у вихідній координаті.

Усі слова осі є необов’язковими, окрім того, що принаймні одне має бути використане.

Приклад G33.1
G90 (встановити абсолютний режим)
G0 X1.000 Y1.000 Z0.100 (швидке переміщення в початкове положення)
S100 M3 (увімкнути шпиндель, 100 об/хв)
G33.1 Z-0.750 K0.05 (жорстке нарізання різьби 20 TPI глибиною 0.750)
M2 (кінець програми)
  • Див. розділи G90 та G0 та M2 для отримання додаткової інформації.

Це помилка, якщо:

  • Усі слова осі пропущені.

  • Шпиндель не обертається, коли виконується ця команда

  • Запитаний лінійний рух перевищує обмеження швидкості машини через швидкість шпинделя

24. G38.n Прямий зонд

G38.n axes
  • G38.2 - зонд до заготовки, зупинка при контакті, сигналізація про помилку у разі невдачі

  • G38.3 - зонд до заготовки, зупинка при контакті

  • G38.4 - зонд віддалений від заготовки, зупинка при втраті контакту, сигналізація про помилку у разі несправності

  • G38.5 - зонд віддаліть від заготовки, зупиніться при втраті контакту

Important
Ви не зможете використовувати рух зонда, поки ваша машина не буде налаштована на надання вхідного сигналу зонда. Вхідний сигнал зонда повинен бути підключений до motion.probe-input у файлі .hal. G38.n використовує motion.probe-input для визначення, коли зонд встановив (або втратив) контакт. TRUE для закритого контакту зонда (дотик), FALSE для відкритого контакту зонда.

Програма «G38.n axes» для виконання прямої операції зондування. Слова осі є необов’язковими, але принаймні одне з них має бути використано. Слова осі разом визначають кінцеву точку, до якої зонд буде рухатися, починаючи з поточного місця розташування. Якщо зонд не спрацює до досягнення кінцевої точки, G38.2 і G38.4 подадуть сигнал про помилку.

Інструмент у шпинделі повинен бути зондом або контактувати з перемикачем зонда.

У відповідь на цю команду верстат переміщує контрольовану точку (яка повинна знаходитися в центрі кулі зонда) по прямій лінії з поточним feed rate у напрямку до запрограмованої точки. У режимі зворотного часу подачі швидкість подачі така, що весь рух від поточної точки до запрограмованої точки займає заданий час. Рух зупиняється (в межах обмежень прискорення верстата) при досягненні запрограмованої точки або при запитуваній зміні вхідних даних зонда, залежно від того, що відбудеться раніше.

Table 2. Зондування G-кодів
Код Цільовий стан Перемістити орієнтацію Сигнал помилки

G38.2

Торкнувся

До шматка

Так

G38.3

Торкнувся

До шматка

Ні

G38.4

Недоторканий

З шматка

Так

G38.5

Недоторканий

З шматка

Ні

Після успішного зондування параметри #5061 до #5069 будуть встановлені на координати X, Y, Z, A, B, C, U, V, W розташування контрольованої точки в момент зміни стану зонда (в поточній системі координат роботи). Після невдалого зондування вони встановлюються на координати запрограмованої точки. Параметр 5070 встановлюється на 1, якщо зондування пройшло успішно, і на 0, якщо зондування не пройшло успішно. Якщо операція зондування не пройшла успішно, G38.2 і G38.4 сигналізують про помилку, виводячи повідомлення на екран, якщо вибраний графічний інтерфейс користувача підтримує таку функцію. А також зупиняючи виконання програми.

Ось приклад формули для вимірювання висоти інструменту з перетворенням зміщення Z з локальної системи координат в координати верстата, які зберігаються в таблиці інструментів. Існуюча компенсація висоти інструменту спочатку скасовується за допомогою G49, щоб уникнути її включення в розрахунок висоти, а нова висота завантажується з таблиці інструментів. Початкова позиція повинна бути достатньо високою над датчиком висоти інструменту, щоб компенсувати використання G49.

Приклад G38.2
G49
G38.2 Z-100 F100
#<zworkoffset> = [#[5203 + #5220 * 20] + #5213 * #5210]
G10 L1 P#5400 Z#<zworkoffset> (встановити нове зміщення інструмента)
G43

Коментар у формі «(PROBEOPEN filename.txt)» відкриє файл «filename.txt» і збереже в ньому 9-значну координату, що складається з XYZABCUVW, кожного успішного прямого зондування. Файл необхідно закрити за допомогою «(PROBECLOSE)». Для отримання додаткової інформації див. розділ Comments.

Приклад файлу «smartprobe.ngc» включений (у каталозі прикладів) для демонстрації використання переміщень зонда для запису координат деталі у файл. Програма «smartprobe.ngc» може використовуватися з «ngcgui» з мінімальними змінами.

Це помилка, якщо:

  • поточна точка така ж, як запрограмована точка.

  • жодне слово осі не використовується

  • корекція різця увімкнена

  • швидкість подачі дорівнює нулю

  • зонд вже знаходиться в цільовому стані

25. Компенсація G40 вимкнена

  • G40 - Вимкніть компенсацію різця. Якщо компенсація інструменту була ввімкнена, наступний рух має бути лінійним і довшим за діаметр інструменту. Можна вимкнути компенсацію, якщо вона вже вимкнена.

Приклад G40
; поточне положення – X1 після завершення переміщення з компенсацією на різець
G40 (вимкнути компенсацію)
G0 X1.6 (лінійне переміщення довшие за поточний діаметр різця)
M2 (кінець програми)

Див. розділи G0 та M2 для отримання додаткової інформації.

Це помилка, якщо:

  • Далі після G40 програмується дуговий рух G2/G3.

  • Лінійний рух після вимкнення компенсації менший за діаметр інструменту.

26. G41, G42 Компенсація різця

G41 <D-> (ліворуч від запрограмованого шляху)
G42 <D-> (праворуч від запрограмованого шляху)
  • D - номер інструменту

Слово D необов’язкове; якщо слово D відсутнє, буде використано радіус поточного завантаженого інструменту (якщо інструмент не завантажено і слово D не вказано, буде використано радіус 0).

Якщо вказано, то D-слово є номером інструменту, який слід використовувати. Зазвичай це номер інструменту в шпинделі (у цьому випадку D-слово є зайвим і вказувати його не потрібно), але це може бути будь-який дійсний номер інструменту.

Note
G41/G42 D0 є дещо особливим. Його поведінка відрізняється на верстатах з випадковою заміною інструменту та верстатах з невипадковою заміною інструменту (див. розділ Tool Change). На верстатах з невипадковою зміною інструментів «G41/G42 D0» застосовує зміщення довжини інструмента, який наразі знаходиться в шпинделі, або TLO 0, якщо в шпинделі немає інструмента. На верстатах з довільним перемиканням інструментів «G41/G42 D0» застосовує TLO інструменту T0, визначеного у файлі таблиці інструментів (або викликає помилку, якщо T0 не визначено в таблиці інструментів).

Щоб розпочати компенсацію різака зліва від профілю деталі, використовуйте G41. G41 розпочинає компенсацію різака зліва від запрограмованої лінії, якщо дивитися з позитивного кінця осі, перпендикулярної до площини.

Щоб розпочати компенсацію різака праворуч від профілю деталі, використовуйте G42. G42 розпочинає компенсацію різака праворуч від запрограмованої лінії, якщо дивитися з позитивного кінця осі, перпендикулярної до площини.

Рух підготовки має бути щонайменше таким же довгим, як радіус інструменту. Рух підготовки може бути швидким.

Компенсацію на різець можна виконати, якщо площина XY або площина XZ активна.

Команди користувача M100-M199 дозволені, коли ввімкнено компенсацію різця.

Поведінка обробного центру, коли ввімкнено корекцію різця, описана в розділі Cutter Compensation разом із прикладами коду.

Це помилка, якщо:

  • Номер D не є дійсним номером інструменту або 0.

  • Площина YZ активна.

  • Компенсація різця увімкнена, якщо вона вже увімкнена.

27. G41.1, G42.1 Динамічна компенсація різця

G41.1 D- <L-> (ліворуч від запрограмованого шляху)
G42.1 D- <L-> (праворуч від запрограмованого шляху)

G41.1 та G42.1 функціонують так само, як G41 та G42, з додатковою можливістю програмування діаметра інструмента. Якщо значення слова L не вказано, воно за замовчуванням дорівнює 0.

Це помилка, якщо:

  • Площина YZ активна.

  • Число L не знаходиться в діапазоні від 0 до 9 включно.

  • Число L використовується, коли площина XZ неактивна.

  • Компенсація різця увімкнена, якщо вона вже увімкнена.

28. G43 Зміщення довжини інструменту

G43 <H->
  • H - номер інструменту (необов’язково)

  • «G43» — увімкнення компенсації довжини інструмента. G43 змінює наступні рухи, зміщуючи координати осі на величину зміщення. G43 не викликає жодних рухів. При наступному переміщенні компенсованої осі кінцевою точкою цієї осі є компенсоване положення.

G43 без слова H використовує поточний завантажений інструмент з останнього Tn M6.

G43 Hn використовує зміщення для інструменту n.

Активні значення компенсації довжини інструмента зберігаються в пронумерованих параметрах 5401-5409.

Note
«G43 H0» є дещо особливим. Його поведінка відрізняється на верстатах із випадковим та невипадковим зміною інструментів (див. розділ «Tool Changers»). На верстатах з невипадковою зміною інструментів «G43 H0» застосовує зміщення довжини інструмента, який наразі знаходиться в шпинделі, або TLO 0, якщо в шпинделі немає інструмента. На верстатах з випадковою зміною інструментів «G43 H0» застосовує TLO інструмента T0, визначеного у файлі таблиці інструментів (або викликає помилку, якщо T0 не визначено в таблиці інструментів).
G43 H – Приклад рядка
G43 H1 (встановіть зміщення інструмента, використовуючи значення з інструмента 1 у таблиці інструментів)

Це помилка, якщо:

  • число H не є цілим числом, або

  • число H від’ємне, або

  • Номер H не є дійсним номером інструменту (хоча зауважте, що 0 є дійсним номером інструменту на верстатах із невипадковою зміною інструменту, це означає «інструмент, який наразі знаходиться в шпинделі».)

29. G43.1 Динамічне зміщення довжини інструменту

G43.1 axes
  • «G43.1 осі» — зміна наступних рухів шляхом заміни поточного зміщення (зміщень) осей. G43.1 не викликає жодних рухів. Наступного разу, коли компенсована вісь буде переміщена, кінцевою точкою цієї осі буде компенсоване місце розташування.

Приклад G43.1
G90 (встановити абсолютний режим)
T1 M6 G43 (завантажити інструмент 1 і зміщення довжини інструменту, Z знаходиться на машині 0, а DRO показує Z1.500)
G43.1 Z0.250 (замінити поточне зміщення інструменту на 0.250, DRO тепер показує Z0.250)
M2 (завершити програму)
  • Див. розділи G90 та T та M6 для отримання додаткової інформації.

Це помилка, якщо:

  • Команда руху подається в тому ж рядку, що й G43.1

Note
G43.1 не записує в таблицю інструментів.

30. G43.2 Застосувати додаткове зміщення довжини інструменту

G43.2 H- or axes-
  • H - номер інструменту

  • G43.2 Hn - застосовує додаткове одночасне зміщення інструменту до наступних рухів шляхом додавання зміщення(й) інструмента n.

  • «Осі G43.2» – застосовує додаткове одночасне зміщення інструменту до наступних рухів шляхом додавання значення(й) будь-яких слів осей.

G43.2 Hn Приклад
G90 (встановити абсолютний режим)
T1 M6 (завантажити інструмент 1)
G43 (або G43 H1 - замінити всі зміщення інструмента зміщенням T1)
G43.2 H10 (також додати зміщення інструмента T10)
M2 (кінець програми)
Приклад осей G43.2
G90 (встановити абсолютний режим)
T1 M6 (завантажити інструмент 1)
G43 (або G43 H1 - замінити всі зміщення інструменту на зміщення T1)
G43.2 X0.01 Z0.02 (також додати 0,01 до зміщення інструменту по осі x і 0,02 до зміщення інструменту по осі z)
M2 (завершити програму)

Ви можете підсумувати довільну кількість зміщень, викликавши G43.2 кілька разів. Немає вбудованих припущень щодо того, які числа є зміщеннями геометрії, а які — зміщеннями зносу, або що ви повинні мати тільки одне з кожного типу.

Як і інші команди G43, G43.2 не викликає жодного руху. Наступного разу, коли компенсована вісь переміщується, кінцевою точкою цієї осі є скомпенсована точка розташування.

Це помилка, якщо:

  • «H» не вказано, і зміщення осей не вказано.

  • Вказано «H», а вказаний номер інструменту не існує в таблиці інструментів.

  • Вказано «H» та також вказані осі.

Note
G43.2 не записує в таблицю інструментів.

31. G49 Скасувати компенсацію довжини інструменту

  • G49 - скасовує компенсацію довжини інструменту

Можна програмувати, використовуючи те саме зміщення, яке вже використовується. Також можна програмувати без зміщення довжини інструменту, якщо воно наразі не використовується.

32. Зміщення локальної системи координат G52

G52 axes

G52 використовується в програмі обробки деталі як тимчасове «зсунення локальної системи координат» в системі координат заготовки. Для отримання додаткової інформації про G92 та G52 і про те, як вони взаємодіють, див. Local and Global Offsets.

33. G53 Переміщення в координатах машини

G53 axes

Для переміщення в machine coordinate system, запрограмуйте G53 в тому ж рядку, що і лінійне переміщення. G53 не є модальним і повинен бути запрограмований в кожному рядку. G0 або G1 не потрібно програмувати в тому ж рядку, якщо один з них вже активний.

Наприклад, «G53 G0 X0 Y0 Z0» перемістить осі в початкове положення, навіть якщо поточна вибрана система координат має діючі зміщення.

Приклад G53
G53 G0 X0 Y0 Z0 (швидке лінійне переміщення до початку координат верстата)
G53 X2 (швидке лінійне переміщення до абсолютної координати X2)

Див. розділ G0 для отримання додаткової інформації.

Це помилка, якщо:

  • G53 використовується без активних G0 або G1,

  • або G53 використовується, коли ввімкнено корекцію різця.

34. G54-G59.3 Вибір системи координат

  • G54 - вибрати систему координат 1

  • G55 - вибрати систему координат 2

  • G56 - вибрати систему координат 3

  • G57 - вибрати систему координат 4

  • G58 - вибрати систему координат 5

  • G59 - вибрати систему координат 6

  • G59.1 - вибрати систему координат 7

  • G59.2 - вибрати систему координат 8

  • G59.3 - вибрати систему координат 9

Системи координат зберігають значення осей та кут повороту XY навколо осі Z у параметрах, наведених у наступній таблиці.

Table 3. Параметри системи координат
Виберіть CS X Y Z A B C U V W R

G54

1

5221

5222

5223

5224

5225

5226

5227

5228

5229

5230

G55

2

5241

5242

5243

5244

5245

5246

5247

5248

5249

5250

G56

3

5261

5262

5263

5264

5265

5266

5267

5268

5269

5270

G57

4

5281

5282

5283

5284

5285

5286

5287

5288

5289

5290

G58

5

5301

5302

5303

5304

5305

5306

5307

5308

5309

5310

G59

6

5321

5322

5323

5324

5325

5326

5327

5328

5329

5330

G59.1

7

5341

5342

5343

5344

5345

5346

5347

5348

5349

5350

G59.2

8

5361

5362

5363

5364

5365

5366

5367

5368

5369

5370

G59.3

9

5381

5382

5383

5384

5385

5386

5387

5388

5389

5390

Це помилка, якщо:

  • Вибір системи координат використовується, коли ввімкнено корекцію різця.

Див. розділ Coordinate System для огляду систем координат.

35. G61 Режим точного шляху

  • G61 – Режим точної траєкторії, рух точно за програмою. Рухи будуть сповільнюватися або зупинятися за потреби для досягнення кожної запрограмованої точки. Якщо два послідовні рухи точно колінеарні, рух не зупиниться.

36. G61.1 Режим точної зупинки

  • G61.1 - Режим точної зупинки, рух зупинятиметься в кінці кожного запрограмованого сегмента.

37. G64 Змішування контурів

G64 <P- <Q->>
  • P - допуск змішування руху

  • Q - наївна толерантність до кулачка

  • G64 - найкраща можлива швидкість. Без P (або значення за замовчуванням у RS274NGC) означає, що потрібно підтримувати найкращу можливу швидкість, незалежно від того, як далеко від запрограмованої точки ви опинитеся.

  • G64 P- - Поєднання найкращої швидкості та допуску до відхилень

  • G64 P- <Q- > змішування з допуском. Це спосіб точного налаштування системи для досягнення найкращого компромісу між швидкістю та точністю. Допуск P- означає, що фактичний шлях не буде відхилятися від запрограмованої кінцевої точки більше, ніж на P-. Швидкість буде зменшена, якщо це необхідно для збереження траєкторії. Якщо ви встановите Q на значення, відмінне від нуля, це увімкне «Наївний детектор CAM»: коли є серія лінійних рухів подачі XYZ з однаковою feed rate, які відхиляються від колінеарності менше, ніж Q-, вони об’єднуються в один лінійний рух. При рухах G2/G3 в площині G17 (XY), коли максимальне відхилення дуги від прямої лінії менше, ніж толеранс G64 P-, дуга розбивається на дві лінії (від початку дуги до середини і від середини до кінця). Ці лінії потім підлягають наївному алгоритму CAM для ліній. Таким чином, випадки лінії-дуги, дуги-дуги та дуги-лінії, а також лінії-лінії виграють від «наївного детектора CAM». Це покращує продуктивність контурування шляхом спрощення траєкторії. Можна програмувати для режиму, який вже активний. Дивіться також розділ Trajectory Control для отримання додаткової інформації про ці режими. Якщо Q не вказано, то воно буде поводитися так само, як і раніше, і використовувати значення P-. Встановіть Q на нуль, щоб вимкнути «Наївний детектор CAM».

Гарною ідеєю є включення специфікації керування шляхом у преамбулу кожного файлу G-коду.

G64 P- Q- Приклад рядка
G64 P0.015 Q0.015 (встановити слідування за шляхом у межах 0.015 від фактичного шляху)

Значення P і Q вибираються невеликими. Зазвичай вони менші за точність верстата або точність типових деталей. Нижче наведено приклади з екстремальними значеннями P і Q для розуміння функції G64.

G64 Без значень
G64 (набір без значень P- та Q-)
Прямокутник G64
Figure 3. Прямокутник G64
G64 З великим значенням Q
G64 P0.015 Q6
G64 Прямокутник з радіусом перед фрезеруванням
Figure 4. G64 Прямокутник з радіусом перед фрезеруванням
G64 Прямокутник з радіусом після фрезерування
Figure 5. G64 Прямокутник з радіусом після фрезерування
G64 P0.015 Q2
G64 Серце
Figure 6. G64 Серце

38. Цикл чистової обробки токарного верстата G70

G70 Q- <X-> <Z-> <D-> <E-> <P->
  • Q - Номер підпрограми.

  • X - Початкова позиція X за замовчуванням дорівнює початковій позиції.

  • Z - Початкова позиція Z за замовчуванням дорівнює початковій позиції.

  • D - Початкова відстань профілю за замовчуванням дорівнює 0.

  • E - Кінцева відстань профілю за замовчуванням дорівнює 0.

  • P - Кількість перепусток для використання, за замовчуванням дорівнює 1.

Цикл G70 призначений для використання після того, як форма профілю, задана в підпрограмі з номером Q, була вирізана за допомогою G71 або G72.

  • Попередня клопотання.

    • Якщо використовуються Z або X, виконується команда rapid move до цієї позиції. Ця позиція також використовується між кожним чистовим проходом.

    • Потім виконується команда rapid move на початок профілю.

    • Шлях, заданий у Q-, виконується за допомогою команд G1 та [gcode:g2-g3].

    • Якщо потрібен наступний прохід, то є ще один поріг до проміжного місця, перш ніж зробити поріг до початку профілю.

    • Після останнього проходу інструмент залишається на кінці профілю, включаючи E-.

  • Кілька проходів. Відстань між проходом та кінцевим профілем дорівнює (прохід-1)*(D-E)/P+E. Де прохід – номер проходу, а D, E та P – числа D/E/P.

  • Відстань обчислюється з використанням початкової позиції циклу з додатною відстанню до цієї точки.

  • Зігнення та фаски в профілі. У профілі можна додавати згини або фаски, див. [gcode:g71-g72] для отримання додаткової інформації.

Це помилка, якщо:

  • Немає підпрограми, визначеної з номером, вказаним у Q.

  • Шлях, заданий у профілі, не є монотонним у Z або X.

  • [gcode:g17-g19.1] не використовувався для вибору площини ZX.

39. G71 G72 Цикли чорнової обробки токарного верстата

Note
Цикли G71 та G72 наразі дещо нестабільні. Див., наприклад, проблему #2939.
G71   Q- <X-> <Z-> <D-> <I-> <R->
G71.1 Q- <X-> <Z-> <D-> <I-> <R->
G71.2 Q- <X-> <Z-> <D-> <I-> <R->
G72   Q- <X-> <Z-> <D-> <I-> <R->
G72.1 Q- <X-> <Z-> <D-> <I-> <R->
G72.2 Q- <X-> <Z-> <D-> <I-> <R->
  • Q - Номер підпрограми.

  • X - Початкова позиція X за замовчуванням дорівнює початковій позиції.

  • Z - Початкова позиція Z за замовчуванням дорівнює початковій позиції.

  • D - Відстань, що залишилася до профілю, за замовчуванням дорівнює 0.

  • I - Приріст різання за замовчуванням дорівнює 1.

  • R - Відстань відведення за замовчуванням становить 0,5.

Цикл G71/G72 призначений для чорнової обробки профілю на токарному верстаті. Цикли G71 видаляють шари матеріалу під час переміщення у напрямку Z. Цикли G72 видаляють матеріал під час переміщення по осі X, так званий цикл торцювання. Напрямок руху такий самий, як і в траєкторії, заданій у підпрограмі. Для циклу G71 координата Z повинна змінюватися монотонно, для G72 це потрібно для осі X.

The profile is given in a subroutine with number Q-. This subroutine may contain G0, G1, G2 and G3 motion commands. All other commands are ignored, including feed and speed settings. The [gcode:g0] commands are interpreted as G1 commands. Each motion command may also include an optional A- or C- number. If the number A- is added a fillet with the radius given by A will be inserted at the endpoint of that motion, if this radius is too large the algorithm will fail with a non-monotonic path error. It is also possible to use the C- number, which allows a chamfer to be inserted. This chamfer has the same endpoints as a fillet of the same dimension would have but a straight line is inserted instead of an arc.

В абсолютному режимі U (для X) та W (для Z) можна використовувати як приростні переміщення.

Цикли G7x.1 не вирізають кишені. Цикли G7x.2 вирізають тільки після першої кишені і продовжують там, де зупинився G7x.1. Рекомендується залишити трохи додаткового матеріалу для вирізання перед циклом G7x.2, тому якщо G7x.1 використовував D1.0, G7x.2 може використовувати D0.5, і 0,5 мм буде видалено під час переходу від однієї кишені до наступної.

Звичайні цикли G7x вирізають весь профіль за один цикл.

  1. Попередня клопотання.

    • Якщо використовуються Z або X, виконується rapid move до цієї позиції.

    • Після вирізання профілю інструмент зупиняється в кінці профілю, включаючи відстань, зазначену в D.

  2. Число D використовується для дотримання відстані від остаточного профілю, щоб залишився матеріал для обробки.

Це помилка, якщо:

  • Немає підпрограми, визначеної з номером, вказаним у Q.

  • Шлях, заданий у профілі, не є монотонним у Z або X.

  • [gcode:g17-g19.1] не використовувався для вибору площини ZX.

  • [gcode:g41-g42] є активним.

40. Цикл свердління G73 зі стружколомленням

G73 X- Y- Z- R- Q- P- <L->
  • R - положення відведення вздовж осі Z.

  • Q - приріст дельти вздовж осі Z.

  • L - повторити

Цикл «G73» — це свердління або фрезерування з ламанням стружки. Цей цикл приймає число Q, яке представляє собою приріст «дельта» вздовж осі Z. Зазор від укорочення можна задати додатковим числом P.

  • Попередня клопотання.

    • Якщо поточна позиція Z знаходиться нижче позиції R, вісь Z виконує rapid move до позиції R.

    • Перемістити до координат X Y

  • Переміщувати вісь Z лише за поточною точкою feed rate вниз на дельту або до позиції Z, залежно від того, яка з них менш глибока.

  • Швидке переміщення до 0,010 дюйма або 0,254 мм.

  • Повторюйте кроки 2 та 3, доки не буде досягнуто положення Z на кроці 2.

  • Вісь Z швидко переміщується в положення R.

Це помилка, якщо:

  • число Q від’ємне або дорівнює нулю.

  • номер R не вказано

41. G74 Цикл нарізання різьби ліворуч із затримкою

G74 (X- Y- Z-) or (U- V- W-) R- L- P- $- F-
  • R- - Відведення положення вздовж осі Z.

  • L- – Використовується в інкрементальному режимі; кількість разів для повторення циклу. Див. приклади G81.

  • P- - Час витримки (секунди).

  • $- - Вибраний шпиндель.

  • F- - Швидкість подачі (швидкість обертання шпинделя, помножена на відстань, пройдену за оберт (крок різьби)).

Warning
G74 не використовує синхронізований рух.

Цикл G74 призначений для нарізання різьби з плаваючим патроном та затримкою на дні отвору.

  1. Попередній клопотання, як описано в розділі Попереднє та проміжне клопотання.

  2. Вимкнути коригування подачі та швидкості.

  3. Перемістіть вісь Z з поточною швидкістю подачі в позицію Z.

  4. Зупинити вибраний шпиндель (вибраний параметром $)

  5. Почніть обертання шпинделя за годинниковою стрілкою.

  6. Затримайтеся на певну кількість секунд P.

  7. Перемістіть вісь Z з поточною швидкістю подачі, щоб очистити Z

  8. Відновлення подачі та швидкості дозволяє перевизначення до попереднього стану

Тривалість витримки визначається словом «P-» у блоці G74. Швидкість подачі «F-» дорівнює швидкості обертання шпинделя, помноженій на відстань за один оберт (крок різьби). У прикладі S100 з кроком різьби 1,25 мм за один оберт швидкість подачі становить F125.

42. Цикл нарізання різьби G76

G76 P- Z- I- J- R- K- Q- H- E- L- $-
G76 Різьбонарізання
Figure 7. G76 Різьбонарізання
  • «Лінія руху» – лінія, що проходить через початкове положення X, паралельна Z.

  • «P-» – «крок різьби» на відстань за оберт.

  • Z- – Кінцеве положення різьби. В кінці циклу інструмент буде в цьому положенні Z.

Note
Коли діє G7 «Режим діаметра токарного верстата», значення «I», «J» та «K» є вимірюваннями діаметра. Коли діє G8 «Режим радіуса токарного верстата», значення «I», «J» та «K» є вимірюваннями радіуса.
  • «I-» — зміщення «піку різьби» від «лінії приводу». Від’ємні значення «I» відповідають зовнішній різьбі, а додатні значення «I» — внутрішній різьбі. Зазвичай матеріал обточується до цього розміру перед циклом «G76».

  • «J-» – додатне значення, що визначає «початкову глибину різання». Перший різьбовий розріз буде «J» за позицією «вершини різьби».

  • «K-» – додатне значення, що вказує на «повну глибину різьби». Остаточний розріз різьби буде на «K» далі за положення «вершини різьби».

Додаткові налаштування

  • $- - номер шпинделя, з яким буде синхронізовано рух (за замовчуванням 0). Наприклад, якщо запрограмовано $1, рух розпочнеться після скидання spindle.1.index-enable і буде продовжуватися синхронно із значенням spindle.1.revs.

  • «R-» — «зменшення глибини». «R1.0» вибирає постійну глибину для послідовних проходів різьблення. «R2.0» вибирає постійну площу. Значення від 1,0 до 2,0 вибирають зменшення глибини, але збільшення площі. Значення вище 2,0 вибирають зменшення площі. Зверніть увагу, що надмірно високі значення зменшення глибини призведуть до використання великої кількості проходів. (Зменшення глибини = спуск по етапах або сходинках.)

Warning
Непотрібно високі значення дегресії призведуть до надмірно великої кількості проходів (дегресія = поетапне занурення)
  • «Q-» — «кут складеного зсуву» — це кут (у градусах), що описує, наскільки послідовні проходи повинні бути зміщені вздовж лінії руху. Це використовується для того, щоб одна сторона інструменту видаляла більше матеріалу, ніж інша. Позитивне значення «Q» призводить до того, що передній край інструменту ріже сильніше. Типові значення — 29, 29,5 або 30.

  • «H-» – кількість «пружинних проходів». Пружинні проходи – це додаткові проходи на повну глибину різьби. Якщо додаткові проходи не потрібні, запрограмуйте «H0».

Вхід та вихід різьби можна запрограмувати конічними зі значеннями E та L.

  • «E-» — вказує відстань уздовж лінії приводу, яка використовується для конусності. Кут конусності буде таким, що останній прохід звужується до вершини різьби на відстані, вказаній за допомогою E. «E0.2» дасть конусність для перших/останніх 0,2 одиниць довжини уздовж різьби. Для конусності 45 градусів програма E така сама, як і K.

  • «L-» — вказує, на яких кінцях різьби буде зроблено конус. Програма «L0» для відсутності конуса (за замовчуванням), «L1» для вхідного конуса, «L2» для вихідного конуса або «L3» для вхідного та вихідного конусів. Конусність на вході зупиниться на лінії приводу для синхронізації з імпульсом індексу, а потім переміститься зі швидкістю feed rate до початку конусності. Без конусності на вході інструмент швидко переміститься до глибини різання, а потім синхронізується і почне різання.

Інструмент переміщується у початкові положення X та Z перед видачею G76. Положення X – це «лінія приводу», а положення Z – початок різьби.

Інструмент буде коротко зупинятися для синхронізації перед кожним проходом різьблення, тому на вході буде потрібна рельєфна канавка, якщо початок різьблення не знаходиться за кінцем матеріалу або не використовується конусний вхід.

Якщо не використовується конус виходу, рух виходу не синхронізується зі швидкістю шпинделя і буде rapid move. При низькій швидкості шпинделя рух виходу може зайняти лише невелику частину оберту. Якщо швидкість шпинделя збільшується після завершення декількох проходів, наступні рухи виходу вимагатимуть більшої частини оберту, що призведе до дуже важкого різання під час руху виходу. Цього можна уникнути, зробивши на виході рельєфну канавку або не змінюючи швидкість шпинделя під час нарізування різьби.

Остаточне положення інструменту буде на кінці «лінії приводу». Для вилучення інструменту з отвору знадобиться безпечний рух по осі Z із внутрішньою різьбою.

Це помилка, якщо:

  • Активна площина не є площиною ZX.

  • Інші слова осей, такі як X- або Y-, вказуються.

  • Значення дегресії R- менше ніж 1,0.

  • Не всі необхідні слова вказані.

  • «P-», «J-», «K-» або «H-» – негативні.

  • «E-» більше половини довжини приводного тракту.

З’єднання HAL

Щоб G76 працював, у файлі HAL необхідно підключити контакти «spindle.N.at-speed» та «encoder.n.phase-Z» для шпинделя. Докладнішу інформацію див. у розділі «spindle» розділу «Рух».

Технічна інформація

Стандартний цикл G76 базується на синхронізованому русі шпинделя G33. Для отримання додаткової інформації див. G33 Технічна інформація.

Приклад програми «g76.ngc» демонструє використання стандартного циклу G76, його можна переглянути та виконати на будь-якому верстаті за допомогою конфігурації «sim/lathe.ini».

Приклад коду G76
G0 Z-0.5 X0.2
G76 P0.05 Z-1 I-.075 J0.008 K0.045 Q29.5 L2 E0.045

На малюнку інструмент знаходиться в кінцевому положенні після завершення циклу G76. Ви можете побачити шлях входу праворуч від Q29.5 і шлях виходу ліворуч від L2 E0.045. Білі лінії - це рухи різання.

Приклад G76
Figure 8. Приклад G76

43. Стандартні цикли G80-G89

У цьому розділі описано стандартні цикли від «G81» до «G89» та зупинку стандартного циклу «G80».

Всі цикли консервування виконуються відносно поточної вибраної площини. Можна вибрати будь-яку з дев’яти площин. У цьому розділі в більшості описів передбачається, що вибрано площину XY. Поведінка аналогічна, якщо вибрано іншу площину, і необхідно використовувати правильні слова. Наприклад, у площині «G17.1» дія стандартного циклу відбувається вздовж W, а розташування або приріст задаються за допомогою U і V. У цьому випадку замість X, Y, Z у наведених нижче інструкціях слід використовувати U, V, W.

Слова осі обертання не допускаються в стандартних циклах. Коли активна площина належить до сімейства XYZ, слова осі UVW не допускаються. Аналогічно, коли активна площина належить до сімейства UVW, слова осі XYZ не допускаються.

43.1. Загальні слова

Усі стандартні цикли використовують групи X, Y, Z або U, V, W залежно від вибраної площини та слів R. Позиція R (зазвичай означає відведення) знаходиться вздовж осі, перпендикулярної до поточної вибраної площини (ось Z для площини XY тощо). Деякі стандартні цикли використовують додаткові аргументи.

43.2. Липкі слова

Для вбудованих циклів ми будемо називати число «фіксованим», якщо при використанні одного і того ж циклу в декількох рядках коду поспіль це число має бути використане в першому випадку, але є необов’язковим в інших рядках. Фіксовані числа зберігають своє значення в інших рядках, якщо вони не запрограмовані явно як інші. Число R завжди є фіксованим.

У режимі інкрементальної відстані числа X, Y і R розглядаються як інкременти від поточного положення, а Z — як інкремент від положення осі Z до початку переміщення, що включає Z. У режимі абсолютної відстані числа X, Y, R і Z є абсолютними положеннями в поточній системі координат.

43.3. Повторення циклу

Число L є необов’язковим і позначає кількість повторень. L=0 не допускається. Якщо використовується функція повторення, вона зазвичай застосовується в режимі інкрементальної відстані, так що одна і та ж послідовність рухів повторюється в декількох рівновіддалених місцях вздовж прямої лінії. Коли L- більше 1 в інкрементальному режимі з вибраною площиною XY, позиції X і Y визначаються шляхом додавання заданих чисел X і Y або до поточних позицій X і Y (при першому проході), або до позицій X і Y в кінці попереднього проходу (при повтореннях). Таким чином, якщо ви запрограмуєте «L10», ви отримаєте 10 циклів. Перший цикл буде відстанню X,Y від початкового місця розташування. Позиції R і Z не змінюються під час повторень. Число L не є фіксованим. У режимі абсолютної відстані L>1 означає «виконати один і той самий цикл у тому самому місці кілька разів». Опущення слова L еквівалентно заданню L=1.

43.4. Режим втягування

Висота руху відведення в кінці кожного повторення (названого «clear Z» в описах нижче) визначається налаштуванням режиму відведення, або до початкового положення Z (якщо воно знаходиться вище положення R і режим відведення є «G98», OLD_Z), або до положення R. Дивіться розділ G98 G99.

43.5. Помилки стандартного циклу

Це помилка, якщо:

  • всі слова осі відсутні під час стандартного циклу,

  • слова осі з різних груп (XYZ) (UVW) використовуються разом,

  • потрібне число P, і використовується від’ємне число P,

  • використовується число L, яке не є додатним цілим числом,

  • рух обертової осі використовується під час стандартного циклу,

  • обернена швидкість подачі активна під час стандартного циклу,

  • або компенсація різця активна під час стандартного циклу.

Якщо площина XY активна, число Z є закріпленим, і це помилка, якщо:

  • Номер Z відсутній, і той самий стандартний цикл ще не був активним,

  • або число R менше за число Z.

Якщо інші площини активні, умови помилки аналогічні умовам XY, описаним вище.

43.6. Попереднє та проміжне клопотання

Попередній рух — це набір рухів, який є спільним для всіх циклів фрезерування. Якщо поточне положення Z знаходиться нижче положення R, вісь Z виконує rapid move до положення R. Це відбувається тільки один раз, незалежно від значення L.

Крім того, на початку першого циклу та кожного повторення виконуються такі один або два рухи:

  • Швидкий рух rapid move паралельно площині XY до заданої позиції XY.

  • Вісь Z швидко переміститься в положення R, якщо вона ще не знаходиться в цьому положенні.

Якщо активна інша площина, попередній та проміжний рухи аналогічні.

43.7. Навіщо використовувати фіксований цикл?

Існує щонайменше дві причини використання стандартних циклів. Перша — це економія коду. Для виконання одного отвору знадобиться кілька рядків коду.

G81 Приклад 1 демонструє, як можна використовувати готовий цикл для створення 8 отворів за допомогою десяти рядків G-коду в режимі готового циклу. Програма, наведена нижче, створить той самий набір з 8 отворів, використовуючи п’ять рядків для готового циклу. Вона не слідує точно тому самому шляху і не свердлить у тому самому порядку, що й попередній приклад. Але економічність написання програми для хорошого готового циклу повинна бути очевидною.

Note
Номери рядків не потрібні, але вони допомагають пояснити ці приклади.
Вісім лунок
N100 G90 G0 X0 Y0 Z0 (переміщення координат до вихідного положення)
N110 G1 F10 X0 G4 P0.1
N120 G91 G81 X1 Y0 Z-1 R1 L4 (цикл свердління)
N130 G90 G0 X0 Y1
N140 Z0
N150 G91 G81 X1 Y0 Z-0.5 R1 L4 (запрограмований цикл свердління)
N160 G80 (вимкнути запрограмований цикл)
N170 M2 (кінець програми)

Код G98 у другому рядку вище означає, що зворотний рух буде до значення Z у першому рядку, оскільки воно вище за задане значення R.

images/eight-holes_en.svg
Дванадцять отворів у квадраті

Цей приклад демонструє використання слова L для повторення набору інкрементальних циклів свердління для послідовних блоків коду в одному режимі руху G81. Тут ми створюємо 12 отворів за допомогою п’яти рядків коду в режимі заданого руху.

N1000 G90 G0 X0 Y0 Z0 (переміщення координат до вихідного положення)
N1010 G1 F50 X0 G4 P0.1
N1020 G91 G81 X1 Y0 Z-0.5 R1 L4 (цикл свердління)
N1030 X0 Y1 R0 L3 (повторити)
N1040 X-1 Y0 L3 (повторити)
N1050 X0 Y-1 L2 (повторити)
N1060 G80 (вимкнути цикл)
N1070 G90 G0 X0 (швидкий рух додому)
N1080 Y0
N1090 Z0
N1100 M2 (кінець програми)
images/twelve-holes_en.svg

Друга причина використання стандартного циклу полягає в тому, що всі вони створюють попередні рухи та повернення, які можна передбачити та контролювати незалежно від початкової точки стандартного циклу.

44. G80 Скасувати стандартний цикл

  • G80 - Скасувати модальний рух стандартного циклу. G80 є частиною модальної групи 1, тому програмування будь-якого іншого G-коду з модальної групи 1 також скасує стандартний цикл.

Це помилка, якщо:

  • Слова осей програмуються, коли активний G80.

Приклад G80
G90 G81 X1 Y1 Z1.5 R2.8 (стандартний цикл абсолютної відстані)
G80 (вимкнення постійного циклу руху)
G0 X0 Y0 Z0 (швидке переміщення до початкової координати)

Наступний код створює таку ж кінцеву позицію та стан машини, як і попередній код.

Приклад G0
G90 G81 X1 Y1 Z1.5 R2.8 (стандартний цикл абсолютної відстані)
G0 X0 Y0 Z0 (швидке переміщення до початкової точки координат)

Перевага першого набору полягає в тому, що рядок G80 чітко вимикає вбудований цикл G81. З першим набором блоків програміст повинен знову увімкнути рух за допомогою G0, як це зроблено в наступному рядку, або будь-яким іншим словом G режиму руху.

Якщо цикл не вимкнено за допомогою G80 або іншого слова руху, цикл спробує повторити себе, використовуючи наступний блок коду, що містить слово X, Y або Z. Наступний файл свердлить (G81) набір з восьми отворів, як показано в наступному підписі.

Приклад G80 1
N100 G90 G0 X0 Y0 Z0 (координатна початкова точка)
N110 G1 X0 G4 P0.1
N120 G81 X1 Y0 Z0 R1 (запрограмований цикл свердління)
N130 X2
N140 X3
N150 X4
N160 Y1 Z0.5
N170 X3
N180 X2
N190 X1
N200 G80 (вимкнути цикл)
N210 G0 X0 (швидкий рух до початкової позиції)
N220 Y0
N230 Z0
N240 M2 (кінець програми)
Note
Зверніть увагу на зміну позиції Z після перших чотирьох отворів. Також це одне з небагатьох місць, де номери рядків мають певне значення, оскільки вони можуть вказати читачеві на певний рядок коду.

Використання G80 у рядку N200 є необов’язковим, оскільки G0 у наступному рядку вимкне цикл G81. Але використання G80, як показано в прикладі 1, забезпечить легше читання стандартного циклу. Без нього не так очевидно, що всі блоки між N120 і N200 належать до стандартного циклу.

45. Цикл свердління G81

G81 (X- Y- Z-) або (U- V- W-) R- L-

Цикл «G81» призначений для свердління.

Цикл функціонує наступним чином:

Цикл G81
Figure 9. Цикл G81
Приклад 1 - Абсолютне положення G81
G90 G98 G81 X4 Y5 Z1.5 R2.8

Припустимо, що поточна позиція (X1, Y2, Z3) і інтерпретується попередній рядок коду NC.

Це вимагає режиму абсолютної відстані (G90) та режиму відведення OLD_Z (G98), а також одноразового виконання циклу свердління G81.

  • Значення X та позиція X дорівнюють 4.

  • Значення Y та положення Y дорівнюють 5.

  • Значення Z та положення Z дорівнюють 1,5.

  • Значення R та чистий Z дорівнюють 2,8. OLD_Z дорівнює 3.

Відбуваються такі рухи:

  • A rapid move паралельно площині XY до (X4, Y5)

  • Швидкий рух паралельно осі Z до (Z2.8).

  • Переміщення паралельно осі Z у точці feed rate до (Z1.5)

  • Швидкий рух паралельно осі Z до (Z3)

images/g81ex1_en.svg
Приклад 2 - Відносне положення G81
G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3

Припустимо, що поточна позиція (X1, Y2, Z3) і інтерпретується попередній рядок коду NC.

Для цього необхідний режим інкрементальної відстані (G91) і режим відведення OLD_Z (G98). Також необхідно тричі повторити цикл свердління G81. Значення X дорівнює 4, значення Y дорівнює 5, значення Z дорівнює -0,6, а значення R дорівнює 1,8. Початкове положення X дорівнює 5 (=1+4), початкове положення Y дорівнює 7 (=2+5), чітке положення Z дорівнює 4,8 (=1,8+3), а положення Z дорівнює 4,2 (=4,8-0,6). OLD_Z дорівнює 3.

Перший попередній рух – це максимально швидкий рух вздовж осі Z до (X1, Y2, Z4.8), оскільки OLD_Z < очистити Z.

Перший повтор складається з 3 рухів.

  • A rapid move паралельно площині XY до (X5, Y7)

  • Переміщення паралельно осі Z у точці feed rate до (Z4.2)

  • Швидкий рух паралельно осі Z до (X5, Y7, Z4.8)

Другий повтор складається з 3 рухів. Позиція X скидається до 9 (=5+4), а позиція Y — до 12 (=7+5).

  • A rapid move паралельно площині XY до (X9, Y12, Z4.8)

  • Переміщуватися паралельно осі Z зі швидкістю подачі до (X9, Y12, Z4.2)

  • Швидкий рух паралельно осі Z до (X9, Y12, Z4.8)

Третій повтор складається з 3 рухів. Позиція X скидається до 13 (=9+4), а позиція Y — до 17 (=12+5).

  • A rapid move паралельно площині XY до (X13, Y17, Z4.8)

  • Переміщуватися паралельно осі Z зі швидкістю подачі до (X13, Y17, Z4.2)

  • Швидкий рух паралельно осі Z до (X13, Y17, Z4.8)

images/g81ex2_en.svg
Приклад 3 - Відносне положення G81
G90 G98 G81 X4 Y5 Z1.5 R2.8

Тепер припустимо, що ви виконуєте перший блок коду G81, але починаючи з (X0, Y0, Z0), а не з (X1, Y2, Z3).

Оскільки OLD_Z менше значення R, це нічого не додає до руху, але оскільки початкове значення Z менше за значення, вказане в R, під час попередніх рухів відбудеться початковий рух Z.

images/g81_en.svg
Приклад 4 – Абсолютний G81 R > Z

Це графік траєкторії руху для другого блоку коду g81.

G91 G98 G81 X4 Y5 Z-0.6 R1.8 L3

Оскільки цей графік починається з (X0, Y0, Z0), інтерпретатор додає початкові значення Z0 і R1.8 і швидко переміщається в це місце. Після цього початкового переміщення по осі Z функція повторення працює так само, як у прикладі 3, причому кінцева глибина по осі Z становить 0,6 нижче значення R.

images/g81a_en.svg
Приклад 5 - Відносне положення R > Z
G90 G98 G81 X4 Y5 Z-0.6 R1.8

Оскільки цей графік починається з (X0, Y0, Z0), інтерпретатор додає початкові значення Z0 і R1.8 і швидко переміщається в це місце, як у «Прикладі 4». Після цього початкового переміщення по осі Z виконується rapid move до X4 Y5. Потім остаточна глибина по осі Z становить 0,6 нижче значення R. Функція повторення змусить Z знову переміститися в те саме місце.

46. Цикл свердління G82, затримка

G82 (X- Y- Z-) або (U- V- W-) R- L- P-

Цикл «G82» призначений для свердління з затримкою на дні отвору.

Рух стандартного циклу G82 виглядає так само, як і G81, але з додаванням затримки внизу руху по осі Z. Тривалість затримки визначається словом P- у блоці G82.

G90 G82 G98 X4 Y5 Z1.5 R2.8 P2

Це буде схоже на приклад 3 вище, тільки з додатковою затримкою 2 секунди на дні отвору.

47. Цикл свердління з відведенням зубців G83

G83 (X- Y- Z-) або (U- V- W-) R- L- Q- P-

Цикл «G83» (часто називаний свердлінням з підйомом) призначений для глибокого свердління або фрезерування з відламуванням стружки. Відведення в цьому циклі очищають отвір від стружки і відрізають довгі стружки (які часто зустрічаються при свердлінні в алюмінії). Цей цикл приймає число Q, яке представляє приріст «дельта» вздовж осі Z. Відступ перед кінцевою глибиною завжди буде до площини «відступу», навіть якщо діє G98. Кінцевий відступ буде відповідати діючому G98/99. G83 функціонує так само, як G81, з додаванням відступів під час операції свердління. Очищення пеком можна вказати за допомогою додаткового числа P.

  • Попередній клопотання, як описано в розділі Попереднє та проміжне клопотання.

  • Перемістити вісь Z у поточній точці feed rate вниз на дельту або до позиції Z, залежно від того, яка з них менш глибока.

  • Швидке повернення до площини відведення, визначеної словом R.

  • Швидкий рух назад до нижньої частини поточного отвору, мінус 0,010 дюйма або 0,254 мм.

  • Повторюйте кроки 2, 3 та 4, доки не буде досягнуто положення Z на кроці 2.

  • Вісь Z виконує rapid move для очищення осі Z.

Це помилка, якщо:

  • число Q від’ємне або дорівнює нулю.

48. G84 Цикл нарізання різьби праворуч, затримка

G84 (X- Y- Z-) або (U- V- W-) R- L- P- $- F-
  • R- - Відведення положення вздовж осі Z.

  • L- – Використовується в інкрементальному режимі; кількість разів для повторення циклу. Див. приклади G81.

  • P- - Час витримки (секунди).

  • $- - Вибраний шпиндель.

  • F- - Швидкість подачі (швидкість обертання шпинделя, помножена на відстань, пройдену за оберт (крок різьби)).

Warning
G84 не використовує синхронізований рух.

Цикл G84 призначений для нарізання різьби з плаваючим патроном та затримкою на дні отвору.

  • Попередній клопотання, як описано в розділі Попереднє та проміжне клопотання.

  • Вимкнути коригування подачі та швидкості.

  • Перемістіть вісь Z з поточною швидкістю подачі в позицію Z.

  • Зупинити вибраний шпиндель (вибраний параметром $)

  • Почніть обертання шпинделя проти годинникової стрілки.

  • Затримайтеся на певну кількість секунд P.

  • Перемістіть вісь Z з поточною швидкістю подачі, щоб очистити Z

  • Відновлення подачі та швидкості дозволяє перевизначення до попереднього стану

Тривалість витримки визначається словом «P-» у блоці G84. Швидкість подачі «F-» дорівнює швидкості обертання шпинделя, помноженій на відстань за один оберт (крок різьби). У прикладі S100 з кроком різьби 1,25 мм за один оберт швидкість подачі становить F125.

49. Цикл розточування G85, вихідна подача

G85 (X- Y- Z-) або (U- V- W-) R- L-

Цикл «G85» призначений для розточування або розгортання, але може використовуватися для свердління або фрезерування.

  • Попередній клопотання, як описано в розділі Попереднє та проміжне клопотання.

  • Перемістити вісь Z лише за поточною точкою feed rate до позиції Z.

  • Відведіть вісь Z з поточною швидкістю подачі до площини R, якщо вона нижча за початкову Z.

  • Відведіть зі швидкістю переміщення, щоб очистити Z.

50. G86 Цикл розточування, зупинка шпинделя, швидкий вихід

G86 (X- Y- Z-) або (U- V- W-) R- L- P- $-

Цикл «G86» призначений для розточування. У цьому циклі використовується число P для позначення кількості секунд витримки.

  • Попередній клопотання, як описано в розділі Попереднє та проміжне клопотання.

  • Перемістити вісь Z лише за поточною точкою feed rate до позиції Z.

  • Затримайтеся на певну кількість секунд P.

  • Зупинити обертання вибраного шпинделя. (Вибрано параметром $)

  • Вісь Z виконує rapid move для очищення осі Z.

  • Перезапустіть шпиндель у попередньому напрямку.

Це помилка, якщо:

  • шпиндель не обертається до виконання цього циклу.

51. Цикл зворотного розточування G87

Цей код наразі не реалізовано в LinuxCNC. Він прийнятний, але його поведінка не визначена.

52. G88 Цикл розточування, зупинка шпинделя, ручний вихід

Цей код наразі не реалізовано в LinuxCNC. Він прийнятний, але його поведінка не визначена.

53. G89 Цикл розточування, затримка, вихідна подача

G89 (X- Y- Z-) або (U- V- W-) R- L- P-

Цикл «G89» призначений для розточування. У цьому циклі використовується число P, де P вказує на кількість секунд затримки.

  • Попередній клопотання, як описано в розділі Попереднє та проміжне клопотання.

  • Перемістити вісь Z лише за поточною точкою feed rate до позиції Z.

  • Затримайтеся на певну кількість секунд P.

  • Відведіть вісь Z з поточною швидкістю подачі, щоб очистити ось Z.

54. G90, G91 Режим відстані

  • «G90» — режим абсолютної відстані У режимі абсолютної відстані номери осей (X, Y, Z, A, B, C, U, V, W) зазвичай позначають положення в поточній активній системі координат. Винятки з цього правила описані в розділі G80 G89.

  • G91 - режим приросту відстані У режимі приросту відстані номери осей зазвичай представляють прирости від поточної координати.

Приклад G90
G90 (встановлення режиму абсолютної відстані)
G0 X2.5 (швидке переміщення до координати X2.5, включаючи будь-які діючі зміщення)
Приклад G91
G91 (встановлення режиму приросту відстані)
G0 X2.5 (швидке переміщення 2.5 від поточної позиції вздовж осі X)
  • Див. розділ G0 для отримання додаткової інформації.

55. G90.1, G91.1 Режим дугової відстані

  • G90.1 – режим абсолютної відстані для зміщень I, J та K. Коли діє G90.1, I та J повинні бути вказані за допомогою G2/3 для площини XY або J та K для площини XZ, інакше це помилка.

  • G91.1 – режим поступового збільшення відстані для зміщень I, J та K. G91.1 Повертає I, J та K до їхньої поведінки за замовчуванням.

56. Зміщення системи координат G92

G92 axes
Warning
Використовуйте «G92» лише після того, як ваш верстат буде позиціоновано в потрібну точку.

G92 надає поточній точці бажані координати (без руху), де слова осей містять бажані номери осей. Всі слова осей є необов’язковими, але принаймні одне з них має бути використано. Якщо слово осі не використовується для певної осі, зміщення для цієї осі буде дорівнювати нулю.

При виконанні команди «G92» origins всіх систем координат зміщуються. Вони зміщуються таким чином, що значення поточної контрольної точки в активній системі координат стає заданим значенням. Всі початки систем координат (G53-G59.3) зміщуються на цю ж відстань.

G92 використовує значення, збережені в parameters 5211-5219, як значення зміщення X Y Z A B C U V W для кожної осі. Значення параметрів є «абсолютними» координатами верстата в «одиницях виміру» верстата, як зазначено в файлі INI. Усі осі, визначені в файлі INI, будуть зміщені, коли G92 активний. Якщо ось не була введена після G92, зміщення цієї осі буде дорівнювати нулю.

Наприклад, припустимо, що поточна точка знаходиться в точці X=4 і в даний момент не активне зміщення «G92». Потім програмується «G92 X7». Це переміщує всі початки координат на -3 в X, що призводить до того, що поточна точка стає X=7. Це значення -3 зберігається в параметрі 5211.

Перебування в режимі поступового збільшення відстані (G91 замість G90) не впливає на дію G92.

Зміщення G92 можуть вже бути активними, коли викликається G92. Якщо це так, зміщення замінюється новим зміщенням, яке робить поточну точку заданою.

Це помилка, якщо всі слова осі пропущені.

LinuxCNC зберігає зміщення G92 та повторно використовує їх під час наступного запуску програми. Щоб запобігти цьому, можна запрограмувати G92.1 (щоб стерти їх) або запрограмувати G92.2 (щоб видалити їх - вони все одно зберігаються).

Note
Команду «G52» також можна використовувати для зміни цього зміщення; див. розділ Локальні та глобальні зміщення для отримання додаткової інформації про G92 та G52, а також про те, як вони взаємодіють.

Див. розділ Coordinate System для огляду систем координат.

Див. розділ Parameters для отримання додаткової інформації.

57. G92.1, G92.2 Скидання зміщень G92

  • G92.1 - вимкнути зміщення G92 та скинути parameters 5211 - 5219 до нуля.

  • G92.2 – вимкнути зміщення G92, але залишити parameters 5211–5219 доступними.

Note
G92.1 очищує лише зміщення G92, щоб змінити зміщення системи координат G53-G59.3 у G-коді, використовуйте або G10 L2, або G10 L20.

58. G92.3 Відновлення зміщень G92

  • G92.3 - встановити зміщення G92 на значення, збережені в параметрах з 5211 по 5219

Ви можете встановити зміщення осей в одній програмі і використовувати ті ж зміщення в іншій програмі. Програма G92 в першій програмі. Це встановить параметри 5211 до 5219. Не використовуйте G92.1 в решті першої програми. Значення параметрів будуть збережені при виході з першої програми і відновлені при запуску другої. Використовуйте G92.3 на початку другої програми. Це відновить зміщення, збережені в першій програмі.

59. Режим швидкості подачі G93, G94, G95

  • «G93» — це режим зворотного часу. У режимі зворотного часу подачі F-команда означає, що рух повинен бути виконаний за [один поділений на число F] хвилин. Наприклад, якщо число F дорівнює 2,0, рух повинен бути виконаний за півхвилини.

    Коли активний режим зворотної швидкості подачі, слово F повинно з’являтися в кожному рядку, що містить рух G1, G2 або G3, а слово F в рядку, що не містить G1, G2 або G3, ігнорується. Перебування в режимі зворотної швидкості подачі не впливає на рухи G0 (rapid move).

  • «G94» — режим одиниць на хвилину. У режимі подачі одиниць на хвилину слово F інтерпретується як значення, що контрольована точка повинна рухатися з певною швидкістю в дюймах на хвилину, міліметрах на хвилину або градусах на хвилину, залежно від того, які одиниці довжини використовуються і яка вісь або осі рухаються.

  • «G95» — режим «Одиниці на оберт». У режимі «Одиниці на оберт» команда F-word інтерпретується як вказівка на те, що контрольована точка повинна переміщатися на певну кількість дюймів за оберт шпинделя, залежно від того, які одиниці довжини використовуються і яка вісь або осі рухаються. G95 не підходить для нарізування різьби, для нарізування різьби використовуйте G33 або G76. G95 вимагає підключення spindle.N.speed-in. Фактичний шпиндель, з яким синхронізується подача, вибирається параметром $.

Це помилка, якщо:

  • Режим зворотної подачі часу активний, і рядок з G1, G2 або G3 (явно чи неявно) не має F-слова.

  • Нова швидкість подачі не вказана після перемикання на G94 або G95

60. Режим керування шпинделем G96, G97

G96 <D-> S- <$-> (Режим постійної швидкості поверхні)
G97 S- <$-> (Режим обертів за хвилину)
  1. D - максимальна швидкість обертання (об/хв), опціонально

  2. S - швидкість шпинделя

  3. $ - шпиндель, швидкість якого буде змінюватися, необов’язково.

    • G96 S- <D-> - вибирає постійну поверхневу швидкість S:

      • У футах за хвилину, якщо діє G20,

      • або метрів за хвилину, якщо діє G21.

При використанні G96 переконайтеся, що X0 в поточній системі координат (включаючи зміщення та довжину інструменту) є центром обертання, інакше LinuxCNC не забезпечить бажану швидкість поверхні. G96 не залежить від режиму радіуса або діаметра.

Щоб досягти режиму CSS на вибраних шпинделях, запрограмуйте послідовні команди G96 для кожного шпинделя перед видачею M3.

  • «G97» вибирає режим обертів за хвилину.

Приклад рядка G96
G96 D2500 S250 (встановіть CSS з максимальними обертами 2500 та швидкістю обробки поверхні 250)

Це помилка, якщо:

  • S не вказано з G96

  • Подача задається в режимі G96, коли шпиндель не обертається

61. G98, G99 Рівень повернення стандартного циклу

Коли шпиндель відводить назад під час стандартних циклів, є два варіанти на вибір:

  • G98 - відведення в положення, в якому вісь знаходилася безпосередньо перед запуском цієї серії з одного або кількох суміжних стандартних циклів.

  • G99 - відведення в положення, задане словом R стандартного циклу.

Запрограмуйте «G98», і готовий цикл буде використовувати положення Z перед готовим циклом як положення повернення Z, якщо воно вище за значення R, вказане в циклі. Якщо воно нижче, буде використовуватися значення R. Слово R має різне значення в режимі абсолютної відстані та режимі інкрементальної відстані.

G98 Відведення до початку
G0 X1 Y2 Z3
G90 G98 G81 X4 Y5 Z-0.6 R1.8 F10

Код G98 у другому рядку вище означає, що зворотний рух буде до значення Z у першому рядку, оскільки воно вище за вказане значення R.

«Початкова» (G98) площина скидається щоразу, коли режим циклічного руху припиняється, як явно (G80), так і неявно (будь-який код руху, що не є циклом). Перемикання між режимами циклу (наприклад, з G81 на G83) НЕ скидає «початкову» площину. Під час серії циклів можна перемикатися між G98 і G99.