Список объектов для интерпретации

INCT_BlockExecArray - интерфейс SprutCAM, который реализует список объектов текущего кадра для интерпретации.

Описание методов интерфейса:

Метод

Описание метода

Описание использования

Add

Функция добавляет объект для интерпретации в конец списка объектов, возвращает индекс добавленного объекта (число).

Входной параметр: ExecType (TNCExecObj) - тип объекта, добавляемого для интерпретации, ExecParam (указатель) параметр интерпретируемого объекта (описание см. ниже).

  1. При анализе текста управляющей программы, выходящего за рамки типового анализа ядром SprutCAM (реализация метода INCT_Interpreter.TransLine), распознанные лексемы и смысловые конструкции имеет смыл добавлять в список объектов (метода Add) для интерпретации с типом объект (поле ExecType = exObj), поле ExecParam заполнять индексом массива, либо указателем на соответствующую структуру хранящую данные об объекте для его последующей интерпретации.

  2. При интерпретации очередной команды текущего списка INCT_BlockExecArray, зная о том, что текущая команда должна быть сынтерпретирована в конце кадра, возможно добавить её в список при помощи функции Add.

Insert

Функция добавляет объект для интерпретации в список объектов с номером Index, возвращает индекс добавленного объекта (число).

Входные параметры: Index (число) - номер объекта в списке, ExecType (TNCExecObj) - тип объекта, добавляемого для интерпретации, ExecParam (указатель) параметр интерпретируемого объекта (описание см. ниже).

При трансляции текста управляющей программы можно добавлять оттранслированные объекты в начало списка интерпретации, либо добавить объект после другого, нужного нам объекта, при помощи функции Insert, если этого требует процесс исполнения интерпретируемых объектов.

Get

Функция возвращает объект с номером Index из списка интерпретации (интерфейс INCT_BlockExecObject).

Важно! Возвращаемый функцией результат будет корректным только до следующего изменения списка объектов INCT_BlockExecArray.

Входные параметры: Index (число) - номер объекта в списке.

Функция Get востребована при интерпретации объектов списка. С помощью этой функции, по номеру объекта в списке можно получить интерфейс интерпретируемого объекта (INCT_BlockExecObject). Затем в зависимости от типа и назначения объекта выполнить действия по формированию траектории движения инструмента или по подготовке к таким действиям (сохранение значений, инициализация переменных и т.д.).

Find

Функция выполняет поиск объекта интерпретации в списке по параметрам ExecType, ExecParam, начиная с объекта под номером FromIdx, возвращает найденный объект (интерфейс INCT_BlockExecObject).

Важно! Возвращаемый функцией результат будет корректным только до следующего изменения списка объектов INCT_BlockExecArray.

Входные параметры: ExecType (TNCExecObj) - тип интерпретируемого объекта; ExecParam (указатель) для регистра - номер базового регистра, для объекта - указатель, заполняемый интерпретатором; FromIndex (число) - начальный номер объекта в списке.

Входные параметры: Index (число) - номер объекта в списке.

Функция Find может быть использована для определения наличия в уже оттранслированной части кадра регистра или объекта.

Например:

  1. С целью добавления после этого объекта нового объекта интерпретации (функция Insert).

  2. Для определения типа регистра (при реализации INCT_Interpreter.DefineRegister). Пример. Для стойки Fanuc в кадре управляющей программы 'G4 F100', регистр 'F' - выстой, а в кадре управляющей программы 'G01 X10 F100', регистр 'F' - подача. На этапе определения регистра, зная что в оттранслированном кадре уже есть регистр G4, можно однозначно определить регистр 'F' это выстой, а не подача.

MoveTo

Функция возвращает результат перемещения объекта интерпретации с индексом FromIdx на место в списке с индексом ToIdx (логическое). Истина - успешно, Ложь - перемещение не произведено.

Входные параметры: FromIdx (целое число) - индекс перемещаемого объекта в списке, ToIdx (целое число) - индекс.

Функция MoveTo может быть использована для сортировки списка объектов для интерпретации после трансляции кадра. Например, у стойки Heidenhain существуют регистры, которые обрабатываются всегда в начале или в конце кадра, независимо от их расположения в тексте управляющей программы.

Get_Count

Функция возвращает количество объектов интерпретации в списке (целое число).

Входных параметров нет.

Функция Get_Count может быть использована при сортировке списка для интерпретации, с целью определения количества элементов списка.


INCT_BlockExecObject - интерфейс SprutCAM (возвращают функции INCT_BlockExecArray.Get, INCT_BlockExecArray.Find) или интерпретатора (передаётся в функции INCT_BlockExecArray.Add, INCT_BlockExecArray.Insert), который реализует объект для интерпретации.

Описание методов интерфейса:

Метод

Описание метода

Описание использования

Get_ExecType

Функция возвращает тип интерпретируемого объекта (TNCExecObj)

exReg - базовый регистр
exObj - объект интерпретатора

Входных параметров нет.

  1. Функция Get_ExecType используется при интерпретации объектов списка. С помощью этой функции определяется объекта интерпретации. В зависимости от типа и параметра объекта интерпретации выполняются действия по формированию траектории движения инструмента или по подготовке к таким действиям (сохранение значений, инициализация переменных и т.д.).

  2. Функция используется для получения значения при добавлении объекта интерпретации в список.

Get_ExecParam

Функция возвращает параметр интерпретируемого объекта (указатель). Если интерпретируемый объект это регистр (exReg), то параметром будет номер базового регистра. Если интерпретируемый объект это объект интерпретатора, будет возвращён параметр, который был передан интерпретатором при добавлении объекта (INCT_BlockExecArray.Add, INCT_BlockExecArray.Insert)

Входных параметров нет.

  1. Функция Get_ExecParam используется при интерпретации объектов списка. С помощью этой функции определяется параметр объекта интерпретации, заполняемый интерпретатором. В зависимости от типа и параметра объекта интерпретации выполняются действия по формированию траектории движения инструмента или по подготовке к таким действиям (сохранение значений, инициализация переменных и т.д.).

  2. Функция используется для получения значения при добавлении объекта интерпретации в список.

Get_IsUsed

Функция возвращает признак 'сынтерпретирован' (IsUsed) объекта для интерпретации (логический).

Истина - объект сынтерпретирован в текущем кадре, Ложь - объект не сынтерпретирован.

Входных параметров нет.

Функция используется для получения значения при добавлении объекта интерпретации в список.

Set_IsUsed

Метод позволяет установить признак 'сынтерпретирован' (IsUsed) объекта для интерпретации.

Входной параметр: IsUsed (логический) Истина - объект сынтерпретирован в текущем кадре, Ложь - объект не сынтерпретирован.

Функция может быть использована для принудительного изменения признака интерпретации объекта, в этом случае объект не будет сынтерпретирован.

Get_IsOwn

Функция возвращает признак 'собственный' (IsOwn) объекта для интерпретации типа exObj. Для объектов типа exReg всегда возвращает значение Ложь.

Истина - объект добавлен интерпретатором, Ложь - объект добавлен наследником или родителем интерпретатора

Входных параметров нет.

Функция может быть использована в наследуемом интерпретаторе, при принятии решения о самостоятельной интерпретации команды или передаче для интерпретации родителю.