1. Введение
AXIS — это графический интерфейс для LinuxCNC, который имеет предварительный просмотр в реальном времени и backplot. Он написан на Python и использует Tk и OpenGL для отображения пользовательского интерфейса.
2. Начало
Если ваша конфигурация в настоящее время не настроена для использования AXIS, вы можете изменить ее, отредактировав файл .ini (INI-файл). В разделе [DISPLAY]
измените строку [DISPLAY]
на DISPLAY = axis
.
Пример конфигурации sim/axis.ini уже настроен для использования AXIS в качестве внешнего интерфейса.
При запуске AXIS открывается окно, подобное показанному на рисунке [fig:axis-window] выше.
2.1. настройки INI
Для получения дополнительной информации о настройках файла INI, которые могут изменить работу AXIS, см. Display Section и Axis Section Главы конфигурации INI.
-
CYCLE_TIME - Отрегулируйте скорость отклика ГИП в миллисекундах. Типичное значение 100, полезный диапазон 50–200.
(по причинам, связанным с устаревшими версиями, время будет принято в секундах (0,05–0,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), а также текущего местоположения controlled point станка с ЧПУ. Позже в этой области будет отображаться путь, по которому прошел станок с ЧПУ, называемый backplot.
-
Большой УЦИ, показывающий текущее положение и все смещения.
-
-
Строка меню и панель инструментов, позволяющие выполнять различные действия
-
Manual Control Tab - который позволяет вам заставить двигаться станок, включать или выключать шпиндель, а также включать или выключать подачу СОЖ, если она включена в INI-файл.
-
MDI Tab - где программы G-кода можно вводить вручную, по одной строке за раз. Здесь также отображаются Active G-codes, которые показывают, какие модальные G-коды действуют.
-
Feed Override - что позволяет масштабировать скорость запрограммированных движений. Максимальное значение по умолчанию составляет 120 %, и в INI-файле можно установить другое значение. Дополнительную информацию см. в разделе Display файла INI.
-
Spindle Override - что позволяет масштабировать скорость шпинделя вверх или вниз.
-
Jog Speed - что позволяет установить скорость медленной подачи в пределах, заданных в INI-файле. Дополнительную информацию см. в разделе Display файла INI.
-
Max Velocity - что позволяет ограничить максимальную скорость всех запрограммированных движений (кроме синхронизированного движения шпинделя).
-
Область текстового отображения, показывающая загруженный G-код.
-
Строка состояния, показывающая состояние станка. На этом снимке экрана станок включен, в него не вставлен инструмент, а отображаемое положение — Relative (показывающее все смещения) и Actual (показывающее положение обратной связи).
3.1. Пункты меню
Некоторые пункты меню могут быть выделены серым цветом в зависимости от того, как настроен INI-файл. Для получения дополнительной информации о настройке см. INI Chapter.
3.1.1. Меню File
-
Open… - Открывает стандартное диалоговое окно для открытия файла G-кода для загрузки в AXIS. Если вы настроили LinuxCNC на использование программы-фильтра, вы также можете открыть ее. Дополнительную информацию см. в разделе FILTER конфигурации INI.
-
Recent Files - Отображает список недавно открытых файлов.
-
Edit… - Откройте текущий файл G-кода для редактирования, если в вашем INI-файле настроен редактор. См. раздел DISPLAY для получения дополнительной информации об указании используемого редактора.
-
Reload - перезагрузит текущий файл G-кода. Если вы его редактировали, вам необходимо перезагрузить его, чтобы изменения вступили в силу. Если вы остановили файл и хотите начать с начала, перезагрузите файл. Перезагрузка панели инструментов аналогична меню.
-
Save G-code as… - Сохраните текущий файл под новым именем.
-
Properties - Сумма быстрых и подающих перемещений. Не учитывает ускорение, смешивание или режим траектории, поэтому сообщаемое время никогда не будет меньше фактического времени выполнения.
-
Edit tool table… - То же, что и Edit, если вы определили редактор, вы можете открыть таблицу инструментов и редактировать ее.
-
Reload tool table - После редактирования таблицы инструментов необходимо перезагрузить ее.
-
Ladder editor - Если вы загрузили ClassicLadder, вы можете редактировать его здесь. Дополнительную информацию см. в разделе ClassicLadder.
-
Quit - Завершает текущий сеанс LinuxCNC.
3.1.2. Меню Machine
-
Toggle Emergency Stop F1 - Изменяет состояние аварийной остановки.
-
Toggle Machine Power F2 - Изменяет состояние питания станка, если не включена аварийная остановка.
-
Run Program - Запускает загруженную в данный момент программу с самого начала.
-
Run From Selected Line - выбирает строку, с которой хотите начать. Используйте с осторожностью, так как это сначала переместит инструмент в ожидаемую позицию перед строкой, а затем выполнит остальную часть кода.
Warning
|
Не используйте Run From Selected Line, если ваша программа G-кода содержит подпрограммы. |
-
Step - Один шаг через программу.
-
Pause - Приостановить программу.
-
Resume - Возобновить работу после паузы.
-
Stop - Остановить работающую программу. Если выбран запуск после остановки, программа запустится с начала.
-
Stop at M1 - Если достигнут M1 и это отмечено, выполнение программы остановится на строке M1. Нажмите Resume, чтобы продолжить.
-
Skip lines with "/" - Если строка начинается с / и этот флажок установлен, строка будет пропущена.
-
Clear MDI history - Очищает окно истории MDI.
-
Copy from MDI history - Копирует историю MDI в буфер обмена
-
Paste to MDI history - Вставка из буфера обмена в окно истории MDI
-
Calibration - Запускает помощник калибровки (emccalib.tcl). При калибровке считывается файл HAL, и для каждого параметра setp, использующего переменную из файла INI, находящегося в разделе [AXIS_L], [JOINT_N], [SPINDLE_S] или [TUNE], создается запись, которую можно редактировать и тестировать. .
-
Show HAL Configuration - Открывает окно конфигурации HAL, в котором вы можете отслеживать компоненты HAL, контакты, параметры, сигналы, функции и потоки.
-
HAL Meter - Открывает окно, в котором вы можете отслеживать один HAL контакт, сигнал или параметр.
-
HAL Scope - Открывает виртуальный осциллограф, который позволяет отображать зависимости значений HAL от времени.
-
Show LinuxCNC Status - Открывает окно, показывающее статус LinuxCNC.
-
Set Debug Level - Открывает окно, в котором можно просмотреть уровни отладки и настроить некоторые из них.
-
Homing - Исходное положение одной или всех осей.
-
Unhoming - Отменить исходное положение одной или всех осей.
-
Zero Coordinate System - Установите все смещения на ноль в выбранной системе координат.
-
Инструмент Touch Off
-
Tool touch off to workpiece - При выполнении Touch Off введенное значение относится к текущей системе координат заготовки (G5x), измененной смещением оси (G92). После завершения Touch Off Относительная координата выбранной оси станет введенным значением. См. G10 L10 в главе G-код.
-
Tool touch off to fixture - При выполнении Touch Off введенное значение относится к девятой (G59.3) системе координат, при этом смещение оси (G92) игнорируется. Это полезно, когда в фиксированном месте на станке имеется приспособление для касания инструмента, а девятая (G59.3) система координат установлена так, что острие инструмента нулевой длины находится в начале координат приспособления, когда Относительные координаты равны 0. См. G10 L11 в главе G-код.
-
3.1.3. Меню View
-
Top View - Top View (или вид Z) отображает G-код, смотрящий вдоль оси Z от положительного к отрицательному. Этот вид лучше всего подходит для просмотра X и Y.
-
Rotated Top View - Rotated Top View (или повернутый вид по оси Z) также отображает G-код, смотрящий вдоль оси Z от положительного к отрицательному. Но иногда удобно отображать оси X и Y, повернутые на 90 градусов, чтобы лучше соответствовать дисплею. Этот вид также лучше всего подходит для просмотра X и Y.
-
Side View - Вид сбоку (или вид X) отображает G-код, смотрящий вдоль оси X от положительного к отрицательному. Этот вид лучше всего подходит для просмотра Y и Z.
-
Front View - Вид спереди (или вид Y) отображает G-код, смотрящий вдоль оси Y от отрицательного к положительному. Этот вид лучше всего подходит для просмотра X и Z.
-
Perspective View - Перспективный вид (или вид P) отображает G-код, рассматривающий деталь с настраиваемой точки зрения, по умолчанию — X+, Y-, Z+. Положение регулируется с помощью мыши и переключателя перетаскивания/поворота. Это представление является компромиссным, и, хотя оно хорошо справляется с попыткой отобразить три (до девяти!) осей на двухмерном изображении, часто встречаются некоторые особенности, которые трудно увидеть, что требует изменения точки обзора. Этот вид лучше всего подходит, если вы хотите видеть все три (до девяти) осей одновременно.
-
Display Inches - Установите масштаб дисплея AXIS в дюймах.
-
Display MM - Установите масштаб дисплея AXIS в миллиметрах.
-
Show Program - При желании дисплей предварительного просмотра загруженной программы G-кода можно полностью отключить.
-
Show Program Rapids - На экране предварительного просмотра загруженной программы G-кода перемещения скорости подачи (G1,G2,G3) всегда будут отображаться белым цветом. А вот отображение быстрых ходов (G0) голубым цветом при желании можно отключить.
-
Alpha-blend Program - Этот параметр облегчает просмотр сложных программ, но может привести к замедлению предварительного просмотра.
-
Show Live Plot - При желании подсветку путей подачи (G1,G2,G3) при движении инструмента можно отключить.
-
Show Tool - При желании отображение конуса/цилиндра инструмента можно отключить.
-
Show Extents - При желании отображение размеров (максимального хода в каждом направлении оси) загруженной программы G-кода можно отключить.
-
Show Offsets - Выбранное исходное положение смещения приспособления (G54-G59.3) может быть показано как набор из трех ортогональных линий, по одной красной, синей и зеленой. Это отображение начала смещения (или нуля приспособления) при желании можно отключить.
-
Show Machine Limits - Максимальные пределы перемещения станка для каждой оси, установленные в INI-файле, показаны в виде прямоугольника, нарисованного красными пунктирными линиями. Это полезно при загрузке новой программы G-кода или при проверке того, какое смещение приспособления потребуется, чтобы привести программу G-кода в пределы перемещения вашего станка. Его можно отключить, если он не нужен.
-
Show Velocity - Отображение скорости иногда полезно, чтобы увидеть, насколько близко ваш станок работает к расчетной скорости. При желании его можно отключить.
-
Show Distance to Go - Оставшееся расстояние — очень полезный параметр, который нужно знать при первом запуске неизвестной программы с G-кодом. В сочетании с элементами управления быстрой коррекцией и коррекцией скорости подачи можно избежать нежелательного повреждения инструмента и станка. После отладки программы G-кода и ее бесперебойной работы отображение оставшегося пути при желании можно отключить.
-
Coordinates in large font… - Предварительные координаты осей и скорость будут отображаться крупным шрифтом в представлении траектории инструмента.
-
Clear Live Plot - По мере перемещения инструмента на дисплее AXIS путь G-кода подсвечивается. Чтобы повторить программу или лучше рассмотреть интересующую область, можно очистить ранее выделенные пути.
-
Show Commanded Position - Это позиция, которую LinuxCNC попытается занять. Как только движение остановится, LinuxCNC попытается удержать эту позицию.
-
Show Actual Position - Фактическое положение — это измеренное положение, считанное с энкодеров системы или смоделированное генераторами шагов. Это может немного отличаться от заданного положения по многим причинам, включая настройку ПИД-регулятора, физические ограничения или квантование положения.
-
Show Machine Position - Это положение в несмещенных координатах, установленное приведением в исходную позицию.
-
Show Relative Position - Это положение станка, измененное смещениями G5x, G92, и G43.
3.1.4. Меню помощи
-
About AXIS - Мы все знаем, что это такое.
-
Quick Reference - Показывает сочетания клавиш клавиатуры.
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. Область графического отображения
В верхнем левом углу дисплея программы находится отображение положения координат для каждой оси. Справа от числа отображается символ исходного положения , если ось была перемещена в исходное положение.
Символ предела отображается справа от номера позиции координат, если ось находится на одном из концевых выключателей.
Чтобы правильно интерпретировать числа координат, обратитесь к индикатору Position: в строке состояния. Если позиция Machine Actual, то отображаемое число находится в системе координат станка. Если это Relative Actual, то отображаемое число находится в смещенной системе координат. Если отображаемые координаты являются относительными и установлено смещение, на дисплее будет отображаться голубой исходное положение станка маркер.
Если позиция Commanded, то отображаются точные координаты, заданные в команде G-кода. Если это Actual, то это положение, в которое машина фактически переместилась. Эти значения могут отличаться от заданного положения из-за ошибки рассогласования, зоны нечувствительности, разрешения энкодера или размера шага. Например, если вы задаете движение на X 0,0033 на вашем фрезерном станке, но один шаг вашего шагового двигателя или один отсчет энкодера равен 0,00125, тогда Commanded положение может быть 0,0033, а Actual положение будет 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 может дополнительно отображать сетку в ортогональных видах. Включите или отключите сетку с помощью меню Grid в разделе View. Если этот параметр включен, сетка отображается в виде сверху и в повернутом виде сверху; когда система координат не повернута, сетка также отображается на видах спереди и сбоку. Пресеты в меню Grid контролируются элементом INI-файла [DISPLAY]GRIDS
. Если не указано, по умолчанию используется значение 10 мм 20 мм 50 мм 100 мм 1 дюйм 2 дюйма 5 дюймов 10 дюймов
.
Указание очень маленькой сетки может снизить производительность.
Если щелкнуть левой кнопкой мыши по части графика предварительного просмотра, линия будет выделена как в графическом, так и в текстовом отображении. Щелкнув левой кнопкой мыши по пустой области, подсветка будет снята.
При перетаскивании с нажатой левой кнопкой мыши график предварительного просмотра будет сдвинут (панорамирован).
При перетаскивании с нажатой левой кнопкой мыши или при перетаскивании с нажатым колесиком мыши график предварительного просмотра будет повернут. Когда линия выделена, центром вращения является центр линии. В противном случае центр вращения является центром всей программы.
Вращая колесо мыши, перетаскивая его с нажатой правой кнопкой мыши или перетаскивая с нажатой левой кнопкой мыши, можно увеличить или уменьшить масштаб графика предварительного просмотра.
Щелкнув одну из иконок Preset View или нажав кнопку V, можно выбрать несколько предустановленных видов.
3.4. Область отображения текста
При щелчке левой кнопкой мыши по строке программы эта строка будет выделена как на графическом, так и на текстовом дисплеях.
Когда программа запущена, строка, исполняемая в данный момент, выделяется красным цветом. Если пользователь не выбрал ни одну строку, текстовый дисплей автоматически прокрутится, чтобы отобразить текущую строку.
3.5. Ручное управление
Когда станок включен, но не запущена программа, элементы на вкладке Manual Control можно использовать для перемещения станка или управления его шпинделем и СОЖ.
Когда станок не включен или когда запущена программа, ручное управление недоступно.
Многие из описанных ниже элементов полезны не на всех станках. Когда AXIS обнаруживает, что определенный контакт не подключен в HAL, соответствующий элемент на вкладке Manual Control удаляется. Например, если контакт HAL spindle.0.brake не подключен, кнопка Brake не появится на экране. Если установлена переменная среды AXIS_NO_AUTOCONFIGURE, это поведение отключено и все элементы появятся.
AXIS позволяет перемещать станок вручную. Это действие известно как медленная подача (jogging). Сначала выберите ось, которую нужно переместить, щелкнув на ней. Затем нажмите и удерживайте кнопку + или - в зависимости от желаемого направления движения. Первые четыре оси также можно перемещать с помощью клавиш со стрелками (X и Y), клавиш PAGE UP и PAGE DOWN (Z), а также клавиш [ и ] (A).
Если выбрано Continuous, движение будет продолжаться до тех пор, пока нажата кнопка или клавиша. Если выбрано другое значение, станок будет перемещаться точно на отображаемое расстояние при каждом нажатии кнопки или клавиши. По умолчанию доступны значения 0.1000, 0.0100, 0.0010, 0.0001.
Дополнительную информацию о настройке приращений см. в разделе DISPLAY Section.
Параметр INI-файла [KINS]JOINTS определяет общее количество сочленений в системе. Сочленение может быть сконфигурировано с концевиком исходного положения или для немедленного возврата в исходное положение. Сочленения могут определять последовательность приведения в исходное положение, которая организует порядок для приведения в исходное положение групп сочленений.
Если все сочленения настроены для возврата в исходное положение и имеют действительные последовательности возврата в исходное положения, на кнопке возврата в исходное положение будет отображаться надпись Home All. Нажатие кнопки Home All (или клавиши Ctrl-HOME) инициирует возврат в исходное положение для всех сочленений, используя определенные для них последовательности возврата в исходное положение. Нажатие клавиши HOME приведет в исходное положение сочленение, соответствующее текущей выбранной оси, даже если последовательность возврата в исходное положение не определена.
Если не все оси имеют действительные последовательности возврата в исходное положение, на кнопке возврата отобразится Home Axis, и будет выполнено приведение в исходное положение сочленения только для выбранной в данный момент оси. Каждую ось необходимо выбирать и приводить в исходное положение отдельно.
Выпадающее меню Machine/Homing предоставляет альтернативный метод приведения в исходное положение осей. Выпадающее меню Machine/Unhoming предоставляет возможность для вывода осей из исходного положения.
Если на вашем станке в конфигурации не определены концевики исходного положения, кнопка Home установит текущее положение выбранной оси как абсолютное положение 0 для этой оси и установит бит is-homed для этой оси.
Дополнительную информацию см. в разделе Homing Configuration Chapter.
Операция аналогична операции с Identity Kinematics, но перед возвратом в исходное положение кнопки с фиксацией выбирают сочленения по номеру. На кнопке возврата в исходное положение отобразится надпись Home All, если все сочленения настроены для приведения в исходное положение и имеют действительные последовательности приведения в исходное положение. В противном случае на кнопке возврата отобразится Home Joint.
Дополнительную информацию см. в разделе Homing Configuration Chapter.
При нажатии кнопки Touch Off или клавиши END, G5x offset для текущей оси изменяется так, что текущее значение оси будет заданной величиной. Выражения можно вводить, используя правила для программ rs274ngc, за исключением того, что нельзя ссылаться на переменные. Полученное значение отображается в виде числа.
См. также пункты меню Machine: Touch part и Touch part holder.
При нажатии кнопки Tool Touch Off длина и смещения текущего загруженного инструмента будут изменены так, чтобы текущее положение кончика инструмента соответствовало введенной координате.
См. также параметры Прикосновение инструмента к заготовке и Прикосновение инструмента к приспособлению в меню Станок.
Нажав кнопку Override Limits, станку будет разрешена временно медленная подача от физического концевого выключателя. Этот флажок доступен только при срабатывании концевого выключателя. Коррекция сбрасывается после одной подачи. Если ось настроена с отдельными положительными и отрицательными концевыми выключателями, LinuxCNC разрешит медленную подачу только в правильном направлении. Override Limits не позволит медленную подачу за программный предел. Единственный способ запретить программный предел на оси — вывести его из исходного положения.
Кнопки первого ряда выбирают направление вращения шпинделя: Counterclockwise, Stopped, Clockwise. Counterclockwise будет отображаться только в том случае, если контакт spindle.0.reverse есть в файле HAL (это может быть net Trick-axis spindle.0.reverse). Кнопки следующего ряда увеличивают или уменьшают скорость вращения. Флажок в третьем ряду позволяет включить или отпустить тормоз шпинделя. В зависимости от конфигурации вашего компьютера могут отображаться не все элементы этой группы. Нажатие кнопки запуска шпинделя устанавливает скорость S на 1.
Две кнопки позволяют включать и выключать СОЖ Mist и Flood. В зависимости от конфигурации вашего компьютера могут отображаться не все элементы этой группы.
3.6. MDI
MDI позволяет вводить команды G-кода вручную. Когда станок не включен или когда запущена программа, элементы управления MDI недоступны.
-
History - тут отображаются команды MDI, которые были набраны ранее в этом сеансе.
-
MDI Command - здесь возможно ввести команду G-кода для выполнения. Выполните команду, нажав Enter или нажав Go.
-
Active G-codes - тут отображаются модальные коды, активные в интерпретаторе. Например, G54 указывает, что G54 offset применяется ко всем введенным координатам. В режиме Авто активные G-коды представляют собой коды после любого считывания интерпретатором.
3.7. Переопределение подачи
Перемещая этот ползунок, можно изменить запрограммированную скорость подачи. Например, если программа запрашивает F60, а ползунок установлен на 120%, то результирующая скорость подачи будет равна 72.
3.8. Spindle Speed Override
Перемещая этот ползунок, можно изменить запрограммированную скорость шпинделя. Например, если программа запрашивает 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, который можно просмотреть, выбрав Help > Quick Reference. Многие сочетания клавиш недоступны в режиме MDI.
4.1. Клавиши переопределения подачи
Note
|
Подробную информацию о испанской раскладке клавиатуры можно найти в переведенной документации. |
Клавиши переопределения подачи ведут себя по-другому в ручном режиме. Клавиши 12345678 выберут ось, если она запрограммирована. Если у вас 3 оси, то 0 выберет ось 0, 1 выберет ось 1, а 2 выберет ось 2. Остальные цифровые клавиши по-прежнему будут устанавливать коррекцию подачи. При запуске программы 1234567890 установит значение переопределение подачи 0–100%.
Наиболее часто используемые сочетания клавиш показаны в следующей таблице:
Нажатие клавиши | Действия | Mode |
---|---|---|
F1 |
Переключает аварийный останов |
Любой |
F2 |
Станок вкл/выкл |
Любой |
`, 1 .. 9, 0 |
Устанавливает переопределение подачи от 0% до 100% |
Варьируется |
X, ` |
Активирует первую ось |
Ручной |
Y, 1 |
Активирует вторую ось |
Ручной |
Z, 2 |
Активирует третью ось |
Ручной |
A, 3 |
Активирует четвертую ось |
Ручной |
I |
Устанавливает приращение медленной подачи |
Ручной |
C |
Непрерывная медленная подача |
Ручной |
Control-Home |
Выполнить последовательность приведения в исходное положение |
Ручной |
End |
Touch off: Устанавливает G5x смещение для активой оси |
Ручной |
Left, Right |
Медленная подача первой оси |
Ручной |
Up, Down |
Медленная подача второй оси |
Ручной |
Pg Up, Pg Dn |
Медленная подача третьей оси |
Ручной |
[, ] |
Медленная подача четвертой оси |
Ручной |
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
, которая позволяет вводить команды MDI в текстовом режиме в работающий сеанс LinuxCNC. Вы можете запустить эту программу, открыв терминал и набрав:
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. Manual Tool Change
LinuxCNC включает компонент HAL, работающий не в режиме реального времени, под названием hal_manualtoolchange, который показывает окно с подсказкой, сообщающее вам, какой инструмент ожидается при вводе команды M6. После нажатия кнопки ОК выполнение программы продолжится.
Компонент 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 modules
AXIS включает в себя несколько модулей Python, которые могут быть полезны другим. Для получения дополнительной информации об одном из этих модулей используйте pydoc <имя модуля> или прочитайте исходный код. Эти модули включают в себя:
-
emc обеспечивает доступ к каналам команд, состояний и ошибок LinuxCNC
-
gcode предоставляет доступ к интерпретатору rs274ngc
-
rs274 предоставляет дополнительные инструменты для работы с файлами rs274ngc
-
hal позволяет создавать компоненты HAL не реального времени, написанные на Python
-
_togl предоставляет виджет OpenGL, который можно использовать в приложениях Tkinter
Чтобы использовать эти модули в своих собственных скриптах, вы должны убедиться, что каталог, в котором они находятся, находится в пути к модулю Python. При запуске установленной версии LinuxCNC это должно происходить автоматически. При запуске «на месте» это можно сделать с помощью scripts/rip-environment.
10. Using AXIS in Lathe Mode
Включив строку LATHE = 1 в раздел [DISPLAY] INI-файла, AXIS выбирает режим токарного станка. Ось Y не отображается в показаниях координат, вид изменяется, чтобы показать ось Z, уходящую вправо, и ось X, уходящую к нижней части экрана, а некоторые элементы управления (например, для предустановленных видов) удалены. Показания координат для X заменяются диаметром и радиусом.
Нажатие клавиши V уменьшает масштаб, чтобы отобразить весь файл, если он загружен.
В режиме токарного станка отображается форма загруженного инструмента (если есть).
Чтобы изменить отображение на токарный станок с задним инструментом, вам необходимо иметь как LATHE = 1, так и BACK_TOOL_LATHE = 1 в разделе [DISPLAY]. Это инвертирует вид и поместит инструмент на обратную сторону оси 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>. Обычно <filename> представляет собой базовое имя конфигурации + _postgui + .hal, например. lathe_postgui.hal, но может быть любым допустимым именем файла. Эти команды выполняются после построения экрана, гарантируя доступность контактов HAL виджета. Вы можете иметь несколько строк POSTGUI_HALFILE=<filename> в INI. Каждая из них будет запускаться одна за другой в том порядке, в котором они появляются.
Дополнительную информацию о настройках файла INI, которые могут изменить способ работы AXIS, см. в разделе Display Section главы о настройке 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 (X-windows)
Цвета большинства элементов пользовательского интерфейса AXIS можно настроить с помощью базы данных X Resource Database. Образец файла axis_light_background изменяет цвета окна траектории на схему темные линии на белом фоне, а также служит ссылкой для настраиваемых элементов в области отображения. В образце файла 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 Resource переопределяли значения по умолчанию AXIS, включите следующую строку в свои X Resources:
*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"))
Следующее действие останавливает диалоговое окно "Do you really want to 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()
Графический интерфейс AXIS включает недействующую функцию (заполнитель) с именем user_live_update(), которая выполняется по завершении функции update() своего класса LivePlotter. Эту функцию можно реализовать в скрипте Python ~/.axisrc
или скрипте Python [DISPLAY]USER_COMMAND_FILE для выполнения пользовательских периодических действий. Подробности того, что может быть выполнено с помощью этой функции, зависят от реализации ГИП AXIS и могут быть изменены в ходе цикла разработки.
12.7. user_hal_pins()
Графический интерфейс AXIS включает в себя неиспользуемую функцию (заполнитель) с именем user_hal_pins().
Он выполняется сразу после вызова файла .axisrc и непосредственно перед инициализацией любых панелей/встроенных вкладок GladeVCP.
Эту функцию можно реализовать в скрипте Python ~/.axisrc
или скрипте Python [DISPLAY]USER_COMMAND_FILE для создания пользовательских выводов HAL, использующих axisui. префикс.
Используйте comp в качестве ссылки на экземпляр компонента HAL.
HAL comp.ready() вызывается сразу после возврата из этой функции.
12.8. Внешний редактор
Пункты меню File > Edit… and File > Edit Tool Table… становятся доступными после определения редактора в разделе INI [DISPLAY]. Полезные значения включают EDITOR=gedit и EDITOR=gnome-terminal -e vim. Дополнительную информацию см. в разделе «sub:ini:sec:display,Display» главы Конфигурация INI.
12.9. Virtual Control Panel
AXIS может отображать пользовательскую виртуальную панель управления либо в правом столбце, либо в нижней строке. Кроме того, одна или несколько панелей могут отображаться как встроенные вкладки. Вы можете запрограммировать кнопки, индикаторы, отображение данных и многое другое. Дополнительную информацию см. в главах PyVCP и GladeVCP.
12.10. Управление предварительным просмотром
В файл G-кода можно вставлять специальные комментарии, чтобы контролировать поведение предварительного просмотра AXIS. В случае, если вы хотите ограничить прорисовку предварительного просмотра, используйте эти специальные комментарии. Все, что находится между (AXIS,hide) и (AXIS,show), не будет отображаться во время предварительного просмотра. (AXIS,hide) и (AXIS,show) должны использоваться парами, при этом (AXIS,hide) идет первым. Все, что находится после (AXIS,stop), не будет отображаться во время предварительного просмотра.
Эти комментарии полезны для упрощения отображения предварительного просмотра (например, при отладке большого файла G-кода можно отключить предварительный просмотр для определенных частей, которые уже работают нормально).
-
(AXIS,hide) Останавливает предварительный просмотр (должен быть первым)
-
(AXIS,show) Возобновляет предварительный просмотр (должен следовать за скрытием)
-
(AXIS,stop) Останавливает предварительный просмотр отсюда до конца файла.
-
(AXIS,notify,the_text) Отображает the_text как информационный дисплей
Это отображение может быть полезно при предварительном просмотре AXIS, когда комментарии (debug,message) не отображаются.
13. Axisui
Чтобы улучшить взаимодействие AXIS с физическими маховичками, ось, выбранная в данный момент в графическом интерфейсе, также отображается на выводе с именем типа axisui.jog.x. Один из этих выводов одновременно имеет значение TRUE, а остальные — FALSE. Они предназначены для управления контактами разрешения перемещений медленной подачи.
AXIS имеет контакты HAL для указания того, какая кнопка с фиксацией выбрана на вкладке Manual Control.
Type Dir Name
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 для обозначения приращения медленной подачи, выбранного на вкладке Manual Tab.
Type Dir Name
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 для очистки всплывающих уведомлений об ошибках и информации.
Type Dir Name
bit IN axisui.notifications-clear
bit IN axisui.notifications-clear-error
bit IN axisui.notifications-clear-info
AXIS имеет входной контакт HAL, который отключает/включает функцию Pause/Resume.
Type Dir Name
bit IN axisui.resume-inhibit
14. Советы по настройке AXIS
AXIS — это довольно большая и сложная для проникновения база кода. Это помогает поддерживать стабильность кода, но затрудняет его настройку.
Здесь мы покажем фрагменты кода для изменения поведения или визуальных эффектов экрана. Имейте в виду, что внутренний код AXIS может время от времени меняться.
работа этих фрагментов не гарантируется: возможно, их потребуется скорректировать.
14.1. Функция обновления
В AXIS есть функция user_live_update, которая вызывается каждый раз, когда AXIS обновляется. Вы можете использовать это для обновления своих собственных функций.
# continuous update function def user_live_update(): print('i am printed every update...')
14.2. Отключить диалог закрытия
# disable the do you want to close dialog root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")
14.3. Изменить шрифт текста
# change the font font = 'sans 11' fname,fsize = font.split() root_window.tk.call('font','configure','TkDefaultFont','-family',fname,'-size',fsize) # redo the text in tabs so they resize for the new default font 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-code font is independent 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. Измените быструю скорость с помощью сочетаний клавиш
# use control + ` or 1-0 as keyboard shortcuts for rapidrate and keep ` or 1-0 for feedrate # also adds text to quick reference in help help1.insert(10,("Control+ `,1..9,0", _("Set Rapid Override from 0% to 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-файла
# read an INI file item machine = inifile.find('EMC','MACHINE') print('machine name =',machine)
14.6. Чтение статуса LinuxCNC
# LinuxCNC status can be read from s. print(s.actual_position) print(s.paused)
14.7. Изменить текущий вид
# set the view of the preview # valid views are 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 компонента и контактов
# create a component 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() # connect pins hal.new_sig('idle-led',hal.HAL_BIT) hal.connect('halui.program.is-idle','idle-led') hal.connect('my_component.idle-led','idle-led') # set a pin 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 pins from a GladeVCP panel will not be ready when user_live_update is run # to read them you need to put them in a try/except block # the following example assumes 5 HAL buttons in a GladeVCP panel used to switch # the tabs in the AXIS screen. # button names are 'manual-tab', 'mdi-tab', 'preview-tab', 'dro-tab', 'user0-tab' # the user_0 tab if it exists would be the first GladeVCP embedded tab # for LinuxCNC 2.8+ branch 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. Добавить кнопку GOTO Home
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) # make a button to home y axis root_window.tk.call('button','.pane.top.tabs.fmanual.homey','-text','Home Y','-command','goto_home Y','-height','2') # place the button root_window.tk.call('grid','.pane.top.tabs.fmanual.homey','-column','1','-row','7','-columnspan','2','-padx','4','-sticky','w') # any function called from Tcl needs to be added to TclCommands TclCommands.goto_home = goto_home commands = TclCommands(root_window)
14.12. Добавить кнопку в ручной фрейм
# make a new button and put it in the manual frame 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') # the above send the "mybutton_clicked" command when clicked # other options are to bind a press or release (or both) commands to the button # these can be in addition to or instead of the clicked command # if instead of then delete '-command','mybutton_clicked', from the first line # Button-1 = left mouse button, 2 = right or 3 = middle 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') # functions called from the buttons def mybutton_clicked(): print('mybutton was clicked') def mybutton_pressed(): print('mybutton was pressed') def mybutton_released(): print('mybutton was released') # any function called from Tcl needs to be added to TclCommands TclCommands.mybutton_clicked = mybutton_clicked TclCommands.mybutton_pressed = mybutton_pressed TclCommands.mybutton_released = mybutton_released commands = TclCommands(root_window)
14.13. Чтение внутренних переменных
# the following variables may be read from the vars instance 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. Скрыть виджеты
# hide a widget # use 'grid' or 'pack' depending on how it was originally placed root_window.tk.call('grid','forget','.pane.top.tabs.fmanual.jogf.zerohome.tooltouch')
14.15. Изменить ярлык
# change label of a widget root_window.tk.call('setup_widget_accel','.pane.top.tabs.fmanual.mist','Downdraft') # make sure it appears (only needed in this case if the mist button was hidden) root_window.tk.call('grid','.pane.top.tabs.fmanual.mist','-column','1','-row','5','-columnspan','2','-padx','4','-sticky','w')
14.16. Перенаправить существующую команду
# hijack an existing command # originally the mist button calls the mist function root_window.tk.call('.pane.top.tabs.fmanual.mist','configure','-command','hijacked_command') # The new function def hijacked_command(): print('hijacked mist command') # add the function to TclCommands TclCommands.hijacked_command = hijacked_command commands = TclCommands(root_window)
14.17. Изменить цвет УЦИ
# change dro screen root_window.tk.call('.pane.top.right.fnumbers.text','configure','-foreground','green','-background','black')
14.18. Изменение кнопок панели инструментов
# change the toolbar buttons 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, в следующем порядке: медленная подача, быстрое перемещение, подача, дуга, смена инструмента, измерительный щуп
# change plotter colors 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)