Оператор Cmd
Оператор <Cmd> предоставляет гибкий механизм для работы с текущей командой CLData. Он возвращает ссылку на текущую команду CLData, по которой можно запросить код, имя и параметры данной команды. Формат доступа к конкретным данным команды следующий.
<Cmd.Code> - возвращает уникальный числовой код команды CLData. Каждая команда однозначно идентифицируется таким кодом. Список кодов команд приведен в приложении.
<Cmd.Name> - возвращает текстовое имя команды либо параметра команды.
<Cmd.Data> - для отдельных команд CLData, которые имеют единственный строковый параметр (например Comment, PartNo и др.), возвращает значение данного строкового параметра. Для остальных команд возвращается строковое представление команды, точно такое, какое отображается на закладке CLData главного окна.
<Cmd.Data[Index]> - представляет собой альтернативный способ доступа к массиву числовых параметров команды CLD. Возвращает вещественное значение элемента массива параметров с индексом Index.
Следующие ниже несколько конструкций позволяют получить доступ к параметрам команды CLData по имени параметра. Для получения более подробной информации об этом смотрите статью Именованные параметры CLData. Каждая команда CLData может характеризоваться собственным именованным набором параметров. Имена параметров с описанием для каждой команды приведены в приложении. Имена параметров можно увидеть на закладке CLData в нижней части главного окна.
<Cmd.Str["ParameterName"]> - возвращает значение параметра команды с именем ParameterName в виде строки.
<Cmd.Int["ParameterName"]> - возвращает значение параметра команды с именем ParameterName в виде целого числа (Integer).
<Cmd.Flt["ParameterName"]> - возвращает значение параметра команды с именем ParameterName в виде вещественного числа (Real, либо, как его еще называют, число с плавающей точкой - Float).
<Cmd.Ptr["ParameterName"]> - возвращает ссылку на параметр команды с именем ParameterName.
Рассмотрим несколько примеров использования параметров команд CLData.
Пример 1. Внутри обработчика команды загрузки инструмента LoadTl в управляющую программу выводится строка с указанием адреса T, номера инструмента и именем револьверной головки в скобках.
program LoadTl
Output "T" + Cmd.Int["ToolID"] + " (" + Cmd.Str["RevolverID"] + ")"
end
Возможный результат вывода в УП: T3 (TopTurret)
Пример 2. Пример обработки команды MultiGoto с использованием различных способов доступа к элементам параметра-массива Axes.
program MultiGoto
i: Integer
AxisName: String
for i = 1 to Cmd.Ptr["Axes"].ItemCount do begin
AxisName = cmd.Ptr["Axes"].Item[i].Str["AxisID"]
if AxisName="AxisXPos" then begin
X = cmd.Ptr["Axes"].Item[i].Flt["Value"]
end else
if AxisName="AxisYPos" then begin
Y = cmd.Ptr["Axes("+Str(i)+")"].Flt["Value"]
end else
if AxisName="AxisZPos" then begin
Z = cmd.Flt["Axes("+Str(i)+").Value"]
end else
if cmd.Ptr["Axes(AxisCPos)"]<>0 then begin
C = cmd.Flt["Axes(AxisCPos).Value"]
end
end
OutBlock
end
Пример 3. Пример обработки команды установки системы координат Origin. Здесь производится анализ значения свойства <OriginType> команды. Если оно равно нулю, то выводится команда выбора стандартной системы координат заготовки G54-G59. Номер системы координат берется из параметра <CSNumber>. В противном случае формируется команда переноса локальной системы координат G92 X Y Z. Величины смещений вдоль осей системы координат берутся из соответствующих дочерних свойств параметра <MCS.OriginPoint> различными способами.
program Origin
if Cmd.Int["OriginType"]=0 then begin !G54-G59
Output "G" + Cmd.Str["CSNumber"]
end else begin !G92 X Y Z
X = Cmd.Flt["MCS.OriginPoint.X"]
Y = Cmd.Ptr["MCS.OriginPoint.Y"].Flt
Z = Cmd.Ptr["MCS.OriginPoint"].Flt["Z"]
Output "G92 X" + Str(X) + " Y" + Str(Y) + " Z" + Str(Z)
end
end
Сопутствующие ссылки: