Исходный код вики Смена инструмента

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

Последние авторы
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 * номер инструмента соответствующего указанной ячейки.