LOADTL - Загрузка инструмента
Отображение команды
Как команда отображается в списке команд CLData:
LOADTL N n, Tool changed 1, X x, Y y, Z z, D d, M m, K k, L l, P p, A a, R r, H h, RC rc,
PLANE XY(33)|YZ(37)|XZ(41)|YX(133)|ZY(137)|ZX(141),
DUR d2, HID hid, NX nx, NY ny, NZ nz, NW nw, RevolverID rid
Команда LOADTL загружает инструмент с номером, указанным в первом параметре. Используйте команду LOADTL для формирования кадров управляющей программы, перемещающих револьверную головку или выбирающих инструмент в магазине инструментов. Также эта команда используется для формирования кадров управляющей программы, отводящих инструмент в безопасную позицию для смены инструмента.
Доступ из sppx
Обработчик: program Loadtl
Массив cld читается по индексу или по имени - в sppx по типизированному короткому имени (например, cld.X), в .NET по тому же имени как строковому ключу (например, cld["X"]).
| Параметр | Массив CLD | Имя CLD | Описание |
|---|---|---|---|
| n | CLD[1] | CLD.N | Номер инструмента |
| x y z |
CLD[2] CLD[3] CLD[4] |
CLD.X CLD.Y CLD.Z |
Смещение инструмента по осям X, Y, Z относительно точки закрепления инструмента (система координат фланца). |
| d | CLD[5] | CLD.D | Диаметр инструмента. |
| m | CLD[6] | CLD.M | Номер корректора на длину. Если настроечная точка - кончик инструмента, то M < 0. |
| k | CLD[7] | CLD.K | Номер корректора на радиус. Если настроечная точка - кончик инструмента, то K < 0. |
| L | CLD[8] | CLD.L | Длина инструмента. |
| P | CLD[9] | CLD.P | Ширина инструмента. |
| a | CLD[10] | CLD.A | Угол врезания инструмента (при внешней выборке 180<a<0, при внутренней выборке 0<a<90). |
| r | CLD[11] | CLD.R | Радиус скругления. |
| h | CLD[12] | CLD.H | Высота инструмента. |
| rc | CLD[13] | CLD.Rc | Радиус цилиндрической части осевого инструмента. |
| XY(33) YZ(37) XZ(41) YX(133) ZY(137) ZX(141) |
CLD[14] | Плоскость инструмента. Плоскость, перпендикулярная оси инструмента для осевого инструмента. Плоскость обработки для токарного инструмента. 33 - XY, 37 - YZ, 41 - XZ, 133 - YX, 137 - ZY, 141 - ZX. | |
| CLD[15] CLD[16] |
Зарезервировано. | ||
| d2 | CLD[17] | CLD.Dur | Стойкость инструмента (в минутах). 0 - не учитывается. |
| HID | CLD[18] | CLD.HID | Идентификатор (номер) держателя инструмента |
| nx ny nz nw |
CLD[19] CLD[20] CLD[21] CLD[22] |
CLD.NX CLD.NY CLD.NZ CLD.NW |
Значения, определяющие ориентацию инструмента относительно точки закрепления (системы координат фланца). В зависимости от настроек системы (задаются в схеме станка) это могут быть либо углы поворота вокруг осей координат X, Y и Z в градусах (углы Эйлера A = NX, B = NY, C = NZ), либо коэффициенты кватерниона q = (NX, NY, NZ, NW). |
Доступ по имени параметра (помощники)
Параметры, доступные через оператор cmd (одинаково в sppx и .NET):
| TCLDLoadTool: ComplexType | Команда загрузки инструмента |
|---|---|
| ToolChanged: bool (integer) | cmd.Int["ToolChanged"] - ToolChanged - это флаг, определяющий, производится ли в данном месте смена инструмента относительно предыдущей операции. Если он равен 1 (true), это означает, что инструмент в этой операции отличается от инструмента предыдущей операции. Если флаг равен 0 (false), это означает, что инструменты в текущей и предыдущей операциях одинаковы и смены инструмента нет. От этого флага зависит опция «Пропускать LoadTL, если нет смены инструмента» в окне настроек, и постпроцессор может пропускать вызов процедуры LoadTL. |
| ToolID: Integer | cmd.Int["ToolID"] - Идентификатор (номер) инструмента |
| RadCorrNum: Integer | cmd.Int["RadCorrNum"] - Номер корректора на радиус |
| LenCorrNum: Integer | cmd.Int["LenCorrNum"] - Номер корректора на длину |
| HolderID: Integer | cmd.Int["HolderID"] - Идентификатор (номер) держателя инструмента |
| RevolverID: String | cmd.Str["RevolverID"] - Строковый идентификатор револьверной головки |
Пример (из постпроцессора Fanuc (30i)_Mill):
program LoadTl
OutBlock
H = abs(cld[6]); H@ = H
GFunc = 53; GFunc@ = MaxReal
Z = 0; Z@ = MaxReal
OutBlock
GFunc = 53; GFunc@ = MaxReal
X = 0; X@ = MaxReal
Y = 0; Y@ = MaxReal
OutBlock
M = 06; M@ = M-1
Tool = cld[1]; Tool@ = MaxReal ! заполнение регистра Tool
FormBlock
if NextCode=CodeOfCmd("Comment") then begin
s$ = CLDFile[CLDFile.CurrentFile].Cmd[CLDFile.CurrentCmd+1].Data
call TransStr(s$)
OutStr$ = OutStr$ + " (" + s$ + ")"
end
Output OutStr$
WasLoadTool = 1
CoordSys = WCSNumber
CoordSys@ = MaxReal
OutBlock
X = MaxReal; X@ = X
Y = MaxReal; Y@ = Y
Z = MaxReal; Z@ = Z
! A = MaxReal; A@ = A
! B = MaxReal; B@ = B
! C = MaxReal; C@ = C
end
Доступ из .NET
Обработчик:
public override void OnLoadTool(ICLDLoadToolCommand cmd, CLDArray cld)
Наследование: ICLDLoadToolCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd[...]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.
| Свойство | Тип | Описание |
|---|---|---|
cmd.ToolChanged |
bool | True, если инструмент изменился по сравнению с предыдущей операцией; false, если операция использует тот же инструмент. |
cmd.Number |
int | Номер инструмента. |
cmd.LCorNum |
int | Первый номер корректора (на длину) инструмента. |
cmd.RCorNum |
int | Второй номер корректора (на радиус) инструмента. |
cmd.ConnectorIndex |
int | Индекс коннектора инструмента в схеме станка. |
cmd.RevolverID |
string | Идентификатор револьверной головки для станков с револьверной головкой; идентификатор коннектора инструмента для других типов станков. |
cmd.Overhang |
TInpLocation |
Вылет кончика инструмента (X, Y, Z + углы ориентации) относительно шпинделя; тип ориентации зависит от схемы станка (углы Эйлера, вектор нормали или кватернион). |
cmd.Plane |
CLDPlaneType |
Плоскость ориентации инструмента. |
cmd.Durability |
double | Стойкость инструмента в минутах. |
cmd.Geom |
IToolGeometry |
Основные геометрические параметры инструмента: D (диаметр резания), R (радиус скругления вершины), Rc (радиус скругления у цилиндрической части), L (длина), P (ширина), A (угол), H (высота фасонной части). |
Пример (из постпроцессора Sinumerik 840D mill):
public override void OnLoadTool(ICLDLoadToolCommand cmd, CLDArray cld)
{
nc.Tool.Show(cmd.Number);
nc.DTool.Reset(Abs(cmd.LCorNum));
nc.OutText("M6");
}