Оператор 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

Сопутствующие ссылки:

Функции и операторы работы с CLData