1. Вступ
AXIS — це графічний інтерфейс для LinuxCNC, який має попередній перегляд у реальному часі та відображення графіка. Він написаний на Python та використовує Tk та OpenGL для відображення інтерфейсу користувача.
2. Початок роботи
Якщо ваша конфігурація наразі не налаштована на використання AXIS, ви можете змінити це, відредагувавши файл .ini (INI-файл). У розділі [DISPLAY] змініть рядок [DISPLAY] на DISPLAY = axis.
Зразок конфігурації sim/axis.ini вже налаштований на використання AXIS як інтерфейсу.
When AXIS starts, a window like the one in the figure [fig:axis-window] above opens.
2.1. Налаштування INI
Для отримання додаткової інформації про налаштування файлу INI, які можуть змінити роботу AXIS, див. розділи Display Section та Axis Section глави «Налаштування INI».
-
CYCLE_TIME - Налаштування швидкості відгуку графічного інтерфейсу користувача в мілісекундах. Типове значення 100, діапазон використання 50 - 200.
(з міркувань сумісності з попередніми версіями приймається час у секундах (.05 -.2), але для узгодження з іншими екранами краще використовувати мілісекунди).
[DISPLAY] CYCLE_TIME = 100
-
PREVIEW_TIMEOUT - Встановити час очікування в секундах для завантаження попереднього перегляду G-коду. Якщо аналіз G-коду триває довше, ніж це, з’являється повідомлення і на графічному дисплеї відображається тільки початкова частина програми. Вказавши 0 або залишивши налаштування без змін, час очікування не встановлюється.
[DISPLAY] PREVIEW_TIMEOUT = 5
2.2. Типова сесія
-
Запустіть LinuxCNC та виберіть файл конфігурації.
-
Відпустіть кнопку АВАРІЙНОЇ СТОПИ (F1) та увімкніть живлення машини (F2).
-
Головна сторінка всіх осей.
-
Завантажте файл G-коду.
-
Використайте графік попереднього перегляду, щоб перевірити правильність програми.
-
Завантажте матеріал.
-
Встановіть правильне зміщення для кожної осі за допомогою штовхання та використання кнопки «Touch Off» за потреби.
-
Запустіть програму.
-
Щоб знову обробити той самий файл, поверніться до кроку 6. Щоб обробити інший файл, поверніться до кроку 4.
-
Після завершення завдання вийдіть з AXIS.
|
Note
|
Повторне виконання тієї ж програми залежить від ваших налаштувань і вимог. Можливо, вам доведеться завантажити більше матеріалу і встановити зміщення або переміститися і встановити зміщення, а потім знову запустити програму. Якщо ваш матеріал закріплений, можливо, вам доведеться лише знову запустити програму. Дивіться Machine Menu для отримання додаткової інформації про команду запуску. |
3. Вікно AXIS
Вікно AXIS містить такі елементи:
-
Область відображення, яка відображає одне з наступного:
-
Попередній перегляд завантаженого файлу (у цьому випадку «axis.ngc»), а також поточне місцезнаходження «контрольованої точки» верстата з ЧПК. Пізніше в цій області буде відображено шлях, яким рухався верстат з ЧПК, який називається «backplot».
-
Велике зчитування, що показує поточне положення та всі зміщення.
-
-
Панель меню та панель інструментів, які дозволяють виконувати різні дії
-
«Вкладка ручного керування» – дозволяє рухати верстат, вмикати або вимикати шпиндель, а також вмикати або вимикати подачу охолоджувальної рідини, якщо це включено до INI-файлу.
-
«Вкладка MDI» – тут можна вводити G-коди вручну, по одному рядку за раз. Тут також відображаються «Активні G-коди», які показують, які модальні G-коди активні.
-
«Feed Override» (Перевищення швидкості подачі) — дозволяє змінювати швидкість запрограмованих рухів. Максимальне значення за замовчуванням становить 120 % і може бути змінено в файлі INI. Докладнішу інформацію див. у розділі Display Section файлу INI.
-
«Перевірка швидкості шпинделя» – дозволяє збільшувати або зменшувати швидкість шпинделя.
-
«Швидкість поштовхового переміщення» – дозволяє встановити швидкість поштовхового переміщення в межах, встановлених у файлі INI. Див. розділ Display файлу INI для отримання додаткової інформації.
-
«Максимальна швидкість» – дозволяє обмежити максимальну швидкість усіх запрограмованих рухів (крім синхронізованого зі шпинделем руху).
-
Область відображення тексту, яка показує завантажений G-код.
-
Смуга стану, яка показує стан верстата. На цьому знімку екрана верстат увімкнено, інструмент не вставлено, а відображуване положення — «Відносне» (показує всі зміщення) та «Фактичне» (показує положення зворотного зв’язку).
3.1. Пункти меню
Деякі пункти меню можуть бути неактивними залежно від того, як налаштовано ваш INI-файл. Для отримання додаткової інформації про налаштування див. INI Chapter.
3.1.1. Меню «Файл»
-
«Відкрити…» — відкриває стандартне діалогове вікно для відкриття файлу G-коду, який потрібно завантажити в AXIS. Якщо ви налаштували LinuxCNC для використання програми-фільтра, ви також можете її відкрити. Докладнішу інформацію див. у розділі FILTER Section конфігураційного файлу INI.
-
«Останні файли» – відображає список нещодавно відкритих файлів.
-
«Редагувати…» — відкрийте поточний файл G-коду для редагування, якщо у вашому файлі INI налаштований редактор. Докладнішу інформацію про вказання редактора, який слід використовувати, див. у розділі DISPLAY Section.
-
«Перезавантажити» — перезавантажити поточний файл G-коду. Якщо ви його редагували, необхідно перезавантажити, щоб зміни набули чинності. Якщо ви зупинили файл і хочете почати з початку, перезавантажте файл. Перезавантаження на панелі інструментів відбувається так само, як і в меню.
-
«Зберегти G-код як…» – Зберегти поточний файл з новим ім’ям.
-
«Властивості» – сума швидкого переміщення та подачі. Не враховує прискорення, змішування або режим траєкторії, тому час, що повідомляється, ніколи не буде меншим за фактичний час виконання.
-
«Редагувати таблицю інструментів…» – те саме, що й «Редагувати», якщо ви визначили редактор, ви можете відкрити таблицю інструментів та редагувати її.
-
«Перезавантажити таблицю інструментів» – після редагування таблиці інструментів її необхідно перезавантажити.
-
«Редактор сходів» – якщо ви завантажили ClassicLadder, ви можете редагувати його звідси. Див. розділ ClassicLadder для отримання додаткової інформації.
-
Quit - Завершує поточний сеанс LinuxCNC.
3.1.2. Меню машини
-
«Увімкнути/вимкнути аварійну зупинку F1» – Змінити стан аварійної зупинки.
-
«Перемикач живлення машини F2» – Змінити стан живлення машини, якщо аварійна зупинка не ввімкнена.
-
«Запустити програму» – Запустити поточну завантажену програму з початку.
-
«Виконати від вибраного рядка» — виберіть рядок, з якого потрібно почати. Використовуйте цю функцію з обережністю, оскільки вона спочатку перемістить інструмент у потрібне положення перед рядком, а потім виконає решту коду.
|
Warning
|
Не використовуйте команду «Запустити з вибраного рядка», якщо ваша G-програма містить підпрограми. |
-
Step - Один крок через програму.
-
Pause - Призупинити програму.
-
Resume - Відновіть біг після паузи.
-
«Зупинити» – Зупинити запущену програму. Якщо після зупинки вибрати «Запустити», програма почнеться з початку.
-
«Зупинити на лінії M1» – якщо досягнуто лінії M1 і це позначено, виконання програми зупиниться на лінії M1. Натисніть «Відновити», щоб продовжити.
-
«Пропускати рядки з символом «/»» – Якщо рядок починається з символу «/» і цей параметр позначено, рядок буде пропущено.
-
«Очистити історію MDI» – очищає вікно історії MDI.
-
«Копіювати з історії MDI» – копіює історію MDI в буфер обміну
-
«Вставити в історію MDI» – Вставити з буфера обміну у вікно історії MDI
-
«Калібрування» — запускає помічник калібрування (emccalib.tcl). Калібрування зчитує файл HAL і для кожного «setp», що використовує змінну з файлу INI, який знаходиться в розділі [AXIS_L], [JOINT_N], [SPINDLE_S] або [TUNE], створює запис, який можна редагувати та тестувати.
-
«Показати конфігурацію HAL» – відкриває вікно конфігурації HAL, де можна відстежувати компоненти HAL, контакти, параметри, сигнали, функції та потоки.
-
«HAL Meter» – відкриває вікно, де можна контролювати окремий контакт HAL, сигнал або параметр.
-
«HAL Scope» – відкриває віртуальний осцилограф, який дозволяє будувати графік залежності значень HAL від часу.
-
«Показати стан LinuxCNC» – відкриває вікно, що відображає стан LinuxCNC.
-
«Встановити рівень налагодження» – відкриває вікно, де можна переглянути рівні налагодження, а деякі з них – встановити.
-
Homing - Додому одну або всі осі.
-
Unhoming - Зняти з базового положення одну або всі осі.
-
«Нульова система координат» – встановити всі зміщення рівними нулю у вибраній системі координат.
-
Інструмент дотику вимкнено
-
«Дотик інструменту до заготовки» — під час виконання дотику введене значення є відносним до поточної системи координат заготовки («G5x»), зміненої зміщенням осі («G92»). Після завершення дотику відносна координата для вибраної осі стане введеним значенням. Див. G10 L10 у розділі «G-код».
-
«Зупинка інструменту на кріпленні» — під час виконання зупинки інструменту введене значення є відносним до дев’ятої («G59.3») системи координат, при цьому зміщення осі («G92») ігнорується. Це корисно, коли на верстаті є пристрій для зняття інструменту з фіксованим розташуванням, а дев’ята система координат («G59.3») налаштована таким чином, що кінчик інструменту нульової довжини знаходиться в початку координат пристрою, коли відносні координати дорівнюють 0. Див. G10 L11 у розділі «G-код».
-
3.1.3. Переглянути меню
-
«Вид зверху» – вид зверху (або вид Z) відображає G-код вздовж осі Z від позитивного до негативного напрямку. Цей вид найкраще підходить для перегляду X та Y.
-
«Повернений вигляд зверху» — Повернений вигляд зверху (або повернений вигляд по осі Z) також відображає G-код вздовж осі Z від позитивного до негативного значення. Але іноді зручно відображати осі X і Y, повернені на 90 градусів, щоб краще відповідати екрану. Цей вигляд також найкраще підходить для перегляду X і Y.
-
«Вид збоку» – Вигляд збоку (або вигляд X) відображає G-код вздовж осі X від позитивного до негативного положення. Цей вигляд найкраще підходить для перегляду осей Y та Z.
-
«Вид спереду» – Вид спереду (або вид Y) відображає G-код вздовж осі Y від негативного до позитивного. Цей вид найкраще підходить для перегляду X та Z.
-
«Перспективний вигляд» — Перспективний вигляд (або P-вигляд) відображає G-код, дивлячись на деталь з регульованої точки зору, за замовчуванням X+, Y-, Z+. Положення можна регулювати за допомогою миші та селектора перетягування/обертання. Цей вигляд є компромісним, і хоча він добре показує три (до дев’яти!) осі на двовимірному дисплеї, часто бувають елементи, які важко побачити, що вимагає зміни точки зору. Цей вигляд найкраще підходить, коли ви хочете побачити всі три (до дев’яти) осі одночасно.
-
«Відображення в дюймах» – встановлення масштабування відображення AXIS у дюймах.
-
«Відображення в міліметрах» – встановити масштаб відображення AXIS у міліметрах.
-
«Показати програму» – за потреби попередній перегляд завантаженої програми G-коду можна повністю вимкнути.
-
«Показати програму швидкого переміщення» — на попередньому перегляді завантаженої програми G-коду швидкість подачі (G1, G2, G3) завжди відображається білим кольором. Але відображення швидких переміщень (G0) блакитним кольором можна вимкнути за бажанням.
-
«Програма з альфа-змішеним зображенням» – цей параметр спрощує попередній перегляд складних програм, але може призвести до повільнішого відображення попереднього перегляду.
-
«Показати графік у реальному часі» – підсвічування траєкторій подачі (G1, G2, G3) під час руху інструменту можна вимкнути за потреби.
-
«Показати інструмент» – за потреби відображення конуса/циліндра інструменту можна вимкнути.
-
«Показати межі» – відображення меж (максимального переміщення в кожному напрямку осі) завантаженої програми G-коду можна вимкнути за потреби.
-
«Показати зміщення» — вибране зміщення кріплення (G54-G59.3) можна відобразити у вигляді набору трьох ортогональних ліній: червоної, синьої та зеленої. Цей показ зміщення (або нульової точки кріплення) можна вимкнути за бажанням.
-
«Показати межі машини» — максимальні межі переміщення машини для кожної осі, встановлені в файлі INI, відображаються у вигляді прямокутного поля, обведеного червоними пунктирними лініями. Це корисно під час завантаження нової програми G-коду або під час перевірки, яке зміщення кріплення потрібно, щоб програма G-коду не виходила за межі переміщення вашої машини. Цю функцію можна вимкнути, якщо вона не потрібна.
-
«Показати швидкість» – відображення швидкості іноді корисне, щоб побачити, наскільки близько ваша машина працює до своїх розрахункових швидкостей. За бажанням його можна вимкнути.
-
«Показати відстань до кінця» — відстань до кінця є дуже корисною інформацією, яку варто знати під час першого запуску невідомої програми G-коду. У поєднанні з елементами керування швидким переходом і швидкістю подачі можна уникнути небажаного пошкодження інструменту та верстата. Після налагодження програми G-коду та її безперебійного виконання відображення відстані до кінця можна вимкнути за бажанням.
-
«Координати великим шрифтом…» – Координати осей та швидкість, задані заздалегідь, відображатимуться великим шрифтом у вигляді траєкторії інструменту.
-
«Очистити живий графік» — під час переміщення інструменту на дисплеї AXIS виділяється траєкторія G-коду. Щоб повторити програму або краще роздивитися область, що вас цікавить, можна очистити раніше виділені траєкторії.
-
«Показати командну позицію» – це позиція, в яку LinuxCNC спробує перейти. Після зупинки руху LinuxCNC спробує утримати цю позицію.
-
«Показати фактичне положення» — фактичне положення — це виміряне положення, зчитане з енкодерів системи або змодельоване генераторами кроків. Воно може дещо відрізнятися від заданого положення з багатьох причин, включаючи налаштування PID, фізичні обмеження або квантування положення.
-
«Показати положення машини» – це положення в незміщених координатах, встановлене за допомогою функції «Перенаправлення».
-
«Показати відносне положення» – це положення машини, змінене за допомогою зміщень «G5x», «G92» та «G43».
3.1.4. Меню довідки
-
«Про AXIS» – Ми всі знаємо, що це таке.
-
«Короткий довідник» – показує комбінації клавіш.
3.2. Кнопки панелі інструментів
Зліва направо на дисплеї AXIS кнопки панелі інструментів (сполучення клавіш показано [у дужках]):
-
Перемикач аварійної зупинки [F1] (також називається E-Stop)
-
Перемикач живлення машини [F2]
-
Відкрити файл G-коду [O]
-
Перезавантажити поточний файл [Ctrl-R]
-
Почати виконання поточного файлу [R]
-
Виконати наступний рядок [T]
-
Призупинити виконання [P] Відновити виконання [S]
-
Зупинити виконання програми [ESC]
-
Перемикання пропуску рядків за допомогою "/" [Alt-M-/]
-
Увімкнути/вимкнути необов’язкову паузу [Alt-M-1]
-
Збільшити
-
Зменшити масштаб
-
Вид зверху
-
Повернутий вид зверху
-
Вид збоку
-
Вид спереду
-
Перспективний вигляд
-
Перемикання між режимом перетягування та обертання [D]
-
Очистити живу задню діаграму [Ctrl-K]
3.3. Область графічного відображення
У верхньому лівому куті екрана програми відображається координатна позиція кожної осі. Праворуч від числа відображається символ початку координат: images/axis-homed.png ["символ початку координат відображається, якщо вісь була встановлена в початкове положення"], якщо вісь була встановлена в початкове положення.
Символ обмеження
відображається праворуч від номера координатної позиції, якщо вісь знаходиться на одному зі своїх кінцевих вимикачів.
Щоб правильно інтерпретувати координатні номери позиції, зверніться до індикатора «Позиція:» у рядку стану. Якщо позиція є «Фактичною машиною», то відображуване число знаходиться в системі координат машини. Якщо це «Відносна фактична», то відображуване число знаходиться в системі координат зміщення. Коли відображувані координати є відносними і встановлено зміщення, на дисплеї з’явиться блакитний маркер machine origin
.
Якщо положення є «Заданим», то відображається точна координата, вказана в команді G-коду. Якщо воно є «Фактичним», то це положення, до якого фактично перемістилася машина. Ці значення можуть відрізнятися від заданого положення через наступні помилки, мертву зону, роздільну здатність енкодера або розмір кроку. Наприклад, якщо ви задаєте переміщення до X 0,0033 на фрезерному верстаті, але один крок крокового двигуна або один імпульс енкодера дорівнює 0,00125, то «задане» положення може бути 0,0033, але «фактичне» положення буде 0,0025 (2 кроки) або 0,00375 (3 кроки).
Коли файл завантажується, його попередній перегляд відображається в області відображення. Швидкі переміщення (наприклад, ті, що виконуються командою «G0») відображаються у вигляді блакитних ліній. Переміщення зі швидкістю подачі (наприклад, ті, що виконуються командою «G1») відображаються у вигляді суцільних білих ліній. Затримки (наприклад, ті, що виконуються командою «G4») відображаються у вигляді маленьких рожевих знаків «X».
Рухи G0 (швидкі) перед рухом подачі не відображаються на попередньому перегляді. Швидкі рухи після T<n> (заміна інструменту) не відображаються на попередньому перегляді до першого руху подачі. Щоб вимкнути будь-яку з цих функцій, запрограмуйте G1 без будь-яких рухів перед рухами G0.
По кожній осі показано «обсяги» програми. На кінцях вказані найменше та найбільше значення координат. Посередині показано різницю між координатами.
Коли деякі координати перевищують «м’які обмеження» в файлі INI, відповідний розмір відображається іншим кольором і обводиться рамкою. На малюнку нижче максимальне м’яке обмеження перевищено на осі X, про що свідчить рамка навколо значення координати. Мінімальний хід по осі X програми становить -1,95, максимальний хід по осі X становить 1,88, а програма вимагає ходу по осі X 3,83 дюйма. Щоб перемістити програму так, щоб вона знаходилася в межах переміщення верстата в цьому випадку, перемістіть її вліво і знову виконайте Touch Off X.
Коли інструмент не завантажено, розташування кінчика інструмента позначається «конусом інструмента». «Конус інструмента» не надає вказівок щодо форми, довжини чи радіуса інструмента.
Коли інструмент завантажується (наприклад, за допомогою команди MDI T1 M6), конус змінюється на циліндр, який показує діаметр інструмента, вказаний у файлі таблиці інструментів.
Коли машина рухається, вона залишає слід, який називається «бекплот». Колір лінії вказує на тип руху: жовтий для ривків, блідо-зелений для швидких рухів, червоний для прямих рухів зі швидкістю подачі та пурпуровий для кругових рухів зі швидкістю подачі.
AXIS може опціонально відображати сітку в ортогональних видах. Увімкніть або вимкніть сітку за допомогою меню «Сітка» в розділі «Вид». Коли сітка увімкнена, вона відображається у верхньому та оберненому верхньому видах; коли система координат не обертається, сітка відображається також у передньому та бічному видах. Попередні налаштування в меню «Сітка» контролюються елементом INI-файлу [DISPLAY]GRIDS. Якщо не вказано, за замовчуванням використовуються значення 10 мм, 20 мм, 50 мм, 100 мм, 1 дюйм, 2 дюйми, 5 дюймів, 10 дюймів.
Вказівка дуже дрібної сітки може знизити продуктивність.
Клацнувши лівою кнопкою миші на частині діаграми попереднього перегляду, лінія буде виділена як у графічному, так і в текстовому режимах. Клацнувши лівою кнопкою миші на порожній області, виділення буде знято.
Перетягуванням з натиснутою лівою кнопкою миші діаграма попереднього перегляду буде зміщена (панорамована).
Перетягуючи з натиснутою клавішею Shift і лівою кнопкою миші або перетягуючи з натиснутим колесом миші, графік попереднього перегляду буде обертатися. Коли лінія виділена, центром обертання є центр лінії. В іншому випадку центром обертання є центр всієї програми.
Обертаючи колесо миші, або перетягуючи вказівник з натиснутою правою кнопкою миші, або перетягуючи вказівник з натиснутою клавішею Control та лівою кнопкою миші, можна збільшити або зменшити масштаб діаграми попереднього перегляду.
Натиснувши один із значків «Попередньо встановлений вигляд» або клавішу «V», можна вибрати кілька попередньо встановлених виглядів.
3.4. Область відображення тексту
Клацнувши лівою кнопкою миші на рядку програми, цей рядок буде виділено як у графічному, так і в текстовому екранах.
Під час роботи програми рядок, що виконується, виділяється червоним кольором. Якщо користувач не вибрав жодного рядка, текстовий дисплей автоматично прокручується, щоб відобразити поточний рядок.
3.5. Ручне керування
Коли верстат увімкнено, але програма не виконується, елементи на вкладці «Ручне керування» можна використовувати для переміщення верстата або керування його шпинделем та охолоджуючою рідиною.
Коли машина вимкнена або коли програма виконується, ручне керування недоступне.
Багато з описаних нижче елементів не є корисними на всіх машинах. Коли AXIS виявляє, що певний контакт не підключений в HAL, відповідний елемент на вкладці «Ручне керування» видаляється. Наприклад, якщо контакт HAL «spindle.0.brake» не підключений, кнопка «Brake» не з’явиться на екрані. Якщо встановлено змінну середовища «AXIS_NO_AUTOCONFIGURE», ця функція вимикається і всі елементи з’являться.
«AXIS» дозволяє вручну переміщати верстат. Ця дія називається «поступальним рухом». Спочатку виберіть вісь, яку потрібно перемістити, натиснувши на неї. Потім натисніть і утримуйте кнопку «+» або «-» залежно від бажаного напрямку руху. Перші чотири осі також можна переміщати за допомогою клавіш зі стрілками (X і Y), клавіш PAGE UP і PAGE DOWN (Z) та клавіш [ і ] (A).
Якщо вибрано «Безперервно», рух триватиме доти, доки натиснуто кнопку або клавішу. Якщо вибрано інше значення, машина буде рухатися на відстань, що відображається, кожного разу, коли натискається кнопка або клавіша. За замовчуванням доступні значення «0,1000; 0,0100; 0,0010; 0,0001».
Див. розділ DISPLAY для отримання додаткової інформації про встановлення приростів.
Параметр INI-файлу [KINS]JOINTS визначає загальну кількість з’єднань для системи. З’єднання може бути налаштоване з перемикачем початкового положення або для «негайного» повернення в початкове положення. З’єднання можуть визначати послідовність початкового положення, яка організовує порядок повернення груп з’єднань у початкове положення.
Якщо всі з’єднання налаштовані для повернення в початкове положення і мають дійсні послідовності повернення, кнопка повернення в початкове положення буде показувати «Повернути все». Натискання кнопки «Повернути все» (або клавіші Ctrl-HOME) ініціює повернення всіх з’єднань у початкове положення за допомогою визначених послідовностей повернення. Натискання клавіші HOME поверне у початкове положення з’єднання, що відповідає поточній вибраній осі, навіть якщо послідовність повернення не визначена.
Якщо не всі осі мають дійсні послідовності додому, кнопка переведення в початкове положення відображатиме «Додому вісь» і переведе з’єднання в початкове положення лише для поточної вибраної осі. Кожну вісь потрібно вибрати та перевести в початкове положення окремо.
Випадаюче меню «Машина/Повернення до початкового положення» пропонує альтернативний метод повернення осей до початкового положення. Випадаюче меню «Машина/Зняття з початкового положення» надає засоби для повернення осей до початкового положення.
Якщо у вашій машині в конфігурації не визначено перемикачі початкового положення, кнопка «Home» (Початкове положення) встановить поточне положення вибраної осі як абсолютне положення 0 для цієї осі та встановить біт «is-homed» (початкове положення) для цієї осі.
Див. розділ Налаштування самоналаштування для отримання додаткової інформації.
Функціонування аналогічне функції «Ідентифікація кінематики», але перед поверненням у вихідне положення за допомогою перемикачів вибору вибираються з’єднання за номером. Кнопка повернення у вихідне положення відображатиме «Повернути все», якщо всі з’єднання налаштовані для повернення у вихідне положення і мають дійсні послідовності повернення. В іншому випадку кнопка повернення у вихідне положення відображатиме «Повернути з’єднання».
Див. розділ Налаштування самоналаштування для отримання додаткової інформації.
Натисканням кнопки «Touch Off» або клавіші END змінюється «G5x offset» для поточної осі, так що поточне значення осі буде відповідати заданому значенню. Вирази можна вводити, використовуючи правила для програм rs274ngc, за винятком того, що не можна посилатися на змінні. Отримане значення відображається у вигляді числа.
Див. також пункти меню «Машина»: «Сенсорна деталь» та «Тримач сенсорної деталі».
У файлі .INI можна налаштувати вісь, щоб включити фактичне значення положення осі в розрахунок відхилення, додаючи або віднімаючи це значення. Це в першу чергу корисно для верстатів, які мають немоторизовану вісь, наприклад, піноль з енкодером. Коли ця функція ввімкнена для осі, у заголовку вікна відхилення буде вказано (system ACTUAL).
Див. [axis:touchoff-actual] для отримання додаткової інформації.
Натисканням кнопки «Tool Touch Off» (Вимкнення дотику інструмента) довжина інструменту та зміщення поточного завантаженого інструменту будуть змінені таким чином, щоб поточне положення кінчика інструмента відповідало введеній координаті.
Див. також опції «Торкання інструменту до заготовки» та «Торкання інструменту до пристосування» в меню «Верстат».
Натиснувши кнопку «Override Limits» (Перевищення обмежень), машина тимчасово отримає дозвіл на переміщення за межі фізичного кінцевого вимикача. Цей прапорець доступний тільки в разі спрацьовування кінцевого вимикача. Перевищення обмежень скидається після одного переміщення. Якщо вісь налаштована з окремими позитивними та негативними кінцевими вимикачами, LinuxCNC дозволить переміщення тільки в правильному напрямку. «Override Limits» (Перевищення обмежень) не дозволить переміщення за межі м’якого обмеження. Єдиний спосіб вимкнути м’яке обмеження на осі — це «Unhome» (Скинути нуль)._
Кнопки в першому рядку вибирають напрямок обертання шпинделя: проти годинникової стрілки, зупинка, за годинниковою стрілкою. Напрямок проти годинникової стрілки відображається тільки в тому випадку, якщо в файлі HAL є контакт «spindle.0.reverse» (це може бути «net trick-axis spindle.0.reverse»). Кнопки в наступному рядку збільшують або зменшують швидкість обертання. Поле для позначки в третьому рядку дозволяє ввімкнути або вимкнути гальмо шпинделя. Залежно від конфігурації вашої машини, не всі елементи в цій групі можуть бути відображені. Натискання кнопки запуску шпинделя встановлює швидкість «S» на 1.
Дві кнопки дозволяють вмикати та вимикати охолоджувальні рідини «Розпилення» та «Потік». Залежно від конфігурації вашої машини, можуть відображатися не всі елементи цієї групи.
3.6. MDI
MDI дозволяє вводити команди G-коду вручну. Коли верстат вимкнено або коли програма виконується, елементи керування MDI недоступні.
-
«Історія» – тут відображаються команди MDI, які були введені раніше в цьому сеансі.
-
«Команда MDI» – дозволяє ввести команду G-коду для виконання. Виконайте команду, натиснувши Enter або натиснувши «Перейти».
-
«Активні G-коди» — показує «модальні коди», які активні в інтерпретаторі. Наприклад, «G54» вказує, що «зсув G54» застосовується до всіх введених координат. У режимі «Авто» активні G-коди представляють коди після будь-якого попереднього зчитування інтерпретатором.
3.7. Перевизначення каналу
Переміщуючи цей повзунок, можна змінити запрограмовану швидкість подачі. Наприклад, якщо програма запитує «F60», а повзунок встановлено на 120%, то результуюча швидкість подачі становитиме 72.
3.8. Коригування швидкості шпинделя
Переміщуючи цей повзунок, можна змінювати запрограмовану швидкість шпинделя. Наприклад, якщо програма вимагає S8000, а повзунок встановлений на 80%, то швидкість шпинделя буде 6400. Цей елемент з’являється тільки тоді, коли підключений вивід HAL «spindle.0.speed-out».
3.9. Швидкість штовхання
Переміщуючи цей повзунок, можна змінювати швидкість переміщення. Наприклад, якщо повзунок встановлено на 1 дюйм/хв, то переміщення на 0,01 дюйма буде виконано приблизно за 0,6 секунди, або 1/100 хвилини. Ближче до лівого краю (повільні переміщення) значення розташовані близько одне до одного, а ближче до правого краю (швидкі переміщення) вони розташовані набагато далі одне від одного, що дозволяє використовувати широкий діапазон швидкостей переміщення з точним контролем, коли це найбільш важливо.
На верстатах з поворотною віссю відображається другий повзунок швидкості поштовхового переміщення. Цей повзунок встановлює швидкість поштовхового переміщення для поворотних осей (A, B та C).
3.10. Максимальна швидкість
Переміщуючи цей повзунок, можна встановити максимальну швидкість. Це обмежує максимальну швидкість для всіх запрограмованих рухів, окрім рухів, синхронізованих зі шпинделем.
4. Елементи керування клавіатурою
Майже всі дії в AXIS можна виконати за допомогою клавіатури. Повний список клавіатурних скорочень можна знайти в довіднику AXIS Quick Reference, який можна відкрити, вибравши Help > Quick Reference. Багато скорочень недоступні в режимі MDI.
4.1. Клавіші перевизначення подачі
|
Note
|
Щоб дізнатися більше про розкладку іспанської клавіатури, ознайомтеся з перекладеною документацією. |
Клавіші Feed Override поводяться по-різному в ручному режимі. Клавіші «12345678» вибирають вісь, якщо вона запрограмована. Якщо у вас є 3 осі, то «» вибере вісь 0, «1» вибере вісь 1, а «2» вибере вісь 2. Решта цифрових клавіш як і раніше встановлюють Feed Override. Під час виконання програми «1234567890» встановлює перекриття подачі від 0% до 100%.
Найчастіше використовувані комбінації клавіш наведено в наступній таблиці:
| Натискання клавіші | Вжиті заходи | Режим |
|---|---|---|
F1 |
Увімкнути/вимкнути аварійну зупинку |
Будь-який |
F2 |
Увімкнення/вимкнення машини |
Будь-який |
`, 1 .. 9, 0 |
Встановити перевизначення подачі від 0% до 100% |
Варіюється |
X, ` |
Активувати першу вісь |
Ручний |
Y, 1 |
Активувати другу вісь |
Ручний |
Z, 2 |
Активувати третю вісь |
Ручний |
A, 3 |
Активувати четверту вісь |
Ручний |
I |
Виберіть крок поштовху |
Ручний |
C |
Безперервний біг підтюпцем |
Ручний |
Control-Home |
Виконайте послідовність самонаведення |
Ручний |
Кінець |
Touch off: Встановити зміщення G5x для активної осі |
Ручний |
Ліворуч, праворуч |
Поштовховий рух першої осі |
Ручний |
Вгору, вниз |
Поворот другої осі |
Ручний |
Сторінка вгору, сторінка вниз |
Поворот третьої осі |
Ручний |
[, ] |
Поворот четвертої осі |
Ручний |
O |
Відкрити файл |
Ручний |
Control-R |
Перезавантажити файл |
Ручний |
R |
Запустити файл |
Ручний |
P |
Призупинити виконання |
Авто |
S |
Виконання резюме |
Авто |
ESC |
Зупинити виконання |
Авто |
Control-K |
Очистити задній план |
Автоматичний/Ручний |
V |
Перемикання між попередньо встановленими режимами перегляду |
Автоматичний/Ручний |
Shift-Left,Right |
Швидка вісь X |
Ручний |
Shift-Up,Down |
Швидка вісь Y |
Ручний |
Shift-PgUp, PgDn |
Швидка вісь Z |
Ручний |
@ |
Перемикання між фактичним/заданим значенням |
Будь-який |
# |
Перемикання між відносним/машинним |
Будь-який |
5. Показати стан LinuxCNC (linuxcnctop)
AXIS містить програму під назвою «linuxcnctop», яка показує деякі деталі стану LinuxCNC. Ви можете запустити цю програму, викликавши Machine > Show LinuxCNC Status
Назва кожного елемента відображається в лівому стовпці. Поточне значення відображається в правому стовпці. Якщо значення нещодавно змінилося, воно відображається на червоному фоні.
6. MDI-інтерфейс
AXIS включає програму під назвою «mdi», що є скороченням від «manual data input» (ручне введення даних), яка дозволяє вводити команди MDI в текстовому режимі в запущену сесію LinuxCNC. Ви можете запустити цю програму безпосередньо з командного рядка UNIX, відкривши термінал і ввівши:
mdi
Після запуску відображається запит «MDI>». Якщо введено порожній рядок, відображається поточна позиція верстата. Коли введено команду, вона надсилається на виконання до LinuxCNC.
Це приклад сеансу mdi:
$ mdi
MDI>
(0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI> G1 F5 X1
MDI>
(0.5928500000000374, 0.0, 0.0, 0.0, 0.0, 0.0)
MDI>
(1.0000000000000639, 0.0, 0.0, 0.0, 0.0, 0.0)
7. axis-remote
AXIS включає програму під назвою «axis-remote», яка може надсилати певні команди до запущеного AXIS. Доступні команди відображаються при запуску «axis-remote --help» і включають перевірку, чи працює AXIS («--ping»), завантаження файлу за назвою, перезавантаження поточного завантаженого файлу («--reload») та виведення AXIS («--quit»).
8. Ручна зміна інструменту
LinuxCNC включає в себе нереальний компонент HAL під назвою «hal_manualtoolchange», який відображає вікно з підказкою про те, який інструмент очікується при видачі команди «M6». Після натискання кнопки «OK» виконання програми продовжиться.
Компонент hal_manualtoolchange містить контакт HAL для кнопки, яку можна підключити до фізичної кнопки, щоб виконати зміну інструменту та прибрати вікно запиту (hal_manualtoolchange.change_button).
У файлі конфігурації HAL «lib/hallib/axis_manualtoolchange.hal» наведено команди HAL, необхідні для використання цього компонента.
hal_manualtoolchange можна використовувати, навіть коли AXIS не використовується як графічний інтерфейс. Цей компонент найбільш корисний, якщо у вас є попередньо налаштовані інструменти та ви використовуєте таблицю інструментів.
|
Note
|
Важлива примітка: після видачі команди T<n> пороги не відображатимуться на попередньому перегляді до наступного переміщення подачі після M6. Це може бути дуже заплутаним для більшості користувачів. Щоб вимкнути цю функцію для поточної програми зміни інструменту, введіть G1 без переміщення після T<n>. |
9. Модулі Python
AXIS містить кілька модулів Python, які можуть бути корисними для інших. Щоб отримати додаткову інформацію про один із цих модулів, скористайтеся командою pydoc <назва модуля> або прочитайте вихідний код. Ці модулі включають:
-
«emc» надає доступ до каналів команд, стану та помилок LinuxCNC
-
«gcode» надає доступ до інтерпретатора rs274ngc
-
«rs274» надає додаткові інструменти для роботи з файлами rs274ngc
-
«hal» дозволяє створювати компоненти HAL, написані на Python, які не працюють у реальному часі
-
«_togl» надає віджет OpenGL, який можна використовувати в застосунках Tkinter
Щоб використовувати ці модулі у власних скриптах, необхідно переконатися, що каталог, в якому вони знаходяться, знаходиться в шляху модулів Python. При запуску встановленої версії LinuxCNC це повинно відбуватися автоматично. При запуску «на місці» це можна зробити за допомогою «scripts/rip-environment».
10. Використання AXIS у режимі токарного верстата
Включення рядка «LATHE = 1» у розділ [DISPLAY] файлу INI дозволяє AXIS вибрати режим токарного верстата. Вісь «Y» не відображається в показаннях координат, вигляд змінюється, щоб показати вісь Z, що простягається вправо, і вісь X, що простягається до нижньої частини екрана, а також видаляються деякі елементи керування (наприклад, для попередньо встановлених видів). Показання координат для X замінюються діаметром і радіусом.
Натискання клавіші «V» зменшує масштаб, показуючи весь файл, якщо він завантажений.
У режимі токарного верстата відображається форма завантаженого інструменту (якщо такий є).
Щоб змінити відображення на токарний верстат із задньою обробкою, у розділі [DISPLAY] потрібно вказати значення «LATHE = 1» та «BACK_TOOL_LATHE = 1». Це переверне зображення та розмістить інструмент на задній стороні осі Z.
11. Використання AXIS у режимі різання пінопласту
Включення рядка «FOAM = 1» у розділ [DISPLAY] файлу INI дозволяє AXIS вибрати режим різання пінопласту. У попередньому перегляді програми рухи XY відображаються в одній площині, а рухи UV — в іншій. У реальному графіку лінії малюються між відповідними точками на площині XY і площині UV. Спеціальні коментарі (XY_Z_POS) і (UV_Z_POS) встановлюють координати Z цих площин, які за замовчуванням дорівнюють 0 і 1,5 одиниць машини.
12. Розширена конфігурація
При запуску AXIS створює контакти HAL для графічного інтерфейсу користувача,
а потім виконує файл HAL, названий у файлі INI: «[HAL]POSTGUI_HALFILE=<ім’я
файлу>». Зазвичай «<filename>» буде базовим іменем конфігурації
«_postgui» + «.hal», наприклад «lathe_postgui.hal», але може бути будь-яким
допустимим іменем файлу. Ці команди виконуються після побудови екрана,
гарантуючи доступність контактів HAL віджета. У файлі INI може бути кілька
рядків «POSTGUI_HALFILE=<ім’я файлу>». Кожен з них буде виконуватися по
черзі в порядку їх появи.
Для отримання додаткової інформації про налаштування INI-файлу, які можуть змінити спосіб роботи AXIS, див. розділ Display розділу про конфігурацію INI.
12.1. Фільтри програми
AXIS має можливість надсилати завантажені файли через «програму фільтрації». Цей фільтр може виконувати будь-яке бажане завдання: від такого простого, як перевірка, чи закінчується файл на «M2», до такого складного, як генерація G-коду з зображення.
Розділ «[FILTER]» файлу INI контролює роботу фільтрів. Спочатку для кожного типу файлу напишіть рядок «PROGRAM_EXTENSION». Потім вкажіть програму, яку потрібно виконати для кожного типу файлу. Ця програма отримує ім’я вхідного файлу як перший аргумент і повинна записувати код rs274ngc у стандартний вивід. Цей вивід буде відображатися в текстовій області, попередньо переглядатися в області відображення та виконуватися LinuxCNC при натисканні «Run». Наступні рядки додають підтримку конвертера «image-to-gcode», що входить до складу LinuxCNC:
[FILTER] PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image png = image-to-gcode gif = image-to-gcode
Також можна вказати інтерпретатора:
PROGRAM_EXTENSION = .py Python Script py = python
Таким чином, можна відкрити будь-який скрипт Python, а його вихідні дані будуть оброблятися як G-код. Один із таких прикладів скрипту доступний за адресою «nc_files/holecircle.py». Цей скрипт створює G-код для свердління низки отворів по колу.
Якщо встановлено змінну середовища AXIS_PROGRESS_BAR, то рядки, що записуються в stderr, мають вигляд
FILTER_PROGRESS=%d
встановить індикатор виконання AXIS на заданий відсоток. Цю функцію слід використовувати будь-яким фільтром, який працює протягом тривалого часу.
12.2. База даних ресурсів X
Кольори більшості елементів інтерфейсу користувача AXIS можна налаштувати за допомогою бази даних X Resource Database. Зразок файлу «axis_light_background» змінює кольори вікна backplot на схему «темні лінії на білому тлі», а також служить довідником для настроюваних елементів в області відображення. Зразок файлу «axis_big_dro» змінює розмір шрифту для відображення позиції на більший. Щоб використовувати ці файли:
xrdb -merge /usr/share/doc/emc2/axis_light_background
xrdb -merge /usr/share/doc/emc2/axis_big_dro
Щоб отримати інформацію про інші елементи, які можна налаштувати в програмах Tk, див. сторінки довідки Tk.
Оскільки сучасні настільні середовища автоматично встановлюють деякі параметри в базі даних ресурсів X, які негативно впливають на AXIS, за замовчуванням ці параметри ігноруються. Щоб елементи бази даних ресурсів X замінили стандартні параметри AXIS, додайте наступний рядок у ваші ресурси X:
*AXIS*optionLevel: widgetDefault
це призводить до створення вбудованих опцій на рівні опцій widgetDefault, щоб ресурси X (які мають рівень userDefault) могли їх перевизначити.
12.3. Джоґвіст
Для поліпшення взаємодії AXIS з фізичним джог-колесом поточна активна вісь, вибрана в графічному інтерфейсі користувача, також повідомляється на «контакті HAL» з назвою типу «axisui.jog.x». За винятком короткого проміжку часу після зміни поточної осі, тільки один з цих контактів одночасно має значення «TRUE», інші залишаються «FALSE».
Після того, як AXIS створив ці «піни HAL», він запускає HAL-файл, оголошений як: [HAL]POSTGUI_HALFILE. Це відрізняється від [HAL]HALFILE, який можна використовувати лише один раз.
12.4. ~/.axisrc
Якщо він існує, вміст ~/.axisrc виконується як вихідний код Python безпосередньо перед відображенням графічного інтерфейсу AXIS.
Деталі того, що може бути записано в ~/.axisrc, можуть змінюватися протягом циклу розробки.
Наступний код додає Control-Q як комбінацію клавіш для виходу.
root_window.bind("<Control-q>", "destroy .")
help2.append(("Control-Q", "Quit"))
Наступна команда зупиняє діалогове вікно «Ви дійсно хочете вийти?».
root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")
12.5. USER_COMMAND_FILE
Файл Python для конкретної конфігурації можна вказати за допомогою параметра INI-файлу «[DISPLAY]USER_COMMAND_FILE=filename.py». Як і файл «~/.axisrc», цей файл завантажується безпосередньо перед відображенням графічного інтерфейсу AXIS. Цей файл стосується саме конфігурації INI-файлу, а не домашнього каталогу користувача.
12.6. user_live_update()
GUI AXIS включає функцію no-op (заповнювач) під назвою «user_live_update()», яка виконується після завершення функції update() класу LivePlotter. Ця функція може бути реалізована в скрипті Python ~/.axisrc або скрипті Python «[DISPLAY]USER_COMMAND_FILE» для виконання періодичних дій, визначених користувачем. Деталі того, що можна виконати в цій функції, залежать від реалізації AXIS GUI і можуть змінюватися протягом циклу розробки.
12.7. user_hal_pins()
GUI AXIS включає функцію no-op (заповнювач) під назвою «user_hal_pins()».
Вона виконується відразу після виклику файлу .axisrc і безпосередньо перед ініціалізацією будь-яких панелей GladeVCP / вбудованих вкладок.
Ця функція може бути реалізована в скрипті Python ~/.axisrc або скрипті Python «[DISPLAY]USER_COMMAND_FILE» для створення власних контактів HAL, які використовують префікс «axisui.».
Використовуйте «comp» як посилання на екземпляр компонента HAL.
HAL comp.ready() викликається відразу після повернення цієї функції.
12.8. Зовнішній редактор
Опції меню Файл > Редагувати… та Файл > Редагувати таблицю інструментів… стають доступними після визначення редактора в розділі INI [DISPLAY]. Корисні значення включають EDITOR=gedit та EDITOR=gnome-terminal -e vim. Для отримання додаткової інформації див. розділ Display Section глави «Конфігурація INI».
12.9. Віртуальна панель керування
AXIS може відображати настроювану віртуальну панель керування у правій колонці або в нижньому рядку. Крім того, одна або кілька панелей можуть відображатися у вигляді вбудованих вкладок. Ви можете програмувати кнопки, індикатори, відображення даних тощо. Для отримання додаткової інформації див. розділи PyVCP та GladeVCP.
12.10. Контроль попереднього перегляду
У файл G-коду можна вставляти спеціальні коментарі, щоб контролювати поведінку попереднього перегляду AXIS. Якщо ви хочете обмежити відображення попереднього перегляду, використовуйте ці спеціальні коментарі. Все, що знаходиться між (AXIS,hide) і (AXIS,show), не буде відображатися під час попереднього перегляду. (AXIS,hide) і (AXIS,show) повинні використовуватися парами, причому (AXIS,hide) має бути першим. Все, що знаходиться після (AXIS,stop), не буде відображатися під час попереднього перегляду.
Ці коментарі корисні для розвантаження попереднього перегляду (наприклад, під час налагодження більшого файлу G-коду можна вимкнути попередній перегляд для певних деталей, які вже працюють нормально).
-
(AXIS,hide) Зупиняє попередній перегляд (має бути першим)
-
(AXIS,показати) Відновлює попередній перегляд (має слідувати за приховуванням)
-
(AXIS,стоп) Зупиняє попередній перегляд звідси і до кінця файлу.
-
(AXIS,notify,the_text) Відображає the_text як інформаційний дисплей
Це відображення може бути корисним у попередньому перегляді AXIS, коли коментарі (debug,message) не відображаються.
12.11. Доторкніться до місця призначення, використовуючи фактичне положення
Функція Touch Off може опціонально включати фактичне значення положення осі в розрахунок зміщення. Це в основному використовується в випадках, коли немоторизована вісь, така як піноль у фрезерному верстаті, надає зворотний зв’язок LinuxCNC через енкодер, але немає двигуна для управління рухом. Це дозволяє AXIS надавати дисплей DRO для такої осі з робочою функцією touch off.
Ця функція вмикається на осі шляхом зміни відповідного розділу «[AXIS_x]» у файлі .INI. Додайте опцію з назвою «TOUCHOFF_ACTUAL» і встановіть значення «PLUS» або «MINUS» залежно від того, як ви хочете застосувати фактичне положення до зміщення.
Приклад:
[AXIS_Z] TOUCHOFF_ACTUAL = MINUS
Зазвичай для встановлення цього зміщення використовується тільки задане положення осі, що означає, що воно не працює належним чином, оскільки немоторизовані осі ніколи не отримують команди на рух, а отже, їхнє задане положення завжди дорівнює 0.
Функція Touch off надсилає команду «G10 L20» до MDI для встановлення нового значення зміщення. Застосовуване значення зазвичай є тим самим значенням, яке введено у діалоговому вікні. Коли ця функція увімкнена, вона додає або віднімає значення поточного положення від значення, введеного у діалоговому вікні, залежно від того, як вона налаштована.
13. Axisui
Для поліпшення взаємодії AXIS з фізичними джог-колесами, вісь, яка в даний момент вибрана в графічному інтерфейсі, також повідомляється на контакті з назвою типу «axisui.jog.x». Один з цих контактів одночасно має значення «TRUE», а решта — «FALSE». Вони призначені для керування контактами, що вмикають джог-режим руху.
AXIS має контакти HAL, які вказують, яка радіокнопка поштовхового переміщення вибрана на вкладці «Ручне керування».
Введіть ім'я директорії
bit OUT axisui.jog.x
bit OUT axisui.jog.y
bit OUT axisui.jog.z
bit OUT axisui.jog.a
bit OUT axisui.jog.b
bit OUT axisui.jog.c
bit OUT axisui.jog.u
bit OUT axisui.jog.v
bit OUT axisui.jog.w
AXIS має контакт HAL для позначення кроку поштовху, вибраного на вкладці «Вручну».
Введіть ім'я директорії
float OUT axisui.jog.increment
AXIS має вихідний контакт HAL, який вказує на переривання. Контакт «axisui.abort» матиме значення «TRUE» та повернеться до значення «FALSE» через 0,3 мс.
Type Dir Name
bit OUT axisui.abort
AXIS має вихідний контакт HAL, який вказує на виникнення помилки. Контакт «axisui.error» залишатиметься в положенні «TRUE», доки всі сповіщення про помилки не будуть відхилені.
Type Dir Name
bit OUT axisui.error
AXIS має вхідні контакти HAL для очищення спливаючих повідомлень про помилки та інформацію.
Введіть. ім'я директорії
bit IN axisui.notifications-clear
bit IN axisui.notifications-clear-error
bit IN axisui.notifications-clear-info
AXIS має вхідний контакт HAL, який вмикає/вимикає функцію «Пауза/Відновлення».
Type Dir Name
bit IN axisui.resume-inhibit
14. Підказки щодо налаштування AXIS
AXIS є досить великою і складною для проникнення кодовою базою, що допомагає підтримувати стабільність коду, але ускладнює його налаштування.
Тут ми покажемо фрагменти коду для зміни поведінки або візуального вигляду екрану. Майте на увазі, що внутрішній код AXIS може час від часу змінюватися.
Не гарантується, що ці фрагменти коду будуть продовжувати працювати — вони можуть потребувати коригування.
14.1. Функція оновлення
У AXIS є функція під назвою user_live_update, яка викликається щоразу, коли AXIS оновлюється. Ви можете використовувати її для оновлення власних функцій.
# функція постійного оновлення def user_live_update(): print('i am printed every update...')
14.2. Вимкнути діалогове вікно закриття
# вимкніть діалогове вікно "Закрити" root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")
14.3. Зміна шрифту тексту
# змінити шрифт font = 'sans 11' fname,fsize = font.split() root_window.tk.call('font','configure','TkDefaultFont','-family',fname,'-size',fsize) # переробити текст у вкладках, щоб вони змінювали розмір відповідно до нового шрифту за замовчуванням root_window.tk.call('.pane.top.tabs','itemconfigure','manual','-text',' Manual - F3 ') root_window.tk.call('.pane.top.tabs','itemconfigure','mdi','-text',' MDI - F5 ') root_window.tk.call('.pane.top.right','itemconfigure','preview','-text',' Preview ') root_window.tk.call('.pane.top.right','itemconfigure','numbers','-text',' DRO ') # Шрифт G-коду є незалежним root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue') #root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue','-font',font) #root_window.tk.call('.pane.bottom.t.text','configure','-foreground','blue','-font',font,'-height','12')
14.4. Зміна швидкості переміщення за допомогою комбінацій клавіш
# використовуйте control + ` або 1-0 як комбінації клавіш для швидкої швидкості та keep ` або 1-0 для швидкості подачі # також додає текст для швидкого посилання в довідці help1.insert(10,("Control+ `,1..9,0", _("Встановіть швидке перемикання від 0% до 100%")),) root_window.bind('<Control-Key-quoteleft>',lambda event: set_rapidrate(0)) root_window.bind('<Control-Key-1>',lambda event: set_rapidrate(10)) root_window.bind('<Control-Key-2>',lambda event: set_rapidrate(20)) root_window.bind('<Control-Key-3>',lambda event: set_rapidrate(30)) root_window.bind('<Control-Key-4>',lambda event: set_rapidrate(40)) root_window.bind('<Control-Key-5>',lambda event: set_rapidrate(50)) root_window.bind('<Control-Key-6>',lambda event: set_rapidrate(60)) root_window.bind('<Control-Key-7>',lambda event: set_rapidrate(70)) root_window.bind('<Control-Key-8>',lambda event: set_rapidrate(80)) root_window.bind('<Control-Key-9>',lambda event: set_rapidrate(90)) root_window.bind('<Control-Key-0>',lambda event: set_rapidrate(100)) root_window.bind('<Key-quoteleft>',lambda event: set_feedrate(0)) root_window.bind('<Key-1>',lambda event: set_feedrate(10)) root_window.bind('<Key-2>',lambda event: set_feedrate(20)) root_window.bind('<Key-3>',lambda event: set_feedrate(30)) root_window.bind('<Key-4>',lambda event: set_feedrate(40)) root_window.bind('<Key-5>',lambda event: set_feedrate(50)) root_window.bind('<Key-6>',lambda event: set_feedrate(60)) root_window.bind('<Key-7>',lambda event: set_feedrate(70)) root_window.bind('<Key-8>',lambda event: set_feedrate(80)) root_window.bind('<Key-9>',lambda event: set_feedrate(90)) root_window.bind('<Key-0>',lambda event: set_feedrate(100))
14.5. Прочитайте INI-файл
# прочитати елемент INI-файлу machine = inifile.find('EMC','MACHINE') print('machine name =',machine)
14.6. Зчитування статусу LinuxCNC
# Стан LinuxCNC можна прочитати з s. print(s.actual_position) print(s.paused)
14.7. Змінити поточний вигляд
# встановити вигляд попереднього перегляду # дійсні вигляди: view_x, view_y, view_y2, view_z, view_z2, view_p commands.set_view_z()
14.8. Створення нових пінів AXISUI HAL
def user_hal_pins(): comp.newpin('my-new-in-pin', hal.HAL_BIT, hal.HAL_IN) comp.ready()
14.9. Створення нового компонента та виводів HAL
# створити компонент mycomp = hal.component('my_component') mycomp.newpin('idle-led',hal.HAL_BIT,hal.HAL_IN) mycomp.newpin('pause-led',hal.HAL_BIT,hal.HAL_IN) mycomp.ready() # з'єднати контакти hal.new_sig('idle-led',hal.HAL_BIT) hal.connect('halui.program.is-idle','idle-led') hal.connect('my_component.idle-led','idle-led') # встановити шпильку hal.set_p('my_component.pause-led','1') # get a pin 2,8+ branch value = hal.get_value('halui.program.is-idle') print('value is a',type(value),'value of',value)
14.10. Перемикання вкладок за допомогою контактів HAL
# Піни HAL з панелі GladeVCP не будуть готові до виконання user_live_update # щоб їх прочитати, потрібно помістити їх у блок try/except # У наступному прикладі передбачається наявність 5 кнопок HAL на панелі GladeVCP, які використовуються для перемикання # вкладок на екрані AXIS. # Назви кнопок: «manual-tab», «mdi-tab», «preview-tab», «dro-tab», «user0-tab». # Вкладка user_0, якщо вона існує, буде першою вбудованою вкладкою GladeVCP. # для гілки LinuxCNC 2.8+ def user_live_update(): try: if hal.get_value('gladevcp.manual-tab'): root_window.tk.call('.pane.top.tabs','raise','manual') elif hal.get_value('gladevcp.mdi-tab'): root_window.tk.call('.pane.top.tabs','raise','mdi') elif hal.get_value('gladevcp.preview-tab'): root_window.tk.call('.pane.top.right','raise','preview') elif hal.get_value('gladevcp.numbers-tab'): root_window.tk.call('.pane.top.right','raise','numbers') elif hal.get_value('gladevcp.user0-tab'): root_window.tk.call('.pane.top.right','raise','user_0') except: pass
14.11. Додати кнопку «Перейти на головну»
def goto_home(axis): if s.interp_state == linuxcnc.INTERP_IDLE: home = inifile.find('JOINT_' + str(inifile.find('TRAJ', 'COORDINATES').upper().index(axis)), 'HOME') mode = s.task_mode if s.task_mode != linuxcnc.MODE_MDI: c.mode(linuxcnc.MODE_MDI) c.mdi('G53 G0 ' + axis + home) # створити кнопку для переміщення по осі Y root_window.tk.call('button','.pane.top.tabs.fmanual.homey','-text','Home Y','-command','goto_home Y','-height','2') # помістіть кнопку root_window.tk.call('grid','.pane.top.tabs.fmanual.homey','-column','1','-row','7','-columnspan','2','-padx','4','-sticky','w') # будь-яку функцію, викликану з Tcl, потрібно додати до TclCommands TclCommands.goto_home = goto_home commands = TclCommands(root_window)
14.12. Додати кнопку до ручної рамки
# створити нову кнопку та помістити її в ручну рамку root_window.tk.call('button','.pane.top.tabs.fmanual.mybutton','-text','My Button','-command','mybutton_clicked','-height','2') root_window.tk.call('grid','.pane.top.tabs.fmanual.mybutton','-column','1','-row','6','-columnspan','2','-padx','4','-sticky','w') # вищезазначене надсилає команду «mybutton_clicked» при натисканні # інші опції дозволяють прив'язати до кнопки команди натискання або відпускання (або обидві) # вони можуть бути додатковими до команди натискання або замінювати її # якщо замість цього, видаліть «-command','mybutton_clicked» з першого рядка # Кнопка 1 = ліва кнопка миші, 2 = права або 3 = середня root_window.tk.call('bind','.pane.top.tabs.fmanual.mybutton','<Button-1>','mybutton_pressed') root_window.tk.call('bind','.pane.top.tabs.fmanual.mybutton','<ButtonRelease-1>','mybutton_released') # функції, що викликаються з кнопок def mybutton_clicked(): print('mybutton was clicked') def mybutton_pressed(): print('mybutton was pressed') def mybutton_released(): print('mybutton was released') # будь-яку функцію, що викликається з Tcl, потрібно додати до TclCommands TclCommands.mybutton_clicked = mybutton_clicked TclCommands.mybutton_pressed = mybutton_pressed TclCommands.mybutton_released = mybutton_released commands = TclCommands(root_window)
14.13. Читання внутрішніх змінних
# Наступні змінні можна зчитати з екземпляра vars print(vars.machine.get()) print(vars.emcini.get()) active_codes = StringVar block_delete = BooleanVar brake = BooleanVar coord_type = IntVar display_type = IntVar dro_large_font = IntVar emcini = StringVar exec_state = IntVar feedrate = IntVar flood = BooleanVar grid_size = DoubleVar has_editor = IntVar has_ladder = IntVar highlight_line = IntVar interp_pause = IntVar interp_state = IntVar ja_rbutton = StringVar jog_aspeed = DoubleVar jog_speed = DoubleVar kinematics_type = IntVar linuxcnctop_command = StringVar machine = StringVar max_aspeed = DoubleVar max_maxvel = DoubleVar max_queued_mdi_commands = IntVar max_speed = DoubleVar maxvel_speed = DoubleVar mdi_command = StringVar metric = IntVar mist = BooleanVar motion_mode = IntVar on_any_limit = BooleanVar optional_stop = BooleanVar override_limits = BooleanVar program_alpha = IntVar queued_mdi_commands = IntVar rapidrate = IntVar rotate_mode = BooleanVar running_line = IntVar show_distance_to_go = IntVar show_extents = IntVar show_live_plot = IntVar show_machine_limits = IntVar show_machine_speed = IntVar show_program = IntVar show_pyvcppanel = IntVar show_rapids = IntVar show_tool = IntVar show_offsets = IntVar spindledir = IntVar spindlerate = IntVar task_mode = IntVar task_paused = IntVar task_state = IntVar taskfile = StringVar teleop_mode = IntVar tool = StringVar touch_off_system = StringVar trajcoordinates = StringVar tto_g11 = BooleanVar view_type = IntVar
14.14. Приховати віджети
# приховати віджет # використовувати 'grid' або 'pack' залежно від того, як він був спочатку розміщений root_window.tk.call('grid','forget','.pane.top.tabs.fmanual.jogf.zerohome.tooltouch')
14.15. Змінити мітку
# змінити мітку віджета root_window.tk.call('setup_widget_accel','.pane.top.tabs.fmanual.mist','Downdraft') # переконайтеся, що вона відображається (потрібно лише в цьому випадку, якщо кнопка туману була прихована) root_window.tk.call('grid','.pane.top.tabs.fmanual.mist','-column','1','-row','5','-columnspan','2','-padx','4','-sticky','w')
14.16. Перенаправити існуючу команду
# захопити існуючу команду # спочатку кнопка mist викликає функцію mist root_window.tk.call('.pane.top.tabs.fmanual.mist','configure','-command','hijacked_command') # Нова функція def hijacked_command(): print('hijacked mist command') # додати функцію до TclCommands TclCommands.hijacked_command = hijacked_command commands = TclCommands(root_window)
14.17. Зміна кольору DRO
# змінити екран падіння root_window.tk.call('.pane.top.right.fnumbers.text','configure','-foreground','green','-background','black')
14.18. Зміна кнопок панелі інструментів
# змінити кнопки панелі інструментів buW = '3' buH = '2' boW = '3' root_window.tk.call('.toolbar.machine_estop','configure','-image','','-text','ESTOP','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.machine_power','configure','-image','','-text','POWER','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.file_open','configure','-image','','-text','OPEN','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.reload','configure','-image','','-text','RELOAD','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_run','configure','-image','','-text','RUN','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_step','configure','-image','','-text','STEP','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_pause','configure','-image','','-text','PAUSE','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_stop','configure','-image','','-text','STOP','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_blockdelete','configure','-image','','-text','Skip /','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.program_optpause','configure','-image','','-text','M1','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_zoomin','configure','-image','','-text','Zoom+','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_zoomout','configure','-image','','-text','Zoom-','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_z','configure','-image','','-text','Top X','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_z2','configure','-image','','-text','Top Y','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_x','configure','-image','','-text','Right','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_y','configure','-image','','-text','Front','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.view_p','configure','-image','','-text','3D','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.rotate','configure','-image','','-text','Rotate','-width',buW,'-height',buH,'-borderwidth',boW) root_window.tk.call('.toolbar.clear_plot','configure','-image','','-text','Clear','-width',buW,'-height',buH,'-borderwidth',boW)
14.19. Зміна кольорів плоттера
У форматі RGBA, у такому порядку: штовхання, швидка, подача, дуга, зміна інструменту, зонд
# змінити кольори плотера try: live_plotter.logger.set_colors((255,0,0,255), (0,255,0,255), (0,0,255,255), (255,255,0,255), (255,255,255,255), (0,255,255,255)) except Exception as e: print(e)