PLANE - Рабочая плоскость
Отображение команды
Как команда отображается в списке команд CLData:
PLANE XY(33) | YZ(37) | XZ(41) | YX(133) | ZY(137) | ZX(141)
Команда PLANE используется для задания активной плоскости обработки. Обычно эта команда транслируется в G-коды G17, G18, G19. Активная плоскость используется при круговой интерполяции (определяет плоскость дуг), для реализации коррекции на радиус инструмента, для задания циклов обработки отверстий и т. д.
Доступ из sppx
Обработчик: program Plane
| Параметр | Массив CLD | Имя CLD | Описание |
|---|---|---|---|
| XY(33) YZ(37) XZ(41) YX(133) ZY(137) ZX(141) |
CLD[1] | CLD.Plane | Код плоскости: 33 – XY, 37 – YZ, 41 – XZ, 133 – YX, 137 – ZY, 141 – ZX. |
Для создания ISO-постпроцессора используйте шаблон ISO.G, которому автоматически присваивается код плоскости:
| Значение элемента CLD | Значение ISO |
|---|---|
| CLD[1] = 33 | ISO.G = 17 |
| CLD[1] = 37 | ISO.G = 19 |
| CLD[1] = 41 | ISO.G = 18 |
Пример (из постпроцессора Fanuc (30i)_Mill):
program Plane
case cld[1] of
33: Plane = 17; ! XY
37: Plane = 19; ! YZ
41: Plane = 18; ! XZ
133: Plane = -17; ! XY
137: Plane = -19; ! YZ
141: Plane = -18; ! XZ
end
if (Plane<>Plane@) and (abs(Plane)=abs(Plane@)) then
Plane@ = Plane
! if Plane<>Plane@ then
! OutBlock
case abs(Plane) of
17: begin
regZPlane = Rgs["Z"].Num
regZCycle = Rgs["ZCYCLE"].Num
end
18: begin
regZPlane = Rgs["Y"].Num
regZCycle = Rgs["YCYCLE"].Num
end
19: begin
regZPlane = Rgs["X"].Num
regZCycle = Rgs["XCYCLE"].Num
end
else begin
regZPlane = Rgs["Z"].Num
regZCycle = Rgs["ZCYCLE"].Num
end
end
end
Доступ из .NET
Обработчик:
public override void OnPlane(ICLDPlaneCommand cmd, CLDArray cld)
Наследование: ICLDPlaneCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); доступны также «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные обёртки cmd["..."]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.
| Член | Тип | Описание |
|---|---|---|
cmd.Plane |
CLDPlaneType |
Содержит точный тип плоскости. Возможны 6 стандартных значений: XY, YZ, ZX, InvXY, InvYZ, InvZX. Возможные значения: XY (17) - Стандартная плоскость XY, или G17YZ (19) - Стандартная плоскость YZ, или G19ZX (18) - Стандартная плоскость ZX, или G18InvXY (-17) - Плоскость, противоположная плоскости XY (-17)InvYZ (-19) - Плоскость, противоположная плоскости YZ (-19)InvZX (-18) - Плоскость, противоположная плоскости ZX (-18) |
cmd.PlaneGCode |
int |
Содержит номер стандартного ISO G-кода для типа плоскости. Возможны 6 значений: 17, 18, 19, -17, -18, -19. |
cmd.PlaneSign |
int |
Возвращает "+1" для плоскостей XY, YZ, ZX. Возвращает "-1" для плоскостей InvXY, InvYZ и InvZX. |
Пример - OnPlane (из постпроцессора Fanuc (30i)_Mill_DN):
public override void OnPlane(ICLDPlaneCommand cmd, CLDArray cld)
{
nc.GPlane.v = cmd.PlaneGCode;
planeSign = cmd.PlaneSign;
switch (cmd.Plane) {
case CLDPlaneType.XY:
case CLDPlaneType.InvXY:
planeZIndex = 3;
nc.PlaneZReg = nc.Z;
break;
case CLDPlaneType.ZX:
case CLDPlaneType.InvZX:
planeZIndex = 2;
nc.PlaneZReg = nc.Y;
break;
case CLDPlaneType.YZ:
case CLDPlaneType.InvYZ:
planeZIndex = 1;
nc.PlaneZReg = nc.X;
break;
}
}