Смена инструмента

Редактировал(а) Edgar Allan Poe 2024/02/29 11:45

Общий алгоритм работы макроса смены инструмента

  1. В начале работы макроса функция GetToolSlot() возвращает номер ячейки предыдущего инструмента, который необходимо вернуть в ячейку.
  2. Для получения номера ячейки инструмента, на который производится замена, используется функция GetSelectedToolSlot().
  3. Изменение номера текущего инструмента производится непосредственно из макроса функцией SetToolSlot () после фактической замены. После того как предыдущий инструмент помещён в ячейку, необходимо вызвать функцию SetToolSlot(0). После того как взят новый инструмент, вызывается функция SetToolSlot(slot), где slot=GetSelectedToolSlot().
  4. Если выполнение макроса смены инструмента необходимо разбить на две части с остановкой между ними, используются функции GetStage и SetStage.
void SetStage(number stage, bool disable_prep_move)

Установка текущего этапа смены инструмента.

Параметры:

  • number stage – номер этапа смены инструмента;
  • bool disable_prep_move – логическое значение, определяющее, будет ли выполнено подготовительное перемещение при продолжении выполнения макроса после нажатия кнопки Старт. True – не выполнять подготовительное перемещение, false – выполнять. Как правило, если передаётся значение true, логика макроса на втором этапе смены инструмента должна обеспечить возврат в точку, откуда будет продолжено выполнение G-кода.
number GetStage()

Получение текущего этапа смены инструмента. Возвращает значение, которое ранее было установлено функцией SetStage. Если функция SetStage ранее не вызывалась, возвращается значение 0. При выполнении любой другой строки G-кода функция также начинает возвращать значение 0.

Возвращаемое значение:

  • текущий этап смены инструмента.
number GetToolSlot()

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

Возвращаемое значение:

  • номер ячейки текущего инструмента.
number GetSelectedToolSlot()

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

Возвращаемое значение:

  • номер ячейки инструмента, на который производится замена.
void SetToolSlot(number slot)

Изменение номера ячейки текущего инструмента. Производится в момент фактической замены инструмента. После того как предыдущий инструмент помещён в ячейку, необходимо вызвать функцию SetToolSlot(0). После того как взят новый инструмент, вызывается функция SetToolSlot(slot), где slot – номер ячейки выбранного инструмента, полученный при вызове GetSelectedToolSlot().

Параметры:

  • number slot – номер ячейки инструмента, на который произведена замена.
bool GetUseGeneralToolchangePosition()

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

Возвращаемое значение:

  • true – если выбрана опция использовать общую для всех инструментов позицию;
  • false – если позиция для каждого инструмента задана в таблице инструментов.
number GetGeneralToolchangePosition(number axisId)

Параметры:

  • number axisId – номер оси, целое число от 0 до 8.

В качестве этого параметра может передаваться одна из констант, определённых в списке Axis.

Возвращаемое значение:

  • машинная координата общей позиции смены инструмента по указанной оси.
number GetCurrentToolToolchangePosition(number axisId)

Параметры:

  • number axisId – номер оси, целое число от 0 до 8.

В качестве этого параметра может передаваться одна из констант, определённых в списке Axis.

Возвращаемое значение:

  • машинная координата позиции смены инструмента для текущего инструмента по указанной оси.
number GetSelectedToolToolchangePosition(number axisId)

Параметры:

  • number axisId – номер оси, целое число от 0 до 8.

В качестве этого параметра может передаваться одна из констант, определённых в списке Axis.

Возвращаемое значение:

  • машинная координата позиции смены инструмента для выбранного инструмента по указанной оси.
void SwapToolSlots(number slot)

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

Пример:

SwapToolSlots(GetSelectedToolSlot()) - чтобы поменять текущий инструмент с выбранным. При этом соответствующие записи в таблице инструментов поменяются местами.
Если в шпинделе нет инструмента (GetToolSlot() == 0), будет взят выбранный инструмент. Если инструмент возвращается на место, т.е. выполняется команда SwapToolSlots(0), инструмент будет помещён в свою ячейку. В последних двух случаях изменений в таблице инструментов не происходит.

Параметры:

  • number slot – номер ячейки заданного инструмента.
number GetToolNumber(number slot)

Возвращает номер инструмента соответствующего указанной ячейки.

Параметры:

  • number slot – номер ячейки заданного инструмента.

Возвращаемое значение:

  • номер инструмента соответствующего указанной ячейки.