AXIS — графический интерфейс для LinuxCNC

AXIS - графический интерфейс для LinuxCNC

AXIS — это графический интерфейс для LinuxCNC с предварительным просмотром в реальном времени и задним планом. Он написан на Python и использует Tk и OpenGL для отображения своего пользовательского интерфейса.

Если ваша конфигурация в настоящее время не настроена для использования AXIS, вы можете изменить ее, отредактировав файл .ini. В разделе [DISPLAY] измените строку DISPLAY на DISPLAY = axis .

Пример конфигурации sim / axis.ini уже настроен для использования AXIS в качестве интерфейса.

Типичная сессия

  1. Запустите LinuxCNC.
  2. Сбросьте АВАРИЙНЫЙ ОСТАНОВ (F1) и включите питание машины (F2).
  3. Дома все оси.
  4. Загрузите файл с g-кодом.
  5. Используйте предварительный просмотр, чтобы проверить правильность программы.
  6. Установите заготовку.
  7. Установите правильное смещение для каждой оси, перемещаясь и используя кнопку Touch Off по мере необходимости.
  8. Запускаем программу.
ПримечаниеПовторный запуск той же программы зависит от ваших настроек и требований. Возможно, вам потребуется загрузить больше материала и установить смещения или переместиться и установить смещение, а затем снова запустить программу. Если ваш материал закреплен, вам может потребоваться только снова запустить программу.

Дисплей AXIS

Окно AXIS содержит следующие элементы:

  • Область отображения, которая отображает одно из следующего:
    • предварительный просмотр загруженного файла (в данном случае axis.ngc ), а также текущего местоположения контролируемой точки станка с ЧПУ . Позже в этой области будет отображаться путь, по которому прошел станок с ЧПУ, который называется backplot.
    • большой дисплей, показывающий текущее положение и все смещения.
  • Строка меню и панель инструментов, которые позволяют выполнять различные действия.
  • Вкладка «Ручное управление» — позволяет перемещать станок, включать или выключать шпиндель, а также включать или выключать охлаждающую жидкость, если она включена в файл ini.
  • Вкладка MDI — где программы G-кода можно вводить вручную, по одной строке за раз. Она также показывает активные G-коды, которые показывают, какие модальные G-коды действуют.
  • Feed Override — позволяет масштабировать скорость запрограммированных движений. Максимальное значение по умолчанию составляет 120%, и его можно установить на другое значение в ini-файле. Дополнительную информацию см. В разделе « Отображение» файла INI.
  • Переопределение шпинделя — позволяет увеличивать или уменьшать скорость шпинделя.
  • Скорость толчкового режима — позволяет установить скорость толчкового режима в пределах, установленных в ini-файле. Дополнительную информацию см. В разделе « Отображение» файла INI.
  • Максимальная скорость — позволяет ограничить максимальную скорость всех запрограммированных движений (кроме синхронизированного движения шпинделя).
  • Область отображения текста, которая показывает загруженный G-код.
  • Строка состояния, которая показывает состояние машины. На этом снимке экрана станок включен, в него не вставлен инструмент, и отображаемое положение является относительным (с отображением всех смещений) и фактическим (с указанием положения обратной связи).

Пункты меню

Некоторые элементы меню могут быть неактивными в зависимости от того, как у вас настроен файл .ini. Для получения дополнительной информации о настройке см. Главу INI .

Файловое меню

  • Открыть… — открывает стандартное диалоговое окно для открытия файла кода AG для загрузки в AXIS. Если вы настроили LinuxCNC для использования программы фильтрации, вы также можете открыть ее. См. Раздел «ФИЛЬТР» конфигурации INI для получения дополнительной информации.
  • Последние файлы — отображает список недавно открытых файлов.
  • Изменить… — открыть текущий файл кода G для редактирования, если у вас есть редактор, настроенный в вашем ini-файле. См. Раздел «ДИСПЛЕЙ» для получения дополнительной информации о выборе редактора.
  • Перезагрузить — перезагрузить текущий файл g кода. Если вы редактировали его, вы должны перезагрузить его, чтобы изменения вступили в силу. Если вы остановили файл и хотите начать с начала, перезагрузите файл. Перезагрузка панели инструментов такая же, как и в меню.
  • Сохранить gcode как… — сохранить текущий файл под новым именем.
  • Свойства — сумма ходов ускоренного хода и подачи. Не учитывает ускорение и режим траектории, поэтому указанное время никогда не будет меньше фактического времени выполнения.
  • Редактировать таблицу инструментов… — если вы определили редактор, вы можете открыть таблицу инструментов и отредактировать ее.
  • Перезагрузить таблицу инструментов — после редактирования таблицы инструментов ее необходимо перезагрузить.
  • Редактор релейной логики — если вы загрузили классическую релейную диаграмму, вы можете редактировать ее отсюда. См. Главу Classicladder для получения дополнительной информации.
  • Выход — завершает текущий сеанс LinuxCNC.

Меню машины

  • Переключить аварийный останов F1 — изменить состояние аварийного останова.
  • Переключить питание машины F2 — изменить состояние питания машины, если аварийный останов не включен.
  • Запустить программу — запустить текущую загруженную программу с самого начала.
  • Запускать от выбранной строки — выберите строку, с которой хотите начать. Используйте с осторожностью, так как это переместит инструмент в ожидаемую позицию перед строкой, а затем он выполнит остальную часть кода.
ПредупреждениеНе используйте « Запуск из выбранной строки», если ваша программа кода g содержит подпрограммы.
  • Шаг — пошаговое выполнение программы.
  • Пауза — приостановить программу.
  • Возобновить — возобновить работу после паузы.
  • Стоп — остановить запущенную программу. Если после остановки выбран запуск, программа будет запускаться с начала.
  • Остановить на M1 — если M1 достигнут, и это проверено, выполнение программы остановится на строке M1. Чтобы продолжить, нажмите «Возобновить».
  • Пропускать строки с «/» — если строка начинается с / и это отмечено, строка будет пропущена.
  • Очистить историю MDI — очищает окно истории MDI.
  • Копировать из истории MDI — копирует историю MDI в буфер обмена.
  • Вставить в историю MDI — вставить из буфера обмена в окно истории MDI.
  • Калибровка — запускает Ассистент калибровки (emccalib.tcl). Калибровка считывает файл HAL и для каждого набора параметров , использующего переменную из файла ini, который находится в разделах [AXIS_L], [JOINT_N], [SPINDLE_S] или [TUNE], он создает запись, которую можно редактировать и тестировать.
  • Показать конфигурацию HAL — открывает окно конфигурации HAL, в котором можно отслеживать компоненты, выводы, параметры, сигналы, функции и потоки HAL.
  • HAL Meter — открывает окно, в котором вы можете контролировать один вывод HAL, сигнал или параметр.
  • HAL Scope — открывает виртуальный осциллограф, который позволяет отображать значения HAL в зависимости от времени.
  • Показать статус LinuxCNC — открывает окно, показывающее статус LinuxCNC.
  • Установить уровень отладки — открывает окно, в котором можно просмотреть уровни отладки и установить некоторые из них.
  • Homing — возврат в исходное положение по одной или всем осям.
  • Unhoming — выход из исходного положения по одной или всем осям.
  • Нулевая система координат — установите все смещения на ноль в выбранной системе координат.
  • Касание инструментом заготовки — При выполнении Touch Off введенное значение относится к системе координат текущей заготовки G5x ), измененной смещением оси ( G92 ). Когда Touch Off завершен, относительная координата для выбранной оси станет введенным значением. См. G10 L10 в главе о кодах G.
  • расстояние инструмента до приспособления — При выполнении Touch Off введенное значение относится к девятой ( G59.3 ) системе координат, смещение оси ( G92 ) игнорируется. Это полезно, когда в фиксированном месте на станке есть приспособление для отвода инструмента с девятой ( G59.3 ) системой координат, установленной таким образом, что острие инструмента нулевой длины находится в исходной точке приспособления, когда относительные координаты равны 0. См. G10 L11 в главе о кодах G.

Просмотр меню

  • Вид сверху — вид сверху (или вид Z) отображает код G, смотрящий вдоль оси Z от положительного к отрицательному. Этот вид лучше всего подходит для просмотра X и Y.
  • Повернутый вид сверху — Повернутый вид сверху (или повернутый вид Z) также отображает G-код, смотрящий вдоль оси Z от положительного к отрицательному. Но иногда удобно отображать оси X и Y, повернутые на 90 градусов, чтобы лучше соответствовать дисплею. Этот вид также лучше всего подходит для просмотра X и Y.
  • Вид сбоку — вид сбоку (или вид X) отображает код G, смотрящий вдоль оси X от положительного к отрицательному. Этот вид лучше всего подходит для просмотра Y и Z.
  • Вид спереди — вид спереди (или вид Y) отображает код G, смотрящий вдоль оси Y от отрицательного к положительному. Этот вид лучше всего подходит для просмотра X и Z.
  • Вид в перспективе — вид в перспективе (или вид P) отображает код G, смотрящий на деталь с настраиваемой точки обзора, по умолчанию X +, Y-, Z +. Положение регулируется с помощью мыши и переключателя перетаскивания / поворота. Этот вид представляет собой компромиссный вид, и хотя он хорошо справляется с попыткой показать от трех (до девяти!) Осей на двухмерном дисплее, часто будут некоторые особенности, которые трудно увидеть, требующие изменения точки обзора. Этот вид лучше всего подходит, когда вы хотите увидеть сразу все три (девять) осей.

Точка зрения

Меню выбора дисплея AXIS « Вид» относится к видам сверху , спереди и сбоку . Эти термины верны, если у станка с ЧПУ ось Z вертикальна, с положительной Z вверх. Это верно для вертикальных фрез, что, вероятно, является наиболее популярным применением, а также почти для всех электроэрозионных станков и даже для вертикальных токарных станков с револьверной головкой, где деталь вращается под инструментом.

Однако термины Верхний , Передний и Боковой могут сбивать с толку на других станках с ЧПУ, таких как стандартный токарный станок, где ось Z горизонтальна, или горизонтальный фрезерный станок, опять же, где ось Z горизонтальна, или даже перевернутая вертикальная револьверная головка. токарный станок, на котором деталь вращается над инструментом, а положительное направление оси Z направлено вниз!

Просто помните, что положительная ось Z (почти) всегда находится далеко от детали. Так что ознакомьтесь с конструкцией своей машины и интерпретируйте дисплей по мере необходимости.

  • Display Inches (Отображение в дюймах) — установите масштаб отображения AXIS в дюймах.
  • Display MM — Установите масштаб отображения AXIS в миллиметрах.
  • Показать программу — при желании можно полностью отключить предварительный просмотр загруженной программы с кодом G.
  • Показать ускорение программы — предварительный просмотр загруженной программы кода G всегда будет показывать ходы подачи (G1, G2, G3) белым цветом. А вот отображение быстрых ходов (G0) голубым цветом при желании можно отключить.
  • Программа альфа-смешения — этот параметр упрощает просмотр сложных программ при предварительном просмотре, но может замедлить его отображение.
  • Показать график в реальном времени — при желании можно отключить выделение путей скорости подачи (G1, G2, G3) при перемещении инструмента.
  • Показать инструмент — при желании отображение конуса / цилиндра инструмента можно отключить.
  • Show Extents — Отображение размеров (максимального хода в каждом направлении оси) загруженной программы G-кода при желании можно отключить.
  • Показать смещения — Выбранное исходное положение смещения приспособления (G54-G59.3) может быть показано как набор из трех ортогональных линий, по одной красной, синей и зеленой. При желании можно отключить отображение исходной точки смещения.
  • Показать пределы станка — максимальные пределы перемещения станка для каждой оси, заданные в файле ini, показаны в виде прямоугольной рамки, нарисованной красными пунктирными линиями. Это полезно при загрузке новой программы кода G или при проверке того, какое смещение приспособления потребуется, чтобы привести программу кода G в пределы рабочего хода вашего станка. Если он не нужен, его можно отключить.
  • Показать скорость — отображение скорости иногда полезно, чтобы увидеть, насколько близко ваша машина приближается к расчетной скорости. При желании его можно отключить.
  • Show Distance to Go — Очень удобный элемент, который нужно знать при первом запуске неизвестной программы с кодом G. В сочетании с элементами управления быстрой коррекцией и коррекцией скорости подачи можно избежать нежелательного повреждения инструмента и станка. После того, как программа G-кода отлажена и работает без сбоев, при желании можно отключить отображение Distance to Go.
  • Очистить график в реальном времени — когда инструмент перемещается по дисплею Axis, путь кода G выделяется. Чтобы повторить программу или лучше рассмотреть интересующую область, можно очистить ранее выделенные пути.
  • Показать командную позицию — это позиция, на которую LinuxCNC попытается перейти. После остановки движения LinuxCNC будет пытаться удерживать эту позицию.
  • Показать фактическое положение — Фактическое положение — это измеренное положение, считанное с энкодеров системы или моделированное пошаговыми генераторами. Это может немного отличаться от заданного положения по многим причинам, включая настройку ПИД-регулятора, физические ограничения.
  • Показать положение машины — это положение в координатах без смещения, установленное функцией Homing.
  • Показать относительное положение — это положение станка, измененное смещениями G5x , G92 и G43.

Меню помощи

  • Об Axis — Все мы знаем, что это такое.
  • Краткий справочник — показывает сочетания клавиш.

Кнопки панели инструментов

Слева направо на дисплее Axis кнопки панели инструментов (сочетания клавиш показаны [в скобках]):

  • Переключить аварийный останов Аварийный останов [F1] (также называемый E-Stop)
  • Переключить мощность машины Включение машины [F2]
  • Открыть файл G-кода Открыть файл G-кода [O]
  • Обновить текущий файл Обновить текущий файл [Ctrl-R]
  • Начать выполнение текущего файла Начать выполнение текущего файла [R]
  • Выполнить следующую строку Выполнить следующую строку [T]
  • Приостановить выполнение - возобновить выполнение Приостановить выполнение [P] Продолжить выполнение [S]
  • Остановить выполнение программы Остановить выполнение программы [ESC]
  • Переключить Пропустить строки Пропуск строк с помощью «/» [Alt-M- /]
  • Переключить необязательную паузу Переключить необязательную паузу [Alt-M-1]
  • Приблизить Приблизить
  • Уменьшить Уменьшить
  • Вид сверху Вид сверху
  • Повернутый вид сверху Повернутый вид сверху
  • Вид сбоку Вид сбоку
  • Передний план Передний план
  • Перспективный вид Перспективный вид
  • Переключение между режимами перетаскивания и поворота Переключение между режимами перетаскивания и поворота [D]
  • Очистить график в реальном времени Очистить график в реальном времени [Ctrl-K]

Область графического отображения

Координатный дисплей

В верхнем левом углу дисплея программы находится дисплей положения координат для каждой оси. Справа от числа отображается символ начала координат, если ось перемещена в исходное положение.

Символ предела отображается справа от номера позиции координаты, если ось находится на одном из своих концевых выключателей.

Чтобы правильно интерпретировать номера координатных позиций, обратитесь к индикатору Положение: в строке состояния. Если позиция — Фактическая положение, то отображаемое число находится в системе координат станка. Если это относительное фактическое значение , то отображаемое число находится в системе координат смещения. Когда отображаемые координаты являются относительными и установлено смещение, на дисплее будет отображаться голубой машинный маркер начала координат . 

голубое машинное происхождение

Если позиция Commanded, то точная координата дается в команде G кода. Если это Фактическое значение , то это положение, в которое машина фактически переместилась. Эти значения могут отличаться от заданного положения из-за ошибки рассогласования, зоны нечувствительности, разрешения кодировщика или размера шага. Например, если вы задаете движение к X 0,0033 на вашем станке, но один шаг вашего шагового двигателя или один отсчет шифратора 0,00125, то Заданная позиция может быть 0,0033, но Фактическое положение будет 0.0025 (2 шага) или 0,00375 (3 шага).

Предварительный просмотр

Когда файл загружен, его предварительный просмотр отображается в области отображения. Быстрые перемещения (например, выполняемые командой G0 ) показаны голубыми линиями. Перемещения со скоростью подачи (например, производимые командой G1 ) показаны сплошными белыми линиями. Задержки (например, созданные командой G4 ) отображаются в виде маленьких розовых меток X.

Перемещения G0 (ускоренные) перед перемещением подачи не отображаются на предварительном просмотре. Быстрые ходы после T «n» (смены инструмента) не будут отображаться в предварительном просмотре до первого хода подачи. Чтобы отключить любую из этих функций, запрограммируйте G1 без каких-либо перемещений до перемещений G0.

Программы

На концах указаны наименьшее и наибольшее значения координат. Посередине показана разница между координатами.

Когда некоторые координаты превышают мягкие пределы в файле .ini, соответствующий размер отображается другим цветом и заключен в рамку. На рисунке ниже максимальный мягкий предел превышен по оси X, как указано в рамке, окружающей значение координаты. Минимальный ход программы по оси X составляет -1,95, максимальный ход по оси X равен 1,88, а программе требуется 3,83 дюйма по оси X. Чтобы переместить программу так, чтобы в этом случае она находилась в пределах хода машины, двигайтесь влево и снова коснитесь X.

Program Extents AXIS
Program Extents
Инструментальный конус

Когда ни один инструмент не загружен, положение кончика инструмента указывается конусом инструментаКонус инструмента не содержат указаний о форме, длине или радиусе инструмента.

Когда инструмент загружается (например, с помощью команды MDI T1 M6 ), конус превращается в цилиндр, который показывает диаметр инструмента, указанный в файле таблицы инструментов.

Backplot

Когда машина движется, она оставляет след, называемый Backplot. Цвет линии указывает на тип движения: желтый для толчков, бледно-зеленый для быстрых движений, красный для прямых движений со скоростью подачи и пурпурный для круговых движений со скоростью подачи.

Сетка

Axis может дополнительно отображать сетку в ортогональных видах. Включите или отключите сетку с помощью меню « Сетка» в разделе « Просмотр» . Если этот параметр включен, сетка отображается сверху, а виды сверху повернуты; когда система координат не повернута, сетка также отображается на виде спереди и сбоку. Предустановки в меню Grid контролируются элементом inifile [DISPLAY]GRIDS; если не указано, используется значение по умолчанию 10mm 20mm 50mm 100mm 1in 2in 5in 10in.

Указание очень маленькой сетки может снизить производительность.

Взаимодействия

Если щелкнуть левой кнопкой мыши на части предварительного просмотра, линия будет выделена как на графическом, так и на текстовом дисплеях. Если щелкнуть левой кнопкой мыши пустую область, выделение будет удалено.

При перетаскивании с нажатой левой кнопкой мыши график предварительного просмотра будет сдвинут (панорамирован).

При перетаскивании со сдвигом и нажатой левой кнопкой мыши или при перетаскивании с нажатым колесиком мыши график предварительного просмотра будет повернут. Когда линия выделена, центр вращения — это центр линии. В противном случае центр вращения — это центр всей программы.

Вращая колесико мыши, или перетаскивая с нажатой правой кнопкой мыши, или перетаскивая с нажатой левой кнопкой мыши, график предварительного просмотра будет увеличиваться или уменьшаться.

Щелкнув один из значков предустановленных представлений или нажав V , можно выбрать несколько предустановленных представлений.

Область отображения текста

Если щелкнуть левой кнопкой мыши строку программы, она будет выделена как на графическом, так и на текстовом дисплеях.

Когда программа работает, текущая выполняемая строка выделяется красным цветом. Если ни одна строка не была выбрана пользователем, текстовый дисплей будет автоматически прокручиваться, чтобы показать текущую строку.

Текущие и выбранные строки AXIS
Текущие и выбранные строки

Ручное управление

Пока станок включен, но не выполняет программу, элементы на вкладке « Ручное управление » можно использовать для перемещения станка или управления его шпинделем и охлаждающей жидкостью.

Когда машина не включена или когда программа запущена, ручное управление недоступно.

Многие из описанных ниже элементов могут использоваться не на всех машинах. Когда AXIS обнаруживает, что определенный вывод не подключен к HAL, соответствующий элемент на вкладке «Ручное управление» удаляется. Например, если шпиндель spindle.0.brake не подключен, то кнопка остановки не появится на экране. Если установлена ​​переменная среды AXIS_NO_AUTOCONFIGURE, это поведение отключено, и появятся все элементы.

Группа Axis

Axis позволяет вручную перемещать станок. Сначала выберите ось, которую нужно переместить, щелкнув по ней. Затем нажмите и удерживайте кнопку + или — в зависимости от желаемого направления движения. Первые четыре оси также можно перемещать с помощью клавиш со стрелками (X и Y), клавиш PAGE UP и PAGE DOWN (Z) и клавиш [and] (A).

Если выбран параметр « Непрерывный» , движение будет продолжаться, пока нажата кнопка или клавиша. Если выбрано другое значение, машина будет перемещаться точно на указанное расстояние каждый раз при нажатии кнопки или клавиши. По умолчанию доступны значения 0,1000, 0,0100, 0,0010, 0,0001.

Параметр inifile [KINS] JOINTS определяет общее количество соединений для системы. Соединение может быть сконфигурировано с переключателем исходного положения или для немедленного наведения в исходное положение. Соединения могут определять исходную последовательность, которая организует порядок для групп соединений в исходное положение.

Если все соединения настроены для наведения в исходное положение и имеют допустимые исходные последовательности, кнопка возврата в исходное положение покажет Home All . Нажатие кнопки Home All (или клавиши Ctrl-HOME) инициирует возврат в исходное положение для всех осей с использованием их заданных исходных последовательностей. Нажатие кнопки HOME вернет соединение в исходное положение, соответствующее текущей выбранной оси, даже если последовательность возврата в исходное положение не определена.

Если не все оси имеют допустимые исходные последовательности, кнопка возврата в исходное положение покажет исходную ось и установит в исходное положение соединение только для текущей выбранной оси. Каждую ось необходимо выбирать и размещать отдельно.

Выпадающее меню Станок / Направление предоставляет альтернативный метод для осей исходного положения. Выпадающее меню Machine / Unhoming позволяет убрать оси из домашнего положения.

Самонаведение (неидентификационная кинематика)

Операция аналогична работе Identity Kinematics, но перед возвращением в исходное положение кнопки выбора выбирают соединения по номеру. Кнопка возврата в исходное положение покажет Home All, если все соединения настроены для возврата в исходное положение и имеют допустимые последовательности исходного положения. В противном случае на кнопке возврата в исходное положение будет отображаться Home Joint .

Тouch Off

При нажатии Touch Off или END смещение G5x для текущей оси изменяется так, что текущее значение оси будет заданным значением. Выражения можно вводить, используя правила для программ rs274ngc, за исключением того, что нельзя ссылаться на переменные. Результирующее значение отображается в виде числа.

Touch Off AXIS
Touch Off
Инструмент Touch Off

При нажатии кнопки Tool Touch Off длина инструмента и смещения текущего загруженного инструмента будут изменены таким образом, чтобы текущее положение вершины инструмента соответствовало введенной координате.

Инструмент Touch Off AXIS
Инструмент Touch Off
Пределы переопределения

При нажатии Override Limits машине будет временно разрешено отключиться от физического концевого выключателя. Этот флажок доступен только при срабатывании концевого выключателя. Переопределение сбрасывается после одной толчковой подачи. Если ось сконфигурирована с отдельными положительными и отрицательными концевыми выключателями, LinuxCNC разрешит толчковый режим только в правильном направлении. Пределы переопределения не позволяют выходить за мягкий предел. Единственный способ отключить мягкое ограничение на оси — убрать его из домашнего положения.

Группа шпинделя

Кнопки в первом ряду выбирают направление вращения шпинделя: против часовой стрелки, остановку, по часовой стрелке. Против часовой стрелки будет отображаться только в том случае, если шпиндель  находится в файле HAL. Кнопки в следующем ряду увеличивают или уменьшают скорость вращения. Флажок в третьем ряду позволяет включать или отключать тормоз шпинделя. В зависимости от конфигурации вашего устройства могут отображаться не все элементы в этой группе. Нажатие кнопки запуска шпинделя устанавливает скорость S равной 1.

Группа охлаждающей жидкости

Две кнопки позволяют включать и выключать охлаждающие жидкости Mist и Flood . В зависимости от конфигурации вашего устройства могут отображаться не все элементы в этой группе.

MDI

MDI позволяет вводить команды G-кода вручную. Когда аппарат не включен или когда программа запущена, элементы управления MDI недоступны.

Вкладка MDI AXIS
Вкладка MDI
  • История — показывает команды MDI, которые были введены ранее в этом сеансе.
  • Команда MDI — позволяет ввести команду g-кода для выполнения. Выполните команду, нажав Enter или нажав Go .
  • Активные G-коды — показывает модальные коды , которые активны в интерпретаторе. Например, G54 указывает, что смещение G54 применяется ко всем введенным координатам. В автоматическом режиме активные G-коды представляют коды после любого упреждающего чтения интерпретатором.

Feed Override

Перемещая этот ползунок, можно изменить запрограммированную скорость подачи. Например, если программа запрашивает F60 и ползунок установлен на 120%, то итоговая скорость подачи будет 72.

Блокировка скорости шпинделя

Перемещая этот ползунок, можно изменить запрограммированную скорость шпинделя. Например, если программа запрашивает S8000 и ползунок установлен на 80%, то результирующая скорость шпинделя будет 6400. Этот элемент появляется только тогда, когда подключен шпиндель HAL pin spindle.0.speed-out .

Скорость подачи

Перемещая этот ползунок, можно изменять скорость подачи. Например, если ползунок установлен на 1 дюйм / мин, то толчок 0,01 дюйма завершится примерно за 0,6 секунды или 1/100 минуты. Рядом с левой стороной (медленные пробежки) значения расположены близко друг к другу, а около правой стороны (быстрые пробежки) они разнесены намного дальше друг от друга, что позволяет использовать широкий диапазон скоростей пробежки с точным контролем, когда это наиболее важно.

На станках с поворотной осью отображается второй ползунок скорости толчкового режима. Этот ползунок устанавливает скорость толчкового режима для осей вращения (A, B и C).

Максимальная скорость

Перемещая этот ползунок, можно установить максимальную скорость. Это ограничивает максимальную скорость для всех запрограммированных перемещений, кроме перемещений, синхронизированных со шпинделем.

Управление с клавиатуры

Практически все действия в AXIS можно выполнять с помощью клавиатуры. Полный список сочетаний клавиш можно найти в Кратком справочнике AXIS, который можно просмотреть, выбрав «Справка»> «Краткий справочник». Многие ярлыки недоступны в режиме MDI.

Клавиши отмены подачи

Клавиши коррекции подачи работают по-другому в ручном режиме. Клавиши 12345678 выберут ось, если она запрограммирована. Если у вас 3 оси, то оси будет 0, 1 и 2. Остальные цифровые клавиши по-прежнему будут устанавливать коррекцию подачи. При выполнении программы 1234567890 устанавливает коррекцию подачи на 0% — 100%.

Наиболее часто используемые сочетания клавиш показаны в следующей таблице.

KeystrokeAction TakenMode
F1Переключить аварийный остановAny
F2Включение / выключение машиныAny
`, 1 .. 9, 0Установите коррекцию подачи от 0% до 100%Varies
X, `Активировать первую осьManual
Y, 1Активировать вторую осьManual
Z, 2Активировать третью осьManual
A, 3Активировать четвертую осьManual
IВыберите шагManual
CНепрерывное перемещениеManual
Control-HomeВыполнить последовательность наведенияManual
EndTouch off: установить смещение G5x для активной оси.Manual
Left, RightПеремещение первой осиManual
Up, DownПеремещение второй оси Manual
Pg Up, Pg DnПеремещение третей оси Manual
[, ]Перемещение четвертой оси Manual
OОткрыть файлManual
Ctrl -RПерезагрузить файлManual
RЗапустить файлManual
PПриостановить выполнениеAuto
SВозобновить выполнениеAuto
ESCОстановить выполнениеAuto
Ctrl-KОчистить backplotAuto/Manual
VЦикл между предустановленными представлениямиAuto/Manual
Shift-Left,RightБыстрое перемещение по оси XManual
Shift-Up,DownБыстрое перемещение по оси Y Manual
Shift-PgUp, PgDnБыстрое перемещение по оси ZManual
@Переключатель Actual/CommandedAny
#Переключатель Relative/MachineAny
Наиболее распространенные сочетания клавиш

Показать статус LinuxCNC (linuxcnctop)

AXIS включает программу под названием linuxcnctop, которая показывает некоторые детали состояния LinuxCNC. Вы можете запустить эту программу, вызвав Machine> Show LinuxCNC Status.

AXIS Окно состояния LinuxCNC
Окно состояния LinuxCNC

Название каждого элемента отображается в левом столбце. Текущее значение отображается в правом столбце. Если значение было недавно изменено, оно отображается на красном фоне.

Интерфейс 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)

Ось-выносная

AXIS включает программу под названием Axis-remote, которая может отправлять определенные команды работающей AXIS. Доступные команды отображаются при запуске axis-remote —help и включают в себя проверку того, работает ли AXIS ( —ping ), загрузку файла по имени, перезагрузку текущего загруженного файла ( —reload ) и выполнение выхода из AXIS ( — выйти ).

Ручная смена инструмента.

LinuxCNC включает в себя HAL-компонент пользовательского пространства, называемый hal_manualtoolchange, который показывает подсказку в окне, сообщающую вам, какой инструмент ожидается при вводе команды M6. После нажатия кнопки ОК выполнение программы продолжится.

Компонент hal_manualtoolchange включает в себя контакт hal для кнопки, которую можно подключить к физической кнопке, чтобы завершить смену инструмента и удалить приглашение окна (hal_manualtoolchange.change_button).

Файл конфигурации HAL lib / hallib / axis_manualtoolchange.hal показывает команды HAL, необходимые для использования этого компонента.

hal_manualtoolchange можно использовать, даже если AXIS не используется в качестве графического интерфейса пользователя. Этот компонент наиболее полезен, если у вас есть предварительно настраиваемые инструменты и вы используете таблицу инструментов.

ПримечаниеПороги не будут отображаться в предварительном просмотре после выдачи T «n» до следующего движения подачи после M6. Это может сбивать с толку большинство пользователей. Чтобы отключить эту функцию для текущей смены инструмента, запрограммируйте G1 без движения после T «n».
Окно смены инструмента вручную AXIS
Окно смены инструмента вручную

Модули Python

AXIS включает несколько модулей Python, которые могут быть полезны другим. Для получения дополнительной информации об одном из этих модулей используйте pydoc «имя модуля» или прочтите исходный код. Эти модули включают:

  • emc обеспечивает доступ к каналам команд, статуса и ошибок LinuxCNC.
  • gcode предоставляет доступ к интерпретатору rs274ngc
  • rs274 предоставляет дополнительные инструменты для работы с файлами rs274ngc
  • hal позволяет создавать компоненты HAL пользовательского пространства, написанные на Python
  • _togl предоставляет виджет OpenGL, который можно использовать в приложениях Tkinter.
  • minigl обеспечивает доступ к подмножеству OpenGL, используемому AXIS

Чтобы использовать эти модули в ваших собственных сценариях, вы должны убедиться, что каталог, в котором они находятся, находится на пути модуля Python. При запуске установленной версии LinuxCNC это должно происходить автоматически. При запуске на месте это можно сделать с помощью scripts / rip-environment .

Использование AXIS в токарном режиме

Включив строку LATHE = 1 в раздел [DISPLAY] ini-файла, AXIS выбирает токарный режим. Y ось не показана на координатной отсчеты, вид изменяется , чтобы показать Z оси , проходящей справа и Х оси , проходящей по направлению к нижней части экрана, и несколько элементов управления (например, те , для заданных просмотров) удаляются. Показания координат для X заменяются диаметром и радиусом.

Использование AXIS в токарном режиме
Использование AXIS в токарном режиме

Нажатие V уменьшает масштаб, чтобы показать весь файл, если он загружен.

В режиме токарного станка отображается форма загруженного инструмента (если есть).

форма загруженного инструмента AXIS

Чтобы изменить отображение на обратный токарный станок, вам необходимо, чтобы LATHE = 1 и BACK_TOOL_LATHE = 1 в секции [DISPLAY]. Это перевернет вид и поместит инструмент на заднюю сторону оси Z.

AXIS

Использование AXIS в Foam Cutting mode

Включив стр

Включив строку FOAM = 1 в раздел [DISPLAY] ini файла, AXIS выбирает режим Foam Cutting. В предварительном просмотре программы движения XY отображаются в одной плоскости, а движения UV — в другой. На живом графике линии проводятся между соответствующими точками на плоскости XY и плоскости UV. Специальные комментарии (XY_Z_POS) и (UV_Z_POS) устанавливают координаты Z этих плоскостей, которые по умолчанию равны 0 и 1,5 единиц станка.

Foam Cutting mode AXIS
Foam Cutting mode

Расширенная конфигурация

Когда AXIS запускается, он создает контакты HAL для графического интерфейса пользователя, затем выполняет файл HAL с именем [HAL] POSTGUI_HALFILE в ini-файле. Можно использовать только один файл графического интерфейса поста. Поместите все команды HAL, которые подключаются к контактам HAL графического интерфейса пользователя, в файл HAL post gui.

Для получения дополнительной информации о настройках файла ini, которые могут изменить работу AXIS, см. Раздел «Отображение» главы «Конфигурация INI».

Программные фильтры

В AXIS есть возможность отправлять загруженные файлы через программу фильтрации . Этот фильтр может выполнять любую желаемую задачу: что- то столь же простое, как убедиться, что файл заканчивается на M2 , или что-то столь же сложное, как создание G-кода из изображения.

Раздел [FILTER] ini-файла управляет работой фильтров. Сначала для каждого типа файла напишите  строку PROGRAM_EXTENSION. Затем укажите программу, которую нужно выполнить для каждого типа файла. Этой программе дается имя входного файла в качестве первого аргумента, и она должна записывать код rs274ngc в стандартный вывод. Этот вывод будет отображаться в текстовой области. Следующие строки добавляют поддержку преобразователя изображения в код 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-код для сверления серии отверстий по окружности круга.

скрипт g-кода для сверления отверстий по окружности AXIS
Скрипт g-кода для сверления отверстий по окружности

Если установлена ​​переменная окружения AXIS_PROGRESS_BAR, то строки, записываемые в stderr формы

FILTER_PROGRESS=%d

Установит индикатор выполнения AXIS на заданный процент. Эта функция должна использоваться любым фильтром, который работает долгое время.

База данных X Resource

Цвета большинства элементов пользовательского интерфейса AXIS можно настроить с помощью базы данных X Resource. Образец файла axis_light_background изменяет цвета окна фоновой диаграммы на темные линии на схеме белого фона , а также служит ссылкой для настраиваемых элементов в области отображения. Пример файла axis_big_dro изменяет показание позиции на шрифт большего размера. Чтобы использовать эти файлы:

xrdb -merge /usr/share/doc/emc2/axis_light_background

xrdb -merge /usr/share/doc/emc2/axis_big_dro

Поскольку современные среды рабочего стола автоматически устанавливают некоторые настройки в базе данных X Resource, которые отрицательно влияют на AXIS, по умолчанию эти настройки игнорируются. Чтобы элементы X Resource Database переопределяли значения AXIS по умолчанию, включите следующую строку в ваши X-ресурсы:

*Axis*optionLevel: widgetDefault

то приводит к тому, что встроенные параметры создаются на уровне параметров widgetDefault , так что ресурсы X (которые являются уровнем userDefault ) могут их переопределить.

~ / .axisrc

Если он существует, содержимое ~/.axisrc выполняется как исходный код Python непосредственно перед отображением графического интерфейса пользователя AXIS. Детали того, что может быть написано в, ~/.axisrcмогут быть изменены в ходе цикла разработки.

Следующее добавляет Control-Q в качестве сочетания клавиш для выхода.

root_window.bind("<Control-q>", "destroy .")
help2.append(("Control-Q", "Quit"))

Следующее останавливает диалог «Вы действительно хотите выйти?».

root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")

USER_COMMAND_FILE

Файл python, зависящий от конфигурации, может быть указан с настройкой файла ini [DISLAY] USER_COMMAND_FILE = filename.py . Как и ~/.axisrc, этот файл создается непосредственно перед отображением графического интерфейса пользователя AXIS. Этот файл относится к конфигурации ini-файла, а не к домашнему каталогу пользователя. Если указан этот файл, существующий ~/.axisrc файл игнорируется.

user_live_update ()

Графический интерфейс оси включает в себя функцию no-op (заполнитель) с именем user_live_update (), которая выполняется по завершении функции update () ее класса LivePlotter. Эта функция может быть реализована в ~/.axisrc скрипте Python или скрипте Python [DISPLAY] USER_COMMAND_FILE для выполнения настраиваемых периодических действий. Детали того, что может быть выполнено с помощью этой функции, зависят от реализации графического интерфейса оси и могут быть изменены в ходе цикла разработки.

user_hal_pins ()

Графический интерфейс оси включает в себя функцию no-op (заполнитель) с именем user_hal_pins () .
Он выполняется сразу после вызова файла .axisrc и непосредственно перед инициализацией панелей / встроенных вкладок gladevcp.
Эта функция может быть реализована в ~/.axisrc скрипте Python или скрипте Python [DISPLAY] USER_COMMAND_FILE для создания пользовательских выводов HAL, использующих axisui. префикс.
Используйте comp как ссылку на экземпляр компонента HAL.
HAL comp.ready () вызывается сразу после возврата из этой функции.

Внешний редактор

Параметры меню File> Edit… и File> Edit Tool Table… становятся доступными после определения редактора в ini-разделе [DISPLAY]. Полезные значения включают EDITOR = gedit и EDITOR = gnome-terminal -e vim. Для получения дополнительной информации см. Раздел «Дисплей» в главе «Конфигурация INI».

Виртуальная панель управления

AXIS может отображать настраиваемую виртуальную панель управления на правой панели. Вы можете программировать кнопки, индикаторы, дисплеи данных и многое другое. Для получения дополнительной информации см. Главы о PyVCP и GladeVCP .

Предварительный просмотр

В файл 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, когда комментарии (отладка, сообщение) не отображаются.

Штифты Axisui

Чтобы улучшить взаимодействие AXIS с физическими поворотными колесами, текущая выбранная в графическом интерфейсе ось также отображается с именем, например, axisui.jog.x . Один из этих выводов одновременно является ИСТИННЫМ , а остальные — ЛОЖНЫМИ . Они предназначены для управления контактами включения толчкового режима движения.

Штифты Axisui

Axis имеет контакты Hal, чтобы указать, какой переключатель jog выбран на вкладке «Ручное управление».

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

Ось имеет контакт Hal, чтобы указать шаг толчкового режима, выбранный на вкладке «Ручное управление».

Type  Dir    Name
float OUT               axisui.jog.increment

Axis имеет выходной контакт Hal, который указывает, когда произошло прерывание. Axisui.abort штифт будет TRUE , и вернуться к FALSE после 0.3ms.

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, который отключает / включает функцию паузы / возобновления.

Type  Dir    Name
bit   IN     axisui.resume-inhibit

Подсказки по настройке оси

Axis — это довольно большая и трудная для понимания база кода, это полезно для сохранения стабильности кода, но затрудняет настройку.
Здесь мы покажем фрагменты кода, чтобы изменить поведение или визуальные эффекты экрана. Имейте в виду, что внутренний код AXIS может время от времени изменяться.
Работа этих фрагментов не гарантируется — они могут нуждаться в корректировке.

Функция обновления

В Axis есть функция с именем user_live_update, которая вызывается каждый раз, когда Axis обновляет себя. Вы можете использовать это для обновления ваших собственных функций.

# continuous update function
def user_live_update():
    print 'i am printed every update...'

Отключить диалог закрытия

# disable the do you want to close dialog
root_window.tk.call("wm","protocol",".","WM_DELETE_WINDOW","destroy .")

Изменить шрифт текста

# 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 ')


# gcode 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')

Измените быструю скорость с помощью сочетаний клавиш

# 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))

Прочтите файл INI

# read an ini file item
machine = inifile.find('EMC','MACHINE')
print 'machine name =',machine

Прочитать статус linuxcnc

# linuxcnc status can be read from s.
print s.actual_position
print s.paused

Изменить текущий вид

# 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()

Создание новых выводов AXISUI HAL

def user_hal_pins():
    comp.newpin('my-new-in-pin', hal.HAL_BIT, hal.HAL_IN)
    comp.ready()

Создание нового компонента и выводов 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

Переключение вкладок с помощью контактов 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

Добавить кнопку 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)

Добавить кнопку в ручную рамку

# 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)

Чтение внутренних переменных

# 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

Скрыть виджеты

# 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')

Изменить ярлык

# 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')

Перенаправить существующую команду

# 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)

Изменить экран управления

# change dro screen

root_window.tk.call('.pane.top.right.fnumbers.text','configure','-foreground','green','-background','black')

Изменить кнопки панели инструментов

# 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)

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован.