Исходный код вики Смена инструмента
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | ==== **Общий алгоритм работы макроса смены инструмента** ==== | ||
| 2 | |||
| 3 | 1. В начале работы макроса функция **[[GetToolSlot()>>path:#id-Сменаинструмента-numberGetToolSlot()||shape="rect"]]** возвращает номер ячейки предыдущего инструмента, который необходимо вернуть в ячейку. | ||
| 4 | 1. Для получения номера ячейки инструмента, на который производится замена, используется функция **[[GetSelectedToolSlot()>>path:#id-Сменаинструмента-numberGetSelectedToolSlot()||shape="rect"]]**. | ||
| 5 | 1. Изменение номера текущего инструмента производится непосредственно из макроса функцией **[[SetToolSlot ()>>path:#id-Сменаинструмента-voidSetToolSlot(numberslot)||shape="rect"]]** после фактической замены. После того, как предыдущий инструмент помещён в ячейку, необходимо вызвать функцию **[[SetToolSlot(0)>>path:#id-Сменаинструмента-voidSetToolSlot(numberslot)||shape="rect"]]**. После того, как взят новый инструмент, вызывается функция **[[SetToolSlot(slot)>>path:#id-Сменаинструмента-voidSetToolSlot(numberslot)||shape="rect"]]**, где **slot**=**[[GetSelectedToolSlot()>>path:#id-Сменаинструмента-numberGetSelectedToolSlot()||shape="rect"]]**. | ||
| 6 | 1. Если выполнение макроса смены инструмента необходимо разбить на две части с остановкой между ними, используются функции **[[GetStage>>path:#id-Сменаинструмента-numberGetStage()||shape="rect"]]** и **[[SetStage>>path:#id-Сменаинструмента-voidSetStage(numberstage,booldisable_prep_move)||shape="rect"]]**. | ||
| 7 | |||
| 8 | ===== **void SetStage(number stage, bool disable_prep_move)** ===== | ||
| 9 | |||
| 10 | Установка текущего этапа смены инструмента. | ||
| 11 | |||
| 12 | Параметры: | ||
| 13 | |||
| 14 | * number stage – номер этапа смены инструмента; | ||
| 15 | * bool disable_prep_move – логическое значение, определяющее, будет ли выполнено подготовительное перемещение при продолжении выполнения макроса после нажатия кнопки Старт. True – не выполнять подготовительное перемещение, false – выполнять. Как правило, если передаётся значение true, логика макроса на втором этапе смены инструмента должна обеспечить возврат в точку, откуда будет продолжено выполнение G-кода. | ||
| 16 | |||
| 17 | ===== **number GetStage()** ===== | ||
| 18 | |||
| 19 | Получение текущего этапа смены инструмента. Возвращает значение, которое ранее было установлено функцией **[[SetStage>>path:#id-Сменаинструмента-voidSetStage(numberstage,booldisable_prep_move)||shape="rect"]]**. Если функция **[[SetStage>>path:#id-Сменаинструмента-voidSetStage(numberstage,booldisable_prep_move)||shape="rect"]]** ранее не вызывалась, возвращается значение 0. При выполнении любой другой строки G-кода функция также начинает возвращать значение 0. | ||
| 20 | |||
| 21 | Возвращаемое значение: | ||
| 22 | |||
| 23 | * текущий этап смены инструмента. | ||
| 24 | |||
| 25 | ===== **number GetToolSlot()** ===== | ||
| 26 | |||
| 27 | Получение номера ячейки текущего инструмента, который необходимо вернуть в ячейку. При отсутствии инструмента в шпинделе возвращается значение 0. | ||
| 28 | |||
| 29 | Возвращаемое значение: | ||
| 30 | |||
| 31 | * номер ячейки текущего инструмента. | ||
| 32 | |||
| 33 | ===== **number GetSelectedToolSlot()** ===== | ||
| 34 | |||
| 35 | Получение номера ячейки инструмента, на который производится замена. Если после возврата предыдущего инструмента новый инструмент брать не нужно, возвращается значение 0. | ||
| 36 | |||
| 37 | Возвращаемое значение: | ||
| 38 | |||
| 39 | * номер ячейки инструмента, на который производится замена. | ||
| 40 | |||
| 41 | ===== **void SetToolSlot(number slot)** ===== | ||
| 42 | |||
| 43 | Изменение номера ячейки текущего инструмента. Производится в момент фактической замены инструмента. После того, как предыдущий инструмент помещён в ячейку, необходимо вызвать функцию **SetToolSlot(0)**. После того, как взят новый инструмент, вызывается функция **SetToolSlot(slot)**, где **slot** – номер ячейки выбранного инструмента, полученный при вызове **[[GetSelectedToolSlot()>>path:#id-Сменаинструмента-numberGetSelectedToolSlot()||shape="rect"]]**. | ||
| 44 | |||
| 45 | Параметры: | ||
| 46 | |||
| 47 | * number slot – номер ячейки инструмента, на который произведена замена. | ||
| 48 | |||
| 49 | ===== **bool GetUseGeneralToolchangePosition()** ===== | ||
| 50 | |||
| 51 | Позволяет проверить, выбрана ли в настройках таблицы инструментов опция использовать общую для всех инструментов позицию смены инструмента. | ||
| 52 | |||
| 53 | Возвращаемое значение: | ||
| 54 | |||
| 55 | * true – если выбрана опция использовать общую для всех инструментов позицию; | ||
| 56 | * false – если позиция для каждого инструмента задана в таблице инструментов. | ||
| 57 | |||
| 58 | ===== **number GetGeneralToolchangePosition(number axisId)** ===== | ||
| 59 | |||
| 60 | Параметры: | ||
| 61 | |||
| 62 | * number axisId – номер оси, целое число от 0 до 8. | ||
| 63 | |||
| 64 | В качестве этого параметра может передаваться одна из констант, определённых в списке Axis. | ||
| 65 | |||
| 66 | Возвращаемое значение: | ||
| 67 | |||
| 68 | * машинная координата общей позиции смены инструмента по указанной оси. | ||
| 69 | |||
| 70 | ===== **number GetCurrentToolToolchangePosition(number axisId)** ===== | ||
| 71 | |||
| 72 | Параметры: | ||
| 73 | |||
| 74 | * number axisId – номер оси, целое число от 0 до 8. | ||
| 75 | |||
| 76 | В качестве этого параметра может передаваться одна из констант, определённых в списке Axis. | ||
| 77 | |||
| 78 | Возвращаемое значение: | ||
| 79 | |||
| 80 | * машинная координата позиции смены инструмента для текущего инструмента по указанной оси. | ||
| 81 | |||
| 82 | ===== **number GetSelectedToolToolchangePosition(number axisId)** ===== | ||
| 83 | |||
| 84 | Параметры: | ||
| 85 | |||
| 86 | * number axisId – номер оси, целое число от 0 до 8. | ||
| 87 | |||
| 88 | В качестве этого параметра может передаваться одна из констант, определённых в списке Axis. | ||
| 89 | |||
| 90 | Возвращаемое значение: | ||
| 91 | |||
| 92 | * машинная координата позиции смены инструмента для выбранного инструмента по указанной оси. | ||
| 93 | |||
| 94 | ===== **void SwapToolSlots(number slot)** ===== | ||
| 95 | |||
| 96 | Позволяет реализовать алгоритм смены инструмента с использованием манипулятора, производящего обмен двух инструментов, находящихся, соответственно, в шпинделе и в ячейке. | ||
| 97 | |||
| 98 | {{info icon="false" title="**Пример:**"}} | ||
| 99 | **SwapToolSlots(GetSelectedToolSlot())** - чтобы поменять текущий инструмент с выбранным. При этом соответствующие записи в таблице инструментов поменяются местами. | ||
| 100 | Если в шпинделе нет инструмента (**GetToolSlot()** == 0), будет взят выбранный инструмент. Если инструмент возвращается на место, т.е. выполняется команда **SwapToolSlots(0)**, инструмент будет помещён в свою ячейку. В последних двух случаях изменений в таблице инструментов не происходит. | ||
| 101 | {{/info}} | ||
| 102 | |||
| 103 | Параметры: | ||
| 104 | |||
| 105 | * number slot – номер ячейки заданного инструмента. | ||
| 106 | |||
| 107 | ===== **number GetToolNumber(number slot)** ===== | ||
| 108 | |||
| 109 | Возвращает номер инструмента соответствующего указанной ячейки. | ||
| 110 | |||
| 111 | Параметры: | ||
| 112 | |||
| 113 | * number slot – номер ячейки заданного инструмента. | ||
| 114 | |||
| 115 | Возвращаемое значение: | ||
| 116 | |||
| 117 | * номер инструмента соответствующего указанной ячейки. |