1. Вступ

QtDragon і QtDragon_hd побудовані на базі фреймворку QtVCP. Це творча ідея учасника форуму Persei8. Значна частина базується на чудовій роботі інших учасників спільноти LinuxCNC. Версія LinuxCNC адаптована з версій Persei8 на Github. Вона в першу чергу призначена для 3-5-осьових верстатів, таких як фрезерні верстати або маршрутизатори. Вона добре працює з сенсорним екраном та/або мишею. QtDragon підтримує кілька способів дотику до інструментів та зондування деталей. Ви можете використовувати функцію зовнішніх зміщень LinuxCNC для автоматичного підйому шпинделя під час паузи. Якщо ви маєте опцію VersaProbe та код перемапування, ви можете додати автоматичне зондування довжини інструменту під час зміни інструменту.

Note
QtDragon і QtVCP — це відносно нові програми, додані до LinuxCNC. Можливі помилки та несподіванки. Будь ласка, ретельно тестуйте їх під час використання небезпечного обладнання. Будь ласка, надсилайте звіти на форум або в список розсилки.

1.1. QtDragon

Маршрутизатор QtDragon
Figure 1. QtDragon - Зразок для 3–5 осей (1440x860) у срібній темі

Роздільна здатність QtDragon можна змінювати від 1280x768 до 1680x1200. Він працюватиме у віконному режимі на будь-якому моніторі з вищою роздільною здатністю, але не на моніторах з нижчою роздільною здатністю.

1.2. QtDragon_lathe

QtDragon Lathe

QtDragon_lathe — це модифікована версія QtDragon, яка більше підходить для токарних верстатів.
Розмір вікна можна змінювати від роздільної здатності 1280x768 до 1680x1200.
Програма працюватиме у віконному режимі на будь-якому моніторі з вищою роздільною здатністю, але не на моніторах з нижчою роздільною здатністю.

1.3. QtDragon_hd

QtDragon_hd
Figure 2. QtDragon_hd - зразок для 3-5 осей на більших моніторах (1920x1056) у темній темі

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

QtDragon_hd має роздільну здатність 1920x1056 і не може бути змінений у розмірі. Він працюватиме у віконному режимі на будь-якому моніторі з вищою роздільною здатністю, але не на моніторах з нижчою роздільною здатністю.

1.4. QtDragon_hd_vertical

QtDragon_hd_vertical — це вертикально орієнтована версія. Її розмір не можна змінювати.

2. Початок роботи - INI-файл

Якщо ваша конфігурація наразі не налаштована на використання QtDragon, ви можете змінити її, редагуючи розділи файлу INI. Вичерпний перелік опцій див. у розділі display section документації до файлу INI.

Note
У файлі INI може бути лише один розділ кожного розділу (наприклад, [HAL]). Якщо в цій документації ви бачите кілька варіантів розділів, розмістіть їх усі під однією відповідною назвою розділу.

2.1. Дисплей

У розділі [DISPLAY] змініть присвоєння DISPLAY = на таке:

  • qtdragon для маленької версії

  • qtdradon_hd для великої версії.

Ви можете додати -v, -d, -i або -q для (відповідно) детального, налагоджувального, інформаційного або тихого виводу в термінал.

[DISPLAY]
DISPLAY = qtvcp qtdragon

2.2. Параметри

Щоб відстежувати налаштування, QtDragon шукає текстовий файл налаштувань. Додайте наступний запис під заголовком [DISPLAY].
Він може використовувати ~ для домашнього каталогу або WORKINGFOLDER чи CONFIGFOLDER, щоб представити уявлення QtVCP про ці каталоги:
У цьому прикладі файл буде збережено в папці конфігурації екрана запуску. (Можливі й інші варіанти, див. документацію до віджету screenoption QtVCP.)

[DISPLAY]
PREFERENCE_FILE_PATH = WORKINGFOLDER/qtdragon.pref

2.3. Лісозаготівля

Ви можете вказати, де зберігати історію/журнали.
Ці імена файлів може вибрати користувач.
У розділі [DISPLAY] додайте:

[DISPLAY]
MDI_HISTORY_FILE = mdi_history.dat
MACHINE_LOG_PATH = machine_log.dat
LOG_FILE = qtdragon.log

2.4. Перевизначення елементів керування

Ці параметри встановлюють елементи керування перевизначенням qtdragon (1.0 = 100 відсотків):

[DISPLAY]
MAX_SPINDLE_0_OVERRIDE = 1.5
MIN_SPINDLE_0_OVERRIDE = .5
MAX_FEED_OVERRIDE       = 1.2

2.5. Шпиндельні елементи керування

Налаштування керування шпинделем (в об/хв та ватах):

[DISPLAY]
DEFAULT_SPINDLE_0_SPEED = 500
SPINDLE_INCREMENT = 200
MIN_SPINDLE_0_SPEED = 100
MAX_SPINDLE_0_SPEED = 2500
MAX_SPINDLE_POWER = 1500

2.6. Інкременти бігу підтюпцем

Встановіть вибрані кроки штовхання.
Ці кроки може змінити користувач.

[DISPLAY]
INCREMENTS = Continuous, .001 mm, .01 mm, .1 mm, 1 mm, 1.0 inch, 0.1 inch, 0.01 inch
ANGULAR_INCREMENTS = 1, 5, 10, 30, 45, 90, 180, 360

2.7. Приріст сітки

Встановіть доступні опціональні розміри сітки для графічного дисплея.
Це замінить розміри за замовчуванням.
Для вказання одиниць виміру використовуються «мм» та «дюйми».
Поле вибору сітки відображається після натискання кнопки «OPTN» на графічному дисплеї.

[DISPLAY]
GRIDS = 0, .1 mm, 1 mm, 2 mm, 5 mm, 10 mm, .25 in, .5 in

2.8. Швидкість штовхання

Встановлення швидкості штовхання (в одиницях за секунду)

[DISPLAY]
MIN_LINEAR_VELOCITY     = 0
MAX_LINEAR_VELOCITY     = 60.00
DEFAULT_LINEAR_VELOCITY = 50.0
DEFAULT_ANGULAR_VELOCITY = 10
MIN_ANGULAR_VELOCITY = 1
MAX_ANGULAR_VELOCITY = 360

2.9. Система діалогів повідомлень користувача

Додаткові спливаючі діалогові вікна з налаштованими повідомленнями, що керуються контактами HAL.
MESSAGE_TYPE може бути «okdialog» або «yesnodialog». Дивіться qtvcp/library/messages для отримання додаткової інформації.
Цей приклад показує, як створити діалогове вікно, яке вимагає від користувача вибрати «ok» для підтвердження та приховування.
Ці діалогові вікна можуть використовуватися для таких речей, як попередження про низький рівень мастила тощо.

[DISPLAY]
MESSAGE_BOLDTEXT = Це короткий текст
MESSAGE_TEXT = Це довший текст тесту обох типів. Він може бути довшим за текст рядка стану
MESSAGE_DETAILS = BOTH DETAILS
MESSAGE_TYPE = okdialog
MESSAGE_PINNAME = oktest

Мультиповідомлення використовують контакт HAL s32 для відображення кількох визначених повідомлень.

[DISPLAY]
MULTIMESSAGE_ID = VFD

MULTIMESSAGE_VFD_NUMBER = 1
MULTIMESSAGE_VFD_TYPE = okdialog status
MULTIMESSAGE_VFD_TITLE = VFD Error: 1
MULTIMESSAGE_VFD_TEXT = This is the longer text FOR MESSAGE NUMBER 1
MULTIMESSAGE_VFD_DETAILS = DETAILS for VFD error 1
MULTIMESSAGE_VFD_ICON = WARNING'

MULTIMESSAGE_VFD_NUMBER = 2
MULTIMESSAGE_VFD_TYPE = nonedialog status
MULTIMESSAGE_VFD_TITLE = VFD Error: 2
MULTIMESSAGE_VFD_TEXT = This is the longer text FOR MESSAGE NUMBER 2
MULTIMESSAGE_VFD_DETAILS = DETAILS for VFD error 2
MULTIMESSAGE_VFD_ICON = INFO'

2.10. Вбудувати власні панелі VCP

Ви можете за бажанням вбудувати віртуальні панелі керування QtVCP в екран QtDragon або QtDragon_hd.
Ці панелі можуть бути створені користувачем або вбудованими QtVCP Panels.
Інші доступні вбудовані панелі дивіться в QtVCP/VCP panels.

Запис EMBED_TAB_NAME буде використаний як заголовок для нової вкладки (повинен бути унікальним).
Опції вкладки EMBED_TAB_LOCATION включають: tabWidget_utilities, tabWidget_setup та stackedWidget_mainTab.
Вкладка EMBED_TAB_COMMAND визначає, яку програму, що може бути вбудована, потрібно запустити, включаючи будь-які її опції командного рядка.

Якщо ви використовуєте розташування tabWidget_utilities або tabWidget_setup, на панелі з’явиться додаткова вкладка.
Якщо ви використовуєте stackedWidget_mainTab, з’явиться кнопка з написом «Користувач».
Натискання цієї кнопки призведе до почергового відображення всіх доступних панелей (зазначених для цього розташування) на головній вкладці.

2.10.1. Вбудовування млина Vismach

Приклад додавання вбудованої панелі до вкладки утиліт, тобто графічної анімованої машини з використанням бібліотеки vismach.
[DISPLAY]
EMBED_TAB_NAME = Vismach demo
EMBED_TAB_COMMAND = qtvcp vismach_mill_xyz
EMBED_TAB_LOCATION = tabWidget_utilities

2.10.2. Вбудовування панелі шпиндельних ременів

Ця панель-приклад призначена для відображення додаткових даних частотного перетворювача RS485, а також для налаштування шпиндельного приводу з 4 шківами та 2 ременями за допомогою серії кнопок.

Панель QtDragon spindle_belts - Шпиндельні ремені VCP
[DISPLAY]
EMBED_TAB_NAME = Spindle Belts
EMBED_TAB_COMMAND = qtvcp spindle_belts
EMBED_TAB_LOCATION = tabWidget_utilities

2.11. Шляхи підпрограм

Якщо ви використовуєте NGCGUI, перепризначені або власні процедури M-кодів, LinuxCNC повинен знати, де шукати файли.
Цей приклад є типовим для того, що потрібно для NgcGui, Basic Probe та Versa Probe перепризначеного коду.
Ці шляхи потрібно буде налаштувати, щоб вони вказували на фактичні файли у вашій системі. RS274NZGC Деталі розділу

[RS274NGC]
SUBROUTINE_PATH = :~/linuxcnc/nc_files/examples/ngcgui_lib:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs: \
~/linuxcnc/nc_files/examples/probe/basic_probe/macros:~/linuxcnc/nc_files/examples/remap-subroutines: \
~/linuxcnc/nc_files/examples/ngcgui_lib/remap_lib

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

[DISPLAY]
# Шлях до підпрограми NGCGUI.
# Шлях Thr також має бути в [RS274NGC] SUBROUTINE_PATH
NGCGUI_SUBFILE_PATH = ~/linuxcnc/nc_files/examples/ngcgui_lib
# вкладки попередньо вибраних програм
# вказуйте лише імена файлів, файли повинні бути в NGCGUI_SUBFILE_PATH
NGCGUI_SUBFILE = slot.ngc
NGCGUI_SUBFILE = qpocket.ngc

2.12. Контроль попереднього перегляду

Для керування попереднім переглядом G-коду можна використовувати магічні коментарі.

У дуже великих програмах завантаження попереднього перегляду може зайняти багато часу. Ви можете контролювати, що відображається, а що приховується на графічному екрані, додавши відповідні коментарі з цього списку до вашого G-коду:

(PREVIEW,stop)
(PREVIEW,hide)
(PREVIEW,show)

2.13. Розширення/фільтри програми

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

[FILTER]
PROGRAM_EXTENSION = .ngc,.nc,.tap G-Code file (*.ngc,*.nc,*.tap)

QtDragon має можливість надсилати завантажені файли через «програму фільтрації». Цей фільтр може виконувати будь-яке бажане завдання: від такого простого, як перевірка, чи файл закінчується на «M2», до такого складного, як генерація G-коду з зображення. Дивіться Filter Programs для отримання додаткової інформації.

Розділ «[FILTER]» файлу INI контролює роботу фільтрів. Спочатку для кожного типу файлу напишіть рядок «PROGRAM_EXTENSION». Потім вкажіть програму, яку потрібно виконати для кожного типу файлу. Ця програма отримує ім’я вхідного файлу як перший аргумент і повинна записувати код rs274ngc у стандартний вивід. Цей вивід буде відображатися в текстовій області, попередньо переглядатися в області відображення та виконуватися LinuxCNC при натисканні «Run».

Наступні рядки додають підтримку конвертера image-to-gcode, що входить до комплекту LinuxCNC та запускає програми фільтрації на основі Python:

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

2.14. Налаштування зонда/сенсорної панелі/лазера

QtDragon має INI-файли для двох додаткових вкладок зондування. Коментуйте/розкоментуйте, як вам зручніше.

  • «Versa probe» — це портована на QtVCP версія популярної панелі зондування GladeVCP.

  • «Базовий зонд» — це портована на QtVCP версія, заснована на екрані базового зонда стороннього розробника.

Обидва виконують подібні процедури зондування, хоча зонд Versa опціонально виконує автоматичне вимірювання інструменту.

[PROBE]
#USE_PROBE = versaprobe
USE_PROBE = basicprobe

2.15. Виявлення переривання

При використанні процедур зондування qtdragon важливо виявляти запити користувача на переривання.
За замовчуванням LinuxCNC не повідомляє про переривання у спосіб, корисний для процедур зондування.
Необхідно додати файл ngc, щоб вивести на екран помилку, яку можна виявити. Перепризначення деталей переривання

[RS274NGC]
# При перериванні викликається цей ngc-файл. Потрібно для базових/Versa-підпрограм зондування. +
ON_ABORT_COMMAND=O <on_abort> call

Цей приклад коду надсилає повідомлення про переривання. Програми-зонди можуть виявити цей зразок.
Відповідно до налаштувань, наведених вище, його потрібно зберегти як «on_abort.ngc» у шляхах пошуку LinuxCNC [RS274NGC] SUBROUTINE_PATHS та [DISPLAY] PROGRAM_PREFIX.

o<on_abort> sub

o100 якщо [#1 дорівнює 5]
    (машина увімкнена)
o100 інакше якщо [#1 дорівнює 6]
    (машина вимкнена)
o100 elseif [#1 eq 7]
    (estopped)
o100 elseif [#1 eq 8]
    (msg,Process Aborted)
o100 else
    (DEBUG,Abort Parameter is %d[#1])
o100 endif

o<on_abort> endsub
m2

2.16. Коди запуску

Вам слід встановити код M/G за замовчуванням для запуску. Він буде замінений запуском файлу NGC.
Це лише зразки кодів, інтегратор повинен вибрати відповідні коди.

[RS274NGC]
# запускати коди G/M під час першого завантаження
RS274NGC_STARTUP_CODE = G17 G20 G40 G43H0 G54 G64P0.0005 G80 G90 G94 G97 M5 M9

2.17. Кнопки макросів

QtDragon має до десяти зручних кнопок для виклику «макро-дій».
Вони знаходяться під заголовком «[MDI_COMMAND_LIST]» як «MDI_COMMAND_MACRO0 =» до «MDI_COMMAND_MACRO9 =».
За бажанням вони також можуть викликати процедури OWord.
У зразках конфігурацій вони позначені для переміщення між поточною системою користувача (нульовою точкою) і системою верстата.
Система користувача є першою командою MDI в списку INI, система верстата — другою.
Цей приклад показує, як спочатку перемістити вісь Z вгору. Команди, розділені символом «;», виконуються одна за одною.
Текст мітки кнопки можна встановити будь-яким текстом після коми, символ «\n» додає розрив рядка.

[MDI_COMMAND_LIST]
# для макрокнопок
MDI_COMMAND_MACRO0 = G0 Z25;X0 Y0;Z0, Goto\nUser\nZero
MDI_COMMAND_MACRO1 = G53 G0 Z0;G53 G0 X0 Y0,Goto\nMachn\nZero

2.18. Файл HAL для публікації графічного інтерфейсу

Ці опціональні HAL-файли будуть викликані після того, як QtDragon завантажить все інше.
Ви можете додати кілька рядків для декількох файлів. Кожен з них буде викликаний у порядку їх появи.
Виклик HAL-файлів після завантаження QtDragon гарантує, що HAL-контакти QtDragon будуть доступні.

Приклад із типовими записами для специфікації HAL-файлів, які потрібно зчитати після запуску QtDragon. Відредагуйте ці рядки відповідно до фактичних вимог.
[HAL]
POSTGUI_HALFILE = qtdragon_hd_postgui.hal
POSTGUI_HALFILE = qtdragon_hd_debugging.hal

2.19. Команда HAL після графічного інтерфейсу

Ці опціональні команди HAL будуть виконані після того, як QtDragon завантажить все інше.
Ви можете додати кілька рядків. Кожен з них буде викликаний у порядку їх появи.
Можна використовувати будь-яку команду HAL.

Зробіть зразок типових файлів у INI-файлі для завантаження модулів після того, як графічний інтерфейс стане доступним. Налаштуйте їх відповідно до ваших фактичних вимог.
[HAL]
POSTGUI_HALCMD = loadusr qtvcp test_probe
POSTGUI_HALCMD = loadusr qtvcp test_led
POSTGUI_HALCMD = loadusr halmeter

2.20. Міст HAL

Міст Hal схожий на HALUI — він має контакти HALUI, які взаємодіють з QtDragon.
Ці контакти можна використовувати з HALUI для створення зручнішої панелі керування.

  • Він може повідомляти/змінювати поточну вибрану кнопку Осі.

  • Буде повідомлено про швидкість/приріст поштовхового переміщення.

  • Є контакт запуску та паузи циклу — вони викликають код у QtDragon, а не контролер руху.

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

Приклад запису. Вилучити -d, щоб заглушити повідомлення налагодження.
[HAL]
HALBRIDGE= hal_bridge -d
Типові доступні HAL-піни:
Виводи компонентів:
Owner   Type  Dir                 Value  Name
    38  s32   OUT                     0  base-thread.time
    29  bit   OUT                 FALSE  bridge.axis-x-is-selected
    29  bit   IN                  FALSE  bridge.axis-x-select
    29  bit   OUT                 FALSE  bridge.axis-y-is-selected
    29  bit   IN                  FALSE  bridge.axis-y-select
    29  bit   OUT                 FALSE  bridge.axis-z-is-selected
    29  bit   IN                  FALSE  bridge.axis-z-select
    29  bit   IN                  FALSE  bridge.cycle-pause-in
    29  bit   IN                  FALSE  bridge.cycle-start-in
    29  float OUT                     0  bridge.jog-increment
    29  float OUT                     0  bridge.jog-increment-angular
    29  float OUT                    15  bridge.jog-rate
    29  float OUT                   360  bridge.jog-rate-angular
    29  s32   OUT                    -1  bridge.joint-selected
    29  bit   IN                  FALSE  bridge.macro-cmd-MACRO0
    29  bit   IN                  FALSE  bridge.macro-cmd-MACRO1

2.21. Вбудовані зразки конфігурацій

Зразки конфігурацій sim/qtdragon/ або sim/qtdragon_hd вже налаштовані для використання QtDragon як екрана. Існує кілька прикладів, що демонструють різні конфігурації машин.

3. Прив’язки клавіш

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

F1 - Увімкнення/вимкнення Estop
F2 - Увімкнення/вимкнення машини
F12 - Редактор стилів
Home - Головна сторінка всіх з'єднань машини
Escape - Переривання руху
Pause - Призупинення руху машини

4. Кпонки

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

5. Віртуальна клавіатура

QtDragon включає віртуальну клавіатуру для використання з сенсорними екранами. Щоб увімкнути клавіатуру, встановіть прапорець «Використовувати віртуальну клавіатуру» на сторінці «Налаштування». Клавіатура з’явиться після натискання на будь-яке поле введення, наприклад параметри зонда або записи таблиці інструментів. Щоб приховати клавіатуру, виконайте одну з таких дій:

  • натисніть кнопку ГОЛОВНА сторінка

  • Кнопка поточної вибраної сторінки.

  • перейти в режим АВТО

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

6. Піни HAL

Ці контакти є специфічними для екрана QtDragon.
Звичайно, для функціонування LinuxCNC необхідно підключити ще багато контактів HAL.

Якщо вам потрібна підказка для ручної зміни інструменту, додайте ці рядки до вашого файлу postgui.
QtDragon емулює виводи HAL hal_manualtoolchange — не завантажуйте окремий компонент HAL «hal_manualtoolchange».

net tool-change      hal_manualtoolchange.change   <=  iocontrol.0.tool-change
net tool-changed     hal_manualtoolchange.changed  <=  iocontrol.0.tool-changed
net tool-prep-number hal_manualtoolchange.number   <=  iocontrol.0.tool-prep-number

Також, якщо у вас немає автоматичного змінника інструментів, переконайтеся, що ці контакти підключені в одному з файлів HAL:

net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

Цей вхідний контакт слід підключити для індикації стану зонда.

qtdragon.led-probe

Ці контакти є входами, пов’язаними з індикацією частотного перетворювача шпинделя.
Контакти вольт та ампер використовуються для розрахунку потужності шпинделя. Ви також повинні встановити MAX_SPINDLE_POWER в INI.

qtdragon.spindle-modbus-connection
qtdragon.spindle-modbus-errors
qtdragon.spindle-amps
qtdragon.spindle-fault
qtdragon.spindle-volts

Цей бітовий вивід є виходом для керування шпинделем для його призупинення.
Ви б підключили його до spindle.0.inhibit.

qtdragon.spindle-inhibit

Для відображення швидкості шпинделя QtDragon і світлодіода швидкості шпинделя необхідно, щоб spindle.0.speed-in був підключений до зворотного зв’язку швидкості шпинделя.
Можна використовувати зворотний зв’язок енкодера або VFD, якщо зворотний зв’язок вимірюється в обертах за секунду (RPS).
Якщо зворотний зв’язок недоступний, ви можете відобразити необхідну швидкість на дисплеї, підключивши контакти таким чином:

net spindle-speed-feedback spindle.0.speed-out-rps => spindle.0.speed-in

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

qtdragon.btn-laser-on

Цей висновок з плаваючою точкою показує обертання камери в градусах:

qtdragon.cam-rotation

Ці бітові/s32/float-виводи пов’язані із зовнішніми зміщеннями, якщо вони використовуються:

qtdragon.eoffset-clear
qtdragon.eoffset-enable
qtdragon.eoffset-value
qtdragon.eoffset-spindle-count
qtdragon.eoffset-zlevel-count
qtdragon.eoffset-is-active

Ці виводи з плаваючою точкою відображають поточний хід повзунка (у машинних одиницях):

qtdragon.slider-jogspeed-linear
qtdragon.slider-jogspeed-angular

Ці виводи з плаваючою точкою відображають поточні коефіцієнти перевизначення повзунка:

qtdragon.slider-override-feed
qtdragon.slider-override-maxv
qtdragon.slider-override-rapid
qtdragon.slider-override-spindle

Ці вихідні контакти доступні під час налаштування опції Versa Probe INI. Їх можна використовувати для автоматичного вимірювання довжини інструменту за допомогою датчика під час зміни інструменту – з додаванням коду перепризначення.

qtversaprobe.enable
qtversaprobe.blockheight
qtversaprobe.probeheight
qtversaprobe.probevel
qtversaprobe.searchvel
qtversaprobe.backoffdist

Цей вивід буде активним, коли завантажений інструмент дорівнюватиме номеру, встановленому в номері інструменту Versa Probe у файлі налаштувань.
Його можна використовувати (наприклад) для блокування шпинделя, коли зонд завантажений, підключивши його до spindle.0.inhibit.

qtversaprobe.probe-loaded

Цей вихідний контакт доступний при встановленні опції Basic Probe INI.
Цей контакт буде активним, коли завантажений інструмент дорівнює номеру, встановленому в полі редагування номера інструменту Basic Probe.
Його можна використовувати (наприклад) для блокування шпинделя при завантаженні зонда, підключивши його до spindle.0.inhibit.

qtbasicprobe.probe-loaded

Цей вхідний контакт доступний для перемикання між паузою та відновленням запущеної програми.

qtdragon.external-pause

Ви можете зовнішньо керувати відповідями діалогів у більшості діалогових вікон qtdragon.

qtdragon.dialog-ok
qtdragon.dialog-no
qtdragon.dialog-cancel

7. HAL-файли

Надані файли HAL призначені тільки для моделювання. Реальна машина потребує власних файлів HAL. Екран QtDragon працює з 3 або 4 осями з одним з’єднанням на вісь або 3 або 4 осями в конфігурації порталу (2 з’єднання на 1 вісь).

8. Ручна зміна інструментів

Якщо ваша машина вимагає ручної заміни інструментів, QtDragon може відобразити вікно з повідомленням, яке допоможе вам. QtDragon емулює контакти HAL hal_manualtoolchange — не завантажуйте окремий компонент HAL «hal_manualtoolchange». Для цього ви повинні підключити відповідний контакт HAL у файлі HAL postgui, наприклад:

net tool-change      hal_manualtoolchange.change   <=  iocontrol.0.tool-change
net tool-changed     hal_manualtoolchange.changed  <=  iocontrol.0.tool-changed
net tool-prep-number hal_manualtoolchange.number   <=  iocontrol.0.tool-prep-number

9. Шпиндель

Екран призначений для підключення до VFD, але буде працювати і без нього.
У дистрибутив LinuxCNC входить ряд драйверів VFD.
Користувач самостійно підбирає відповідний драйвер і файли HAL відповідно до конфігурації свого комп’ютера.

10. Автоматичне підняття осі Z під час паузи програми

QtDragon можна налаштувати так, щоб він автоматично піднімав і опускав вісь Z та зупиняв шпиндель, коли програма призупинена.
Ви можете перемикати кнопки «SPINDLE LIFT» (Підняти шпиндель) або «NO LIFT» (Не піднімати), щоб вибрати опцію підняття шпинделя по осі Z під час призупинення.
Тоді, коли ви натиснете кнопку «PAUSE» (Призупинити), шпиндель підніметься на величину, встановлену на вкладці «Settings» (Налаштування), і зупиниться.
Натискання кнопки «RESUME» (Продовжити) запустить шпиндель і опустить його.
Якщо ви підключили контакт HAL «spindle.0.at-speed» до контакту приводу, шпиндель не опуститься, поки контакт не стане істинним.
Зазвичай його підключають до таймера або логічного пристрою, що визначає швидкість шпинделя.
Якщо цей контакт не підключений до контакту приводу, з’явиться діалогове вікно з попередженням про необхідність очікування швидкості шпинделя.
Шпиндель опуститься, коли ви закриєте це діалогове вікно.
Величина підйому встановлюється на вкладці «Налаштування» під заголовком «ПІДЙОМ ШПИНДЕЛЯ».
Це поле редагування можна налаштувати безпосередньо тільки в режимі, відмінному від автоматичного.
Кнопки вгору/вниз можна використовувати для регулювання величини підйому в будь-який час, навіть коли шпиндель вже піднятий.
Крок кнопки становить 1 дюйм або 5 мм (залежно від одиниць виміру, на яких базується машина).

Note
Якщо використовується опція підйому шпинделя, HALUI не може бути використаний для призупинення/відновлення програми. Для призупинення/відновлення з зовнішнього джерела доступний контакт «QtDragon.external-pause». Також необхідно ввімкнути зовнішні зміщення. На вкладці налаштувань встановіть прапорець «використовувати зовнішні зміщення». Якщо ви хочете заблокувати шпиндель при завантаженні зонда, вам потрібно буде використовувати логічний компонент «або» для об’єднання двох сигналів блокування шпинделя, щоб підключити їх до «spindle.0.inhibit».

Ця необов’язкова поведінка вимагає доповнень до INI та HAL-файлу QtDragon_postgui.

У INI-файлі, під заголовком AXIS_Z.

[AXIS_Z]
OFFSET_AV_RATIO  = 0.2

Це резервує 20% максимальної швидкості та максимального прискорення для зовнішніх зміщень.
Це обмежить максимальну швидкість машини на 20%

У файлі qtdragon_postgui.hal додайте:

# Налаштування зовнішніх зміщень осі Z
net eoffset_clear    qtdragon.eoffset-clear          =>  axis.z.eoffset-clear
net eoffset_count    qtdragon.eoffset-spindle-count  =>  axis.z.eoffset-counts
net eoffset          qtdragon.eoffset-value          <=  axis.z.eoffset
net eoffset-state    qtdragon.eoffset-is-active      <=  motion.eoffset-active

# Блокування шпинделя під час паузи
net spindle-pause    qtdragon.spindle-inhibit        =>  spindle.0.inhibit

# розкоментувати dragon_hd
#net limited          qtdragon.led-limits-tripped     <= motion.eoffset-limited

setp axis.z.eoffset-enable 1
setp axis.z.eoffset-scale 1.0

11. Компенсація рівня Z

QtDragon_hd можна налаштувати для зондування та компенсації змін висоти рівня Z за допомогою зовнішньої програми «G-code Ripper».

Note
Це доступно лише у версії QtDragon_hd.

Компенсація рівня Z — це функція вирівнювання/корекції спотворення, яка зазвичай використовується в 3D-друку або гравіруванні. Вона використовує компонент HAL, що не працює в режимі реального часу, який використовує функцію зовнішніх зміщень LinuxCNC. Компонент має контакт HAL, який визначає тип інтерполяції, який повинен бути кубічним, лінійним або найближчим (відповідно 0, 1, 2). Якщо тип не вказано або вказано недійсне число, за замовчуванням вважається кубічний.

Коли Z LEVEL COMP увімкнено, компонент компенсації зчитує файл даних зонда, який повинен називатися «probe_points.txt». Файл можна змінювати або оновлювати в будь-який час, коли компенсація вимкнена. При наступному увімкненні файл буде перечитано, а карта компенсації перерахована. Цей файл повинен знаходитися в каталозі конфігурації.

Файл даних зонда генерується програмою зондування, яка, в свою чергу, генерується зовнішньою програмою Python під назвою «gcode_ripper», яку можна запустити з вкладки файлового менеджера за допомогою кнопки «G-code Ripper».

11.1. Використання G-коду Ripper для компенсації рівня Z

Розпушувач G-коду QtDragon
Figure 3. QtDragon_hd показує G-код Ripper
Note
G-code Ripper пропонує багато функцій, які ми тут не розглядатимемо. Ця функція доступна лише у версії QtDragon_hd.
  • У qtdragon_hd перейдіть на вкладку файлів і натисніть кнопку завантаження G-коду Ripper.

  • Встановіть початок координат відповідно до початку координат файлу G-коду, який потрібно зондувати.

  • У розділі «Операції G-коду» позначте пункт «Автоматичне зондування».

  • Файл -> Відкрити файл G-коду (файл, який ви запустите після компенсації)

  • За потреби внесіть корективи та натисніть «Перерахувати».

  • Натисніть «Зберегти файл G-коду – тільки зонд».

  • Збережіть згенерований файл у папці nc_files.

  • Вихід з gcode_ripper.

  • Не змінюючи зміщення, запустіть цю програму. Переконайтеся, що інструмент зондування встановлено. Після завершення в каталозі конфігурації з’явиться файл під назвою probe_points.txt.

  • У qtdragon_hd натисніть кнопку «Enable Z Comp» (Увімкнути компенсацію Z), щоб увімкнути компенсацію. Подивіться на рядок стану, щоб перевірити, чи операція була успішною. Активна компенсація буде відображатися поруч із написом: «Z Level Comp» (Компенсація рівня Z). Під час роботи дисплей повинен змінюватися відповідно до компонента компенсації.

Note
Якщо ви використовуєте автоматичне підняття Z для підйому шпинделя під час паузи, ви повинні поєднати ці два параметри з компонентом HAL та подати його до компонента руху LinuxCNC.
Зразок HAL-файлу postgui для комбінованого підйому шпинделя та компенсації рівня Z
# компоненти навантаження
########################################################################

loadrt logic names=logic-and personality=0x102
addf logic-and servo-thread

# завантажити компонент сумування для додавання підйому шпинделя та компенсації Z
loadrt scaled_s32_sums
addf scaled-s32-sums.0 servo-thread

loadusr -Wn z_level_compensation z_level_compensation
# параметр методу має бути одним із варіантів: найближчий(2), лінійний(1), кубічний (0)
setp z_level_compensation.fade-height 0.0
setp z_level_compensation.method 1

# підключити сигнали до компонента руху LinuxCNC
########################################################################

net eoffset-clear    axis.z.eoffset-clear
net eoffset-counts   axis.z.eoffset-counts
setp axis.z.eoffset-scale .001
net eoffset-total          axis.z.eoffset
setp axis.z.eoffset-enable True

# зовнішні зміщення для функції паузи шпинделя
########################################################################
net eoffset-clear              qtdragon.eoffset-clear
net eoffset-spindle-count   <= qtdragon.eoffset-spindle-count
net spindle-pause              qtdragon.spindle-inhibit        =>  spindle.0.inhibit
net eoffset-state              qtdragon.eoffset-is-active      <=  motion.eoffset-active

## Компенсація рівня Z
####################################################
net eoffset-clr2            z_level_compensation.clear      => logic-and.in-01
net xpos-cmd                z_level_compensation.x-pos      <= axis.x.pos-cmd
net ypos-cmd                z_level_compensation.y-pos      <= axis.y.pos-cmd
net zpos-cmd                z_level_compensation.z-pos      <= axis.z.pos-cmd
net z_compensation_on       z_level_compensation.enable-in  <= qtdragon.comp-on
net eoffset-zlevel-count    z_level_compensation.counts     => qtdragon.eoffset-zlevel-count

# додати значення рівня Z та рівня підйому масштабованого шпинделя разом
net eoffset-spindle-count   scaled-s32-sums.0.in0
net eoffset-zlevel-count    scaled-s32-sums.0.in1
setp scaled-s32-sums.0.scale0 1000
net eoffset-counts          scaled-s32-sums.0.out-s

12. Зондування

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

Note
Зондування дуже невблаганне до помилок; обов’язково перевірте налаштування перед використанням.

QtDragon має 2 методи для встановлення Z0. Перший — це сенсорна пластина, де металева пластина відомої товщини розміщується зверху заготовки, потім інструмент опускається, доки не торкнеться пластини, викликаючи сигнал зонда. Поточна система користувача (G5x) Z0 встановлюється на висоту зонда — введену товщину пластини.

Другий метод використовує налаштовувач інструменту у фіксованому положенні на відомій висоті над столом, де буде спрацьовувати сигнал зонда. Щоб встановити Z0 на верхню точку заготовки, він повинен знати

  1. наскільки високо над столом знаходиться точка спрацьовування зонда (висота налаштування інструменту) та

  2. наскільки високо над столом знаходиться верхня частина заготовки.

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

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

12.1. Зонд Versa

Зонд QtDragon
Figure 4. QtDragon - Варіант зонда Versa

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

Ви повинні ретельно встановити «Параметри зондування»:

ДІАМЕТР

Це діаметр наконечника зонда. Точність вимірювань зонда безпосередньо залежить від точності діаметра наконечника зонда.

ПОДОРОЖІ

Відстань, яку зонд пройде під час початкового пошуку. Якщо відстань пошуку занадто коротка, ви отримаєте повідомлення типу «G38 завершено без встановлення контакту». З міркувань безпеки рекомендується встановити цей параметр на 3-4 мм більше, ніж діаметр стилуса зонда.

ЗАСУВКА RTN

Відстань, на яку зонд відсувається після першого контакту з деталлю. Ця відстань повинна бути невеликою, оскільки другий підхід буде здійснюватися на низькій швидкості, але достатньою для того, щоб зонд розірвав контакт і перейшов у стан готовності до пошуку. Якщо відстань Latch Rtn занадто велика, ви витратите багато часу на очікування завершення пошуку. Рекомендація: 1-2 мм

ПОШУК

Це швидкість подачі, з якою зонд шукає цільову заготовку в одиницях машини за хвилину. Швидкість пошуку повинна бути достатньо повільною, щоб забезпечити прийнятну початкову точність, але достатньо швидкою, щоб не витрачати час на очікування руху. Рекомендація: 200-500 мм/хв.

ЗОНД

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

ШВИДКИЙ

Рухи осей, не пов’язані з пошуком, виконуються зі швидкістю, визначеною RAPID у машинних одиницях за хвилину.

ДОВЖИНА БІКУ/КРАЮ

Це відстань, на яку зонд переміститься з високою швидкістю до положення, в якому він почне пошук. При вимірюванні кута він переміститься на відстань, що дорівнює EDGE LENGTH, від кута, потім віддалиться від заготовки на відстань, що дорівнює XY CLEARANCE, опуститься на відстань, що дорівнює Z CLEARANCE, і почне початковий пошук. При вимірюванні внутрішнього кола EDGE LENGTH слід встановити на приблизний радіус кола. Примітка: НЕ на діаметр.

ЗОНД HT

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

БЛОК HT

Висота верхньої частини заготовки від поверхні столу верстата. Це значення використовується для обчислення нульової висоти Z для поточної системи координат обробки при використанні датчика з датчиком налаштування інструменту.

XY КЛІРАНС

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

Z РОЗПРОДАЖ

Відстань, на яку зонд переміститься перед виконанням пошуку. Якщо вимірюється внутрішній отвір, зонд можна вручну перемістити на початкову висоту Z, а потім встановити Z CLEARANCE на 0.

Є три кнопки-перемикачі:

Автоматичне обнулення

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

Автоматичний нахил

Це вибирає, чи після зондування система буде обертатися, чи просто відображатиметься розраховане обертання.

Вимірювання інструменту

Це (якщо інтегровано) вмикає та вимикає автоматичне зондування інструменту.

12.1.1. Піни HAL

Versaprobe пропонує 5 вихідних контактів для вимірювання інструменту та один, який можна використовувати для блокування шпинделя під час завантаження зонда.
5 контактів використовуються для зчитування з підпрограми G-коду перерозподілу, щоб код міг реагувати на різні значення.
Наразі номер зонда можна редагувати лише у файлі налаштувань:

[VERSA_PROBE_OPTIONS]
ps_probe_tool = 1
qtversaprobe.enable (HAL_BIT)

Інструмент вимірювання ввімкнено чи ні. Відображає стан кнопок на екрані.

qtversaprobe.blockheight (HAL_FLOAT)

Виміряна висота верхньої грані заготовки. Відображає вхід на екрані.

qtversaprobe.probeheight (HAL_FLOAT)

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

qtversaprobe.searchvel (HAL_FLOAT)

Швидкість пошуку перемикача зонда інструменту

qtversaprobe.probevel (HAL_FLOAT)

Швидкість вимірювання довжини інструменту. Відображає введений на екрані запис.

qtversaprobe.backoffdist (HAL_FLOAT)

Відстань, на яку зонд відходить після спрацьовування. Відображає вхід на екрані.

qtversaprobe.probe-loaded (HAL_BIT)

Відображає, чи поточний інструмент дорівнює номеру зонда файлу налаштувань.

12.2. Базовий зонд

Зонд QtDragon
Figure 5. QtDragon - Базовий варіант зонда

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

  • Зовнішні кути

  • Внутрішні кути

  • Кути краю

  • Бос і кишені

  • Хребет і долини

  • Калібрування

Ви повинні ретельно встановити «Параметри зондування»:

Зонд-інструмент

Дозволятиме вимірювання лише за наявності інструменту з цим номером у шпинделі

Діаметр зонда

Розмір кінчика зонда

Зонд Rapid

Швидкість швидких переміщень у верстатних агрегатах

Пошук зонда

Швидкість першого «чорного» пошуку в машинних одиницях

Подача зонда

Швидкість другого «тонкого» пошуку в машинних одиницях

Зійдіть

Відійдіть назад і знову виміряйте відстань

Макс. відстань XY

Максимальна відстань, яку зонд шукатиме по осях X та Y, перш ніж він видасть помилку

Макс. відстань Z

Максимальна відстань, яку зонд шукатиме по осі Z, перш ніж він видасть помилку

XY Розпродаж

Запасна відстань від зонда до краю стіни перед швидким переміщенням вниз по Z та «чорновим» зондуванням

Z Розпродаж

Зазор від зонду до верху матеріалу

Додаткова глибина

Відстань від верху матеріалу до бажаної глибини зонда

Також є параметри підказок залежно від вибраного типу зондування:

Ширина краю

Бажана відстань від початкової позиції зонда, вздовж краю стіни перед початком зондування

Підказка щодо діаметра

Використовується для зондування круглої бобишки або круглої кишені (початковий рух: 1/2 діаметра плюс зазор XY)

X Підказка

Використовується для зондування прямокутної бобишки/кишені (початковий рух: 1/2 довжини X плюс зазор XY)

Y Підказка

Використовується для зондування прямокутної бобишки/кишені (початковий рух: 1/2 довжини Y плюс зазор XY)

Після налаштування параметрів та підказок:

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

  • Переконайтеся, що параметри є прийнятними.

  • Натисніть потрібну кнопку зондування.

Процедура зондування розпочнеться негайно.

Note
Натискання кнопки зупинки або клавіші Escape на клавіатурі перерве зондування.

12.2.1. Піни HAL

Це можна використовувати для блокування шпинделя, коли зонд завантажено.
Ви повинні підключити його до spindle.0.inhibit

qtbasicprobe.probe-loaded

12.2.2. Приклад кутового зонда

Давайте обговоримо зондування внутрішнього кута за допомогою верхньої правої кнопки в Basic Probe (back_right_inside). Хоча всі параметри зондування повинні бути правильними, найважливішими налаштуваннями, які потрібно змінити для кожного зонда, є:

XY РОЗПРОДАЖ

Відстань від краю перед грубим зондуванням,

Z РОЗПРОДАЖ

Відстань від зонда до верху матеріалу,

ДОДАТКОВА ГЛИБИНА

Відстань до нижнього зонда від верху матеріалу,

ШИРИНА КРАЮ

Відстань вздовж крайньої стіни (від кута), щоб почати зондування.

Note
Ці відстані завжди слід встановлювати в «машинних одиницях» (мм для метричних машин, дюйми для імперських машин).

Попередньо налаштовано:

  • Вручну встановіть зонд на перетині країв (тобто кута) матеріалу, як позначено зеленим яблучком на кнопці. Встановіть його на Z-клімат вище верху матеріалу. Це можна зробити на око.

  • Встановіть для параметра EXTRA CLEARANCE значення, при якому зонд має опускатися нижче верхньої межі матеріалу. (Таким чином, зонд переміститься з початкового положення вниз по Z Clearance + відстань Extra Clearance.)

  • Встановіть для параметра XY CLEARANCE значення, яке точно забезпечить відстань від стіни, щоб зонд, опускаючись, ні об що не торкнувся.

  • Встановіть для параметра «ШИРИНА КРАЙ» значення, яке описує відстань, виміряну від кута вздовж стіни до місця, де ви хочете виміряти точність. Ця відстань від краю буде використана вздовж стіни X, а потім вздовж стіни Y.

Послідовність після натискання кнопки зонда:

  1. Швидке віддалення від кута на відстань ШИРИНИ КРАЙНОГО РОЗМІРУ з одночасним віддаленням від краю по осі XY. Отже, це злегка діагональний рух.

  2. Перемістіть зонд вниз на Z CLEARANCE + EXTRA DEPTH,

  3. стінка зонда двічі (шорстка та тонка),

  4. рухатися по діагоналі до іншої стіни, як встановлено параметрами ШИРИНА КРАЙНОГО РЕЖИМУ та ЗАСІБ XY,

  5. зонд стінки двічі,

  6. підняти зонд на Z CLEARANCE + EXTRA DEPTH (повернення на початкову висоту),

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

  8. Якщо кнопка автоматичного обнулення увімкнена, встановіть X та Y поточної користувацької системи на нуль.

12.3. Налаштування віджета екрана зонда

Можна завантажити налаштовану версію віджета зонда.

У папці config повинна бути папка для екранів: <CONFIG FOLDER>/qtvcp/.
Може бути (або може бути додана) папка «lib/» і «widgets/».
У папку widgets можна скопіювати «basic_probe.py» (або «versa_probe.py») і «probe_subprog.py».
У папці lib скопіюйте файл «touchoff_subprogram.py».
Якщо ці файли будуть знайдені, вони будуть використовуватися замість оригіналів.
Ви можете модифікувати файли, щоб змінити поведінку.

13. Сенсорна панель

Сенсорна панель QtDragon
Figure 6. QtDragon - Сенсорна панель

Ви можете використовувати провідну сенсорну пластину або її еквівалент для автоматичного зняття (обнулення координат користувача) для положення Z інструменту. Перед зондуванням необхідно завантажити інструмент. На вкладці «Інструмент» або «Налаштування» встановіть висоту сенсорної пластини, швидкість пошуку та зондування, а також максимальну відстань зондування.

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

Покладіть пластину на поверхню, на якій ви хочете обнулити Z. Підключіть вхідний провід датчика до інструменту (якщо використовуєте провідну пластину). Перед початком вимірювання світлодіод підтвердить надійність підключення датчика. Вручну перемістіть інструмент у межах максимальної відстані датчика. Натисніть кнопку «Touch Plate» (Доторкнутися до пластини). Машина двічі виміряє відстань, і поточне зміщення користувача (G5X) буде обнулено в нижній частині пластини за розрахунком на основі налаштування висоти пластини.

14. Автоматичне вимірювання інструментів

14.1. Огляд

QtDragon можна налаштувати для виконання інтегрованого автоматичного вимірювання інструментів за допомогою віджета Versa Probe та коду перепризначення.

Ця функція передбачає використання двох зондів одночасно:

  1. Датчик перемикання інструменту, закріплений десь на верстаті (іноді його називають налаштовувачем інструменту), та

  2. шпиндельний зонд, який тимчасово встановлюється на початку роботи (іноді його називають зондом xyz або зондом Renishaw).

Ці методи корисні для верстатів, які не мають повторюваних тримачів інструментів і не мають пристроїв автоматичної заміни інструментів. (Для верстатів з повторюваними тримачами інструментів див. розділ measuring tool length. Для верстатів з пристроями автоматичної заміни інструментів див. роботу, виконану в репозиторії LinuxCNC за адресою configs/sim/axis/remap/rack-toolchange.)

Щоб скористатися цією функцією, вам потрібно буде виконати деякі додаткові налаштування, і, можливо, ви захочете використовувати запропоновані контакти HAL для отримання значень у власній процедурі перемапування ngc. Ці налаштування розглядаються далі в цьому розділі.

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

14.2. Огляд робочого процесу

Після цього огляду наведено детальний покроковий огляд робочого процесу.

Кроки налаштування включають:

  • Введення швидкостей зонда на сторінці налаштувань зонда Versa.

  • Увімкнення функції «Використовувати вимірювання інструменту» на вкладці Versa Probe.

  • Увімкнення опції «Використовувати датчик інструмента» в налаштуваннях.

Important
Під час першої настройки автоматичного вимірювання інструменту будьте обережні, поки не підтвердите зміну інструменту та розташування датчика — інструмент/датчик легко зламати. Команда «Перервати» буде виконана, поки датчик знаходиться в русі.

Вимірювання інструменту в QtDragon організовано за такими кроками, які будуть детальніше пояснені в наступному розділі:

  1. Встановіть нульовий інструмент зонда, вимірявши інструментальний налаштовувач зі встановленим шпиндельним зондом

  2. Прикладіть до заготовки контакти по осях X та Y.

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

  4. У вкладці зонда Versa введіть виміряне значення висоти блоку.

  5. Перейдіть в автоматичний режим і запустіть програму.

images/sketch_auto_tool_measurement.png
Figure 7. Автоматичне вимірювання інструменту

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

Note
Ваша програма повинна містити зміну інструменту на початку. Інструмент буде виміряний, навіть якщо він вже використовувався раніше, тому немає небезпеки, якщо висота блоку змінилася. На YouTube є кілька відео, які демонструють техніку використання GMOCCAPY. Екран GMOCCAPY був піонером цієї техніки.

Послідовність подій (з використанням файлів за замовчуванням у налаштуваннях за замовчуванням):

  1. Швидкий рух по осі Z до позиції, визначеної в INI-файлі [TOOL_CHANGE] Z.

  2. Швидкий рух по X та Y до числа, визначеного в INI-файлі [TOOL_CHANGE] X та Y.

  3. Виконайте звичайну заміну інструменту M6, тобто зупиніть шпиндель, надішліть повідомлення користувачеві для заміни інструменту.

  4. Швидкий рух по X та Y до позиції, визначеної в INI-файлі [VERSA_TOOLSETTER] X та Y.

  5. Швидкий рух вниз по осі Z до позиції, визначеної в INI-файлі [VERSA_TOOLSETTER] Z.

  6. Здійснити зондування вниз по Z до максимуму, визначеного в MAXPROBE INI-файлу [VERSA_TOOLSETTER].

  7. Змінює зміщення поточної системи координат заготовки відповідно до різниці між попереднім інструментом та поточним виміряним інструментом.

  8. Швидке переміщення вгору по осі Z до позиції, визначеної в INI-файлі [VERSA_TOOLSETTER] Z_MAX_CLEAR.

  9. Швидкий перехід до позиції X Y під час виклику зміни інструменту.

  10. Швидкий рух вниз до позиції Z під час виклику зміни інструменту.

Note
Позиція Z [TOOL_CHANGE] повинна бути достатньо високою, щоб інструмент не зачепив зонд інструменту під час переміщення до позиції X та Y [VERSA_TOOLSETTER].

Відстань MAXPROBE повинна бути достатньо великою, щоб інструмент міг торкнутися зонда.

14.3. Детальний приклад робочого процесу

14.3.1. Одноразове налаштування

Наведені нижче налаштування потрібно виконати лише один раз, якщо вони залишаються чинними:

  1. У розділі «Екрани інструментів зондування»: переконайтеся, що значення для «Швидке» та «Пошук» прийнятні. Це швидкості, з якими буде виконуватися зондування, вказані в машинних одиницях за хвилину.

  2. У розділі «Екрани інструментів зонда»: переконайтеся, що опція «Вимірювання інструмента» увімкнена (цю кнопку потрібно виділити.)

  3. У розділі «Налаштування»: переконайтеся, що опція «Використовувати датчик інструмента» увімкнена (це прапорець, який потрібно встановити)

  4. У таблиці інструментів: налаштуйте інструмент для шпиндельного зонда та переконайтеся, що його зміщення Z встановлено на нуль.

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

14.3.2. Процедура перед запуском програми

Наступне налаштування виконується перед запуском програми, яка містить команди зміни інструмента M6.

  1. Фізично вставте шпиндельний зонд у шпиндель.

  2. Логічно завантажте шпиндельний зонд у шпиндель за допомогою команди M61 Qx, де x — це номер у таблиці інструментів для шпиндельного зонда (у вкладці таблиці інструментів є кнопка, яку також можна використовувати.)

  3. Позиціонування до інструментального верстата: Використовуйте кнопку під екранами зондів для «Перейти до інструментального верстата», щоб розташувати шпиндель над інструментальним верстата.

  4. Вимірювання налаштовувачем інструменту: використовуйте кнопку під екранами датчика для "Висота Z налаштовувача інструменту датчика". Зверніть увагу, що це встановить та відобразить на екрані налаштувань датчика значення "Висота датчика" в координатах ABS

  5. Перейдіть до заготовки.

  6. Вимірювання заготовки: Використовуйте кнопку під екранами зонда для «Вимірювання висоти матеріалу зондом:» це встановить і відобразить на екрані налаштувань зонда значення «Висота блоку» в координатах ABS. (Зазвичай це також буде нульовою точкою Z для вашої робочої системи координат)

  7. Встановлення системи координат заготовки (наприклад, G54 або інша): Використовуйте інструмент «Зонд» та будь-який екран зонда чи інший відповідний метод для встановлення системи координат X, Y та Z, необхідної для вашого завдання.

  8. Якщо ваша програма починається з команди TnM6 перед обертанням шпинделя, ви можете залишити датчик шпинделя встановленим. Ви також можете видати команду TnM6 для заміни датчика шпинделя, і якщо програма видасть ту саму команду, вона пропустить заміну інструменту.

Caution
Будьте обережні, щоб не залишити зонд шпинделя в шпинделі, якщо програма може запустити шпиндель.

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

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

14.4. Вимірювання висоти заготовки зондом у QtDragon_hd

Позиція Z [TOOL_CHANGE] повинна бути достатньо високою, щоб інструмент не зачепив зонд інструменту під час переміщення до позиції X та Y [VERSA_TOOLSETTER]. Відстань MAXPROBE повинна бути достатньо великою, щоб інструмент міг торкнутися зонда.

14.5. Вимірювання висоти заготовки зондом

Зондування висоти QtDragon_hd
Figure 8. QtDragon_hd - Вимірювання висоти заготовки зондом

Ця програма вимірює 2 заданих користувачем місця на осі Z та обчислює різницю висот.

Note
Це доступно лише у версії QtDragon_hd.
Увімкнути кнопки встановлення положення зонда
  • Якщо позначено, кнопки SET активовані.

  • Це дозволяє користувачеві автоматично заповнювати параметри X, Y та Z поточним положенням, яке відображається на цифрових індикаторах (DRO).

Автоматичне заповнення висоти заготовки на головному екрані
  • Після встановлення прапорця розрахована висота автоматично переноситься в поле «Висота заготовки» на головному екрані.

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

Зонд заготовки в
  • Координати X, Y та Z вказують, де має розпочатися перша процедура зондування в поточній системі WCS

Машинний зонд у
  • Координати X, Y та Z вказують, де має розпочатися друга процедура зондування в поточній системі WCS

Безпечна висота руху Z
  • Машину піднімають на безпечну висоту переміщення Z перед поштовхом до координат X та Y.

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

  • Його слід вибрати таким чином, щоб інструмент усував усі перешкоди під час бігу.

Кнопка ПУСК
  • Машина переміститься до першого місця, а потім проведе зондування вниз.

  • Потім машина переміщується до другого місця та знову проводить зондування.

  • Різниця між вимірюваними значеннями повідомляється як Розрахована висота заготовки.

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

Кнопка ПЕРЕРВАТИ
  • призводить до зупинки всіх виконуваних на даний момент процедур штовхання та зондування.

Кнопка ДОПОМОГА
  • відображає цей файл довідки.

  • Можна вказати будь-які 2 точки в межах робочого об’єму машини.

  • Якщо перша точка вища за другу, розрахована висота буде додатним числом.

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

  • Одиниці вимірювання не мають значення в цій програмі. Досліджені значення не зберігаються, а відображається лише різниця.

Caution
Встановлення неправильних значень може призвести до зіткнень з пристосуваннями на робочій поверхні верстата. Рекомендується проводити початкове тестування без інструменту та на безпечній висоті.

14.6. Штифти для вимірювання інструментів

Versaprobe пропонує 5 вихідних контактів для вимірювання інструменту. Ці контакти використовуються для зчитування з підпрограми G-коду перепризначення, тому код може реагувати на різні значення.

qtversaprobe.enable (HAL_BIT)

Інструмент вимірювання ввімкнено чи ні. Відображає стан кнопок на екрані.

qtversaprobe.blockheight (HAL_FLOAT)

Виміряна висота верхньої грані заготовки. Відображає вхід на екрані.

qtversaprobe.probeheight (HAL_FLOAT)

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

qtversaprobe.searchvel (HAL_FLOAT)

Швидкість пошуку перемикача зонда інструменту

qtversaprobe.probevel (HAL_FLOAT)

Швидкість вимірювання довжини інструменту. Відображає введений на екрані запис.

qtversaprobe.backoffdist (HAL_FLOAT)

Відстань, на яку зонд відходить після спрацьовування. Відображає вхід на екрані.

14.7. Зміни INI-файлу вимірювання інструменту

Змініть свій INI-файл, включивши наступне:

14.7.1. Розділ ЗОНД

QtDragon дозволяє вибрати один із двох стилів процедур зондування. Зонд Versa працює з перепризначенням M6 для додавання автоматичного зондування інструменту.

[PROBE]
#USE_PROBE = versaprobe
USE_PROBE = basicprobe

14.7.2. Розділ RS274NGC

Note
Ці стандартні записи повинні працювати нормально в більшості випадків. Деякі системи можуть потребувати використання linuxcnc/nc_files/examples/ замість linuxcnc/nc_files/. Перевірте, чи шляхи є дійсними. Можливі власні записи, що вказують на модифікований файл.
[RS274NGC]

# Змініть ці шляхи, щоб вони вказували на папки за допомогою stdglue.py, qt_auto_tool_probe.ngc and on_abort.ngc
# or similarly coded custom remap files.
SUBROUTINE_PATH = ~/linuxcnc/nc_files/remap-subroutines:\
~/linuxcnc/nc_files/remap_lib

# є підфункцією, яка викликається, коли виникає помилка під час зміни інструменту.
ON_ABORT_COMMAND=O <on_abort> call

# Код перепризначення для автоматичного зондування Z інструментом versaprobe у QtVCP
REMAP=M6  modalgroup=6 prolog=change_prolog ngc=qt_auto_probe_tool epilog=change_epilog

14.7.3. Розділ датчика інструменту

Положення датчика інструменту та початкове положення руху зондування.
Усі значення є абсолютними (G53) координатами, за винятком MAXPROBE, яке виражається як абсолютна довжина руху.
Усі значення вказані в одиницях виміру, властивих для даної машини.
X, Y та Z встановлюють місце розташування зонда інструменту.

Послідовність дій автоматичного зонда в прикладі qt_auto_probe_tool за замовчуванням, перепризначеному вище (цю поведінку можна змінити, модифікувавши оператор remap у розділі RS274NGC або модифікувавши код qt_auto_probe_tool.ngc.):

  1. швидкий перехід до позиції Z [CHANGE_POSITION] INI (це відносний перехід, він додає це значення Z до поточної координати Z)

  2. швидкий перехід до позиції [CHANGE_POSITION] X та Y INI.

  3. зачекайте підтвердження ручної зміни інструменту

  4. швидкий перехід до позицій X та Y INI [VERSA_TOOLSETTER]

  5. швидкий перехід до позиції Z_MAX_CLEAR INI [VERSA_TOOLSETTER]

  6. швидкий зонд

  7. повільний зонд

  8. швидкий перехід до позиції Z_MAX_CLEAR INI [VERSA_TOOLSETTER]

Z_MAX_CLEAR – це позиція Z, до якої потрібно перейти перед переходом до налаштовувача інструменту під час використання кнопки «Переміщення до налаштовувача інструменту».
Послідовність дій «Переміщення до налаштовувача інструменту»:

  1. швидкий перехід до позиції Z [VERSA_TOOLSETTER] Z_MAX_CLEAR

  2. швидкий перехід до позиції XY [VERSA_TOOLSETTER]

  3. швидкий перехід до позиції Z [VERSA_TOOLSETTER].

Приклади налаштувань:

[VERSA_TOOLSETTER]
X = 10
Y = 10
Z = -20
Z_MAX_CLEAR = -2
MAXPROBE =  -20

14.7.4. Розділ «Зміна позиції»

Це навмисно не називається TOOL_CHANGE_POSITION — Canon використовує цю назву, і в іншому випадку це спричинить конфлікт. Позиція, в яку потрібно перемістити верстат перед тим, як дати команду на зміну інструменту. Усі значення вказані в абсолютних координатах. Усі значення вказані в одиницях виміру, властивих для верстата.

[CHANGE_POSITION]
X = 10
Y = 10
Z = -2

14.7.5. Розділ Python

Розділ Python визначає, які файли шукає інтерпретатор Python LinuxCNC, наприклад, файл toplevel.py у папці python у каталозі конфігурації: Ці стандартні записи повинні працювати нормально в більшості випадків. Деякі системи можуть потребувати використання linuxcnc/nc_files/examples/ замість linuxcnc/nc_files/. Можливі власні записи, що вказують на модифікований файл.

# Початкова точка шляху для всіх пошуків перепризначення, тобто sys.path.append() у Python
PATH_APPEND = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python
# path to the tremap's 'toplevel file
TOPLEVEL = ~/linuxcnc/nc_files/remap_lib/python-stdglue/python/toplevel.py

14.8. Необхідні HAL-з’єднання

Переконайтеся, що ви підключили вхід зонда інструмента до вашого HAL-файлу: якщо підключено правильно, ви зможете перемикати світлодіод зонда в QtDragon, натискаючи стилус зонда.

net probe  motion.probe-input <= <your_input_pin>

15. Бігти від лінії

Програму G-коду можна запустити з будь-якого рядка, натиснувши на потрібний рядок у вікні відображення G-коду в режимі AUTO. Оператор несе відповідальність за те, щоб машина перебувала в потрібному режимі роботи. З’явиться діалогове вікно, в якому можна заздалегідь встановити напрямок і швидкість шпинделя. Початкова рядок вказана в полі з написом LINE (РЯДОК) поруч із кнопкою CYCLE START (СТАРТ ЦИКЛУ). Функцію запуску з рядка можна вимкнути на сторінці налаштувань.

Note
Команда run-from-line в LinuxCNC не дуже зручна для користувача. Наприклад, вона не запускає шпиндель і не підтверджує правильність вибору інструменту. Крім того, вона не дуже добре обробляє підпрограми. Якщо її використовувати, то найкраще починати з швидкого переміщення.

16. Лазерні кнопки

Кнопка LASER ON/OFF призначена для ввімкнення або вимкнення виходу, який підключений до невеликого лазерного проектора з перехрестям. Коли перехрестя розташоване над бажаною контрольною точкою на заготовці, можна натиснути кнопку REF LASER, яка встановлює зміщення по осях X і Y на значення, вказані в полях LASER OFFSET на сторінці налаштувань.

17. Опис вкладок

Вкладки дозволяють користувачеві вибрати найбільш відповідну інформацію/елемент управління на трьох верхніх панелях. Якщо на екрані відображається екранна клавіатура і користувач бажає приховати її, але зберегти поточну вкладку, він може зробити це, натиснувши на поточну вкладку показу. У QtDragon між текстовим дисплеєм G-коду та графічним дисплеєм G-коду є роздільник. Його можна використовувати для розподілу розміру між двома областями. Це можна налаштувати по-різному в кожній вкладці та в кожному режимі.

17.1. Головна вкладка

Ця вкладка відображає графічне представлення поточної програми. Бічні кнопки керуватимуть дисплеєм.

  • User View: Вибрати/відновити встановлений користувачем вигляд поточної програми.

  • P,X,Y,Z: Встановити стандартні подання.

  • D: Увімкнути/вимкнути відображення розмірів.

  • +, -: Елементи керування масштабуванням.

  • C: Чітка графіка ліній руху інструменту.

У qtdragon_hd також є макро-кнопки, доступні з правого боку. В INI можна визначити до десятків кнопок.

17.2. Вкладка «Файл»

Ви можете використовувати цю вкладку для завантаження або перенесення програм. Редагування програм G-коду можна вибрати з цієї вкладки. За допомогою qtdragon_hd саме тут можна завантажити «G-code Ripper».

17.3. Вкладка «Зміщення»

Ви можете контролювати/змінювати системні зміщення на цій вкладці. Є зручні кнопки для обнулення обертання, G92 та поточного користувацького зміщення G5x.

17.4. Вкладка інструментів

На цій вкладці можна контролювати/змінювати зміщення інструментів. На цій вкладці також можна додавати та видаляти інструменти з файлу інструментів. Коли вибрано цю вкладку, окремі кнопки повернення в початкове положення в області DRO змінюються на кнопки налаштування зміщення інструментів. Вони повертаються до кнопок повернення в початкове положення, коли ви вибираєте іншу вкладку. Натискання цієї кнопки інструменту відкриває меню опцій:

  • Встановити поточне положення інструменту

  • Налаштування поточного положення інструменту

  • Нульове поточне положення інструменту

  • Безпосереднє встановлення зміщення інструменту

  • Скинути до останнього

17.5. Вкладка стану

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

17.6. Вкладка зонда

На цій вкладці відображаються параметри процедур зондування. Залежно від параметрів INI, це може бути стиль VersaProbe або BasicProbe. Вони функціонально схожі. QtDragon_hd також покаже менше вікно графічного дисплея.

17.7. Вкладка «Вигляд камери»

Якщо розпізнана веб-камера підключена, на цій вкладці буде відображатися відеозображення з накладеним перехрестям, колом і показником градусів. Це можна налаштувати відповідно до особливостей деталі, наприклад для дотику. Базова бібліотека використовує модуль openCV Python для підключення до веб-камери.
Щоб налаштувати співвідношення сторін X або Y (у відсотках), номер порту камери, API-бекенд або необхідну роздільну здатність, знайдіть у файлі налаштувань:

[CUSTOM_FORM_ENTRIES]
Camview xscale = 100
Camview yscale = 100
Camview cam number = 0
Camview cam api = V4L2
Camview cam resolution = 1280,720

Шкали вказані у відсотках, зазвичай діапазон становить 100–200 на одній осі.
Змінюючи ці шкали, можна перевернути зображення по осі X, Y або по обох осях.
API походить від openCV, доступні бекенди будуть перелічені, якщо використовувати -V debugging. Встановіть значення «ANY», щоб opencv вибрав сам.
Встановіть роздільну здатність на DEFAULT, щоб opencv вибрав її. Доступні роздільні здатності будуть перелічені, якщо використовується -V debugging.

Note
Файл налаштувань можна редагувати лише тоді, коли QtDragon не запущено.

17.8. Вкладка G-кодів

На цій вкладці буде відображено список G-коду LinuxCNC. Якщо ви натиснете на рядок, відобразиться опис коду.

17.9. Вкладка налаштувань

Можна завантажити файл HTML або PDF (з розширенням .html / .pdf) з примітками щодо налаштування, і він буде відображатися на вкладці налаштування.
Якщо ви завантажуєте програму G-коду і є файл HTML/PDF з такою ж назвою, він завантажиться автоматично.
Деякі програми, такі як Fusion 360 і Aspire, створюють ці файли за вас. Ви також можете написати власні HTML-документи за допомогою кнопки SetUp Writer, що входить до комплекту.
Є три підвкладки:

  • HTML - Тут відображаються будь-які завантажені HTML-сторінки. Кнопки навігації працюють на цій сторінці.

  • PDF - тут відображаються будь-які завантажені сторінки налаштувань PDF-файлу.

  • PROPERTIES - Коли програма завантажується, тут відображаються властивості її G-коду.

Є кнопки навігації для HTML-сторінки:

  • Стрілка вгору повертає вас на стандартну HTML-сторінку.

  • Стрілка вліво переміщує вас назад на одну HTML-сторінку.

  • Стрілка вправо переміщує на одну HTML-сторінку вперед.

Якщо ви бажаєте додати власну HTML-сторінку за замовчуванням, назвіть її «default_setup.html» і розмістіть у папці конфігурації.
Власні панелі QtVCP можна відобразити на цій вкладці, встановивши для параметра EMBED_TAB_LOCATION значення «tabWidget_setup».

Вкладка налаштувань QtDragon
Figure 9. QtDragon - Зразок вкладки налаштування

17.10. Вкладка налаштувань

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

17.11. Вкладка «Утиліти»

На цій вкладці буде відображено ще один вибір утиліт G-коду:

  • Facing: дозволяє швидке фрезерування торця визначеної області під кутами 0,45 та 90 градусів.

  • Hole Circle: дозволяє швидко налаштувати програму для свердління окружності болтів визначеного діаметра та кількості отворів.

  • NGCGUI: — це версія QtVCP популярного конструктора/селектора підпрограм G-коду, див. Widgets-NGCGUI.

Тут можна відображати власні панелі QtVCP, встановивши для параметра EMBED_TAB_LOCATION значення tabWidget_utilities

17.12. Вкладка користувача

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

18. Стилі

Майже всі аспекти зовнішнього вигляду графічного інтерфейсу користувача можна налаштувати за допомогою файлу стилів QtDragon.qss. Файл можна редагувати вручну або за допомогою діалогового вікна стилів у графічному інтерфейсі користувача. Щоб викликати діалогове вікно, натисніть клавішу F12 у головному вікні. Нові стилі можна тимчасово застосувати, а потім зберегти в новому файлі qss або замінити поточний файл qss.

Стилі QtDragon
Figure 10. QtDragon - Два приклади стилю

19. Інтернаціоналізація

Можна створювати файли перекладу для QtDragon для відображення мовою поточної локалізації.

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

Наступне припускає, що каталог LinuxCNC git — ~/linuxcnc-dev.

Note
Якщо використовується QtDragon_hd, замініть qtdragon_hd на qtdragon

Усі мовні файли зберігаються у ~/linuxcnc-dev/share/screens/qtdragon/languages.

Файл qtdragon.py — це версія файлу графічного інтерфейсу на Python, яка використовується для перекладу.

Файли .ts – це вихідні файли перекладів. Це файли, які потрібно створити/відредагувати для кожної мови.

Файли .qm — це скомпільовані файли перекладу, що використовуються pyqt.

Мова визначається підкресленням та першими двома літерами локалі, наприклад, якщо виконується італійський переклад, то це буде _it. У цьому документі вона буде позначатися як _xx, тому qtdragon_xx.ts у цьому документі насправді буде qtdragon_it.ts для італійського перекладу.

Локаль QtDragon за замовчуванням — _en, що означає, що будь-які файли перекладу, створені як qtdragon_en.*, не будуть використані для перекладів.

Якщо будь-яка з необхідних утиліт (pyuic5, pylupdate5, linguist) не встановлена, користувачеві потрібно буде встановити необхідні інструменти розробки:

sudo apt install qttools5-dev-tools pyqt5-dev-tools

Перехід до каталогу мов:

cd ~/linuxcnc-dev/share/qtvcp/screens/qtdragon/languages

Якщо до графічного інтерфейсу було внесено будь-які зміни тексту, виконайте наступну команду, щоб оновити файл графічного інтерфейсу Python:

pyuic5 ../qtdragon.ui > qtdragon.py

Користувач може створити новий файл-джерело перекладу для неіснуючої мови перекладу або змінити існуючий файл-джерело перекладу у зв’язку зі змінами, внесеними до деякого тексту у файлі-джерелі QtDragon. Якщо ви змінюєте існуючий переклад, у якому не було змін у файлі-джерелі, цей крок не є обов’язковим.

Створення або редагування файлу .ts:

./langfile xx
Note
Ця команда є скриптом, який виконує наступне: $ pylupdate5 .py ../.py ../../../../../lib/python/qtvcp/lib/qtdragon/*.py -ts qtdragon_xx.ts

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

linguist
  1. Відкрийте файл TS та перекладіть рядки

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

Після завершення редагування збережіть файл:
Файл -> Зберегти

Потім створіть файл .qm:
Файл -> Реліз

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

Користувачі можуть надсилати файли перекладів для включення в QtDragon. Найкращий спосіб — надіслати запит на витягнення з облікового запису користувача GitHub, як описано в документації contributing to LinuxCNC. Єдині файли, які необхідно підтвердити, — це qtdragon_xx.ts та qtdragon_xx.qm.

20. Налаштування

20.1. Таблиці стилів

Стильові таблиці можна використовувати для значної міри налаштування, але зазвичай потрібно трохи знати про назви віджетів. Натискання клавіші F12 відкриє діалогове вікно редактора стильових таблиць для завантаження/тестування/збереження змін.
Вкладка «Перегляд таблиці» дозволяє вибрати та застосувати таблицю стилів, яку QtDragon буде використовувати при першому завантаженні.
Натисніть кнопку «Копіювати у вкладку редагування», щоб скопіювати поточну таблицю стилів у вкладку редагування.
Вкладка «Редагування таблиці» дозволяє редагувати, застосовувати та зберігати зміни у відображеній таблиці стилів.

Редактор стилів QtDragon

Іноді ці рядки будуть присутні, і ви можете їх змінити, інакше вам потрібно буде їх додати.

Наприклад, щоб змінити шрифт DRO (знайдіть цей запис і змініть назву шрифту):

DROLabel,
StatusLabel#status_rpm {
    border: 1px solid black;
    border-radius: 4px;
    font: 20pt "Noto Mono";
}

Щоб змінити шрифт та формат відображення DRO:

DROLabel {
    font: 25pt "Lato Heavy";
    qproperty-imperial_template: '%9.5f';
    qproperty-metric_template: '%10.4f';
    qproperty-angular_template: '%11.2f';

    /*Налаштування параметрів меню */
    qproperty-showLast: true;
    qproperty-showDivide : false;
    qproperty-showGotoOrigin: false;
    qproperty-showZeroOrigin: false;
    qproperty-showSetOrigin: true;
    qproperty-dialogName: CALCULATOR;
}

Змініть пункти меню натискання кнопки вибору осі:

AxisToolButton {
    /* Налаштуйте всі параметри меню */
    qproperty-showLast: false;
    qproperty-showDivide : true;
    qproperty-showGotoOrigin: true;
    qproperty-showZeroOrigin: true;
    qproperty-showSetOrigin: false;
    qproperty-dialog_code_string: CALCULATOR;
}

Щоб змінити текст кнопки «туман» на «повітря» (додайте ці рядки)

#action_mist{
    qproperty-true_state_string: "Air\\nOn";
    qproperty-false_state_string: "Air\\nOff";
}

Щоб змінити шрифт і формат відображення «Зсуви»:

ToolOffsetView {
    font: 20pt "Lato Heavy";
    qproperty-imperial_template: '%9.1f';
    qproperty-metric_template: '%10.1f';

}

OriginOffsetView {
    font: 12pt "Lato Heavy";
    qproperty-imperial_template: '%9.1f';
    qproperty-metric_template: '%10.1f';
}

Щоб зупинити ефект розмиття за допомогою діалогових вікон:

#screen_options {
    qproperty-focusBlur_option: false;
}

Щоб змінити кольори виділення/підсвічування статусу:

#screen_options {
    qproperty-user1Color: white;     /*  default status     */
    qproperty-user2Color: #ff9000;   /*  warning status     */
    qproperty-user3Color: #ff8a96;   /*  critical status    */
    qproperty-user4Color: #ffaa00;   /*  MPG select         */
    qproperty-user5Color: #ff0000;   /*  Cycle Start select */
}

Зміна кольорів/шрифтів відображення тексту G-коду:

EditorBase{
background:black;
qproperty-styleColorCursor:white;
qproperty-styleColorBackground:grey;
qproperty-styleColor0: black;
qproperty-styleColor1: darkblue;
qproperty-styleColor2: blue;
qproperty-styleColor3: red;
qproperty-styleColor4: lightblue;
qproperty-styleColor5: white;
qproperty-styleColor6: lightGreen;
qproperty-styleColor7: yellow ;
qproperty-styleColorSelectionText: white;
qproperty-styleColorSelectionBackground: blue;
qproperty-styleFont0: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont1: "Times,15,-1,5,90,1,0,1,0,0";
qproperty-styleFont2: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont3: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont4: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont5: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont6: "Times,15,-1,5,90,0,0,1,1,0";
qproperty-styleFont7: "Times,15,-1,5,90,0,0,1,1,0";
}

Щоб кнопки ручного керування шпинделем також поступово збільшували/зменшували швидкість:

#action_spindle_fwd{
    qproperty-spindle_up_action: true;
}
#action_spindle_rev{
    qproperty-spindle_down_action: true;
}

20.2. Код Qt Designer та Python

Всі аспекти графічного інтерфейсу користувача можна повністю налаштувати за допомогою Qt Designer та/або коду Python.
Ця можливість включена в середовище розробки QtVCP.
Широке використання віджетів QtVCP дозволяє мінімізувати обсяг необхідного коду Python, що спрощує внесення змін.
На веб-сайті LinuxCNC є докладна документація щодо встановлення та використання бібліотек QtVCP.
Дивіться QtVCP для отримання додаткової інформації про QtVCP в цілому.
Користувацькі модифікації можна додати шляхом «підкласування» файлу обробника. Це додає код поверх оригіналу.
QtDragon також може використовувати файл rc QtVCP для внесення незначних модифікацій коду Python без використання користувацького файлу обробника.

Див. Зміна екранів для отримання додаткової інформації про налаштування.

Деякі налаштування віджетів доступні для базового зонда та навпаки для зонда.

QtDragon налаштований
Figure 11. QtDragon - Налаштований QtDragon