Исходный код вики Смена инструмента
Редактировал(а) Edgar Allan Poe 2024/02/29 11:45
Последние авторы
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 | * номер инструмента соответствующего указанной ячейки. |