Разработка постпроцессоров
  • Разработка постпроцессоров
v20.0.1
Search Results for

    Show / Hide Table of Contents

    Предопределённый массив CLD

    Массив CLD хранит числовые параметры выполняемой в данный момент команды CLData. Перед вызовом обработчика команды параметры команды помещаются в этот массив; внутри обработчика параметры анализируются чтением отдельных элементов массива, и на основе этого анализа формируются кадры управляющей программы.

    Параметры команды доступны либо индексированием соответствующего элемента массива, либо по уникальному имени параметра.

    Доступ из sppx

    Массив CLD — это массив вещественных чисел. Он предназначен для хранения числовых параметров выполняемой в данный момент технологической команды CLData. Перед вызовом обработчика текущей команды её параметры заполняются в этот массив. Внутри обработчика параметры команды можно анализировать, обращаясь к отдельным элементам массива, и на основе анализа формировать кадры управляющей программы.

    Параметры команды доступны либо индексированием соответствующего элемента массива CLD, либо по уникальному имени параметра.

    Для доступа по индексу используйте обычный синтаксис массива: CLD[i] — i-й элемент массива, вещественное число, i — индекс элемента, положительное целое число. Индекс элемента массива может быть переменной или выражением целого типа. Например: CLD[3], CLD[n], CLD[2*n+1] и т. д. Общее число элементов массива CLD содержится в предопределённой переменной RecNum.

    Для доступа к параметрам по имени используйте следующий синтаксис: CLD.Имя параметра, где Имя параметра — уникальный идентификатор параметра. Например, CLD.X, CLD.Mode и так далее. Имена параметров специфичны для каждой команды. Подробное описание технологических команд CLData и их параметров приведено в описании технологических команд. Также можно увидеть список параметров на панели Текущие параметры страницы Шаблон главного окна и на вкладке CLData внизу главного окна.

    Пример использования массива CLD:

    program Circle
      if CLD.R > 0 then INTERP_ = 3
      else INTERP_ = 2 ! G3/G2
      X = cld[5]
      Y = cld[6]
      Z = cld[7]
      I = CLD.Xc
      J = CLD.Yc
      R = abs(cld.R)
      OutBlock
    end
    

    Приведённый выше обработчик команды CIRCLE выводит в кадры управляющей программы движение по окружности G2 или G3 (по часовой стрелке или против) с конечной точкой (X, Y, Z), центром (I, J) и радиусом (R).

    Доступ к параметрам команды CLData, в том числе нечисловым, можно также получить оператором Cmd.

    Доступ из .NET

    Обработчик команды получает тот же массив числовых параметров вторым аргументом — экземпляр класса CLDArray (по соглашению именуемый cld). Его члены отражают массив CLD из sppx:

    sppx .NET Описание
    CLD[i] cld[i] i-й параметр, вещественное число; индекс 1-based ([1..Count]), как и в sppx
    CLD.Name cld["Name"] параметр, адресуемый по его уникальному текстовому имени (без учёта регистра)
    RecNum cld.Count число параметров в массиве

    Тот же обработчик CIRCLE в .NET:

    public override void OnCircle(ICLDCircleCommand cmd, CLDArray cld)
    {
        int interp = cld["R"] > 0 ? 3 : 2;   // G3 / G2
        double x = cld[5];
        double y = cld[6];
        double z = cld[7];
        double i = cld["Xc"];
        double j = cld["Yc"];
        double r = Math.Abs(cld["R"]);
        // ... вывод кадра
    }
    

    В .NET параметры обычно читаются вместо этого из строго типизированного объекта cmd (cmd.EP.X, cmd.R, ...) — см. Текущая команда; «сырой» массив cld доступен для случаев, которые не покрываются типизированными членами.

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

    • Текущая команда (оператор Cmd)
    • Именованные параметры CLData
    • Функции и операторы доступа к CLData
    In this article