Файл настроек интерпретатора

Файл с настройками имеет расширение SNCI (Sprut Numerical Control Interpreter) и формат XML. Описание его элементов приведено ниже. Обязательные к заполнению параметры отмечены признаком в соответствующей колонке.


Описание элементов SNCI файла

Название элемента

Формат поля

Описание

Обязательные

NCInterpreter

Тег

Корневой элемент

*

CNCSystem

Строка

Название стойки/станка

MachineType

Строка

Тип станка, варианты:

  • Lathe — токарный

  • Mill — фрезерный

  • TurnMill — токарно-фрезерный

  • Robots — робот

  • WireEDM — электроэрозионный

UseGeomCLData

Логическое

Устанавливает признак использования интерфейса построения траектории движения инструмента в геометрических осях.

True — для формирования траектории движения инструмента из SprutCAM в интерпретатор передаётся интерфейс INCT_GeomCLData.

False — для формирования траектории движения инструмента из SprutCAM в интерпретатор передаётся интерфейс INCT_CLData.

По умолчанию установлено значение False.


Date

Дата

Дата интерпретатора в формате dd.mm.yyyy

Authors

Строка

Разработчик(-и)

Company

Строка

Компания

Description

Строка

Описание

Version

Число

Версия

*

ID

GUID

Идентификатор интерпретатора (должен быть уникальным)

*

LibraryID

GUID

Идентификатор программной библиотеки (должен быть уникальным)

*

LibraryFileName_Net

Строка

Ссылка на программную библиотеку для платформы .NET

**

NetNamespaceClass

Строка

Пространство имён и имя класса, реализующего интерпретатор (если заполнено поле LibraryFileName_Net)

***

LibraryFileName_x64

Строка

Ссылка на нативную программную библиотеку версии x64 (используется если не заполнено поле LibraryFileName_Net)

**

ParentID

GUID

Идентификатор интерпретатора-родителя (поле ID в SNCI-файле родителя)

*

ParentFileName

Строка

Ссылка на файл настроек интерпретатора-родителя (SNCI-файл)

*

FileExtension

Строка

Расширение файлов с текстом управляющей программы

*

Registers

Тег

Список регистров интерпретатора

*

* — обязательное поле;

** — должно быть заполнено либо поле LibraryFileName_Net, либо LibraryFileName_x64;

*** — поле должно быть заполнено, если заполнено поле LibraryFileName_Net.


Описание каждого элемента из списка регистров (Registers):

Название элемента

Формат поля

Описание

Address

Строка

Адрес регистра

Name

Строка

Имя регистра

Id

Строка

Идентификатор регистра

Comment

Строка

Комментарий

AddrOnly

Строка

Варианты значений:

  • aoValue — Слово текста УП состоит только из адреса и значения

  • aoAddr — Слово текста УП состоит только из адреса

  • aoBoth — Слово текста УП может состоять либо только из адреса, либо из адреса и значения

Sign

Целое число

Знак значения:

  • 0 — без знака

  • 1 — только '-'

  • 2 — '+' и '-'

NumeralsBeforePoint.Count

Целое число

Знаков до точки

NumeralsBeforePoint.Zeros

Логическое

Наличие лидирующих нулей

DecimalPoint

Целое число

Десятичная точка:

  • 0 — без '.'

  • 1 — '.'

  • 2 — всегда '.'

NumeralsAfterPoint.Count

Целое число

Знаков после точки

NumeralsAfterPoint.Zeros

Логическое

Незначащие нули

Scale

Число

Масштаб

Modal

Логическое

Признак модальности регистра

ModalGroupList

Список значений

Список значений, которые может принимать регистр


Поле Version зарезервировано для будущего использования.

Важными элементами файла настроек интерпретатора являются: его собственный идентификатор (ID), идентификатор (LibraryID) и ссылка на файлы программной библиотеки .NET/x64 версии (LibraryFileName_*), идентификатор (ParentID) и ссылка на интерпретатор родителя (ParentFileName). Идентификаторы файла настроек и программной библиотеки должны быть уникальными (см. статью о GUID: Globally Unique Identifier).

Поле LibraryFileName_* должно указывать на файлы, с программной библиотекой, относительно каталога размещения SNCI-файла. Рекомендуется размещать файл с программной библиотекой в каталоге с SNCI-файлом.

Существует два варианта подключения программной библиотеки к SprutCAM:

  1. Программная библиотека разработана для платформы .NET (например, на C#).
    В этом случае необходимо заполнить поля LibraryFileName_Net и NetNamespaceClass, где:

    • LibraryFileName_Net - ссылка на программную библиотеку.

    • NetNamespaceClass - пространство имён и класс, реализующий интерфейс взаимодействия с интерпретатором. Формат: Namespace.Class, например: sample.Interpreter.

  2. Программная библиотека является нативной (написана на Delphi, C++ и пр.)
    В этом случае должно быть заполнено поле LibraryFileName_x64 (ссылка на программную библиотеку x64). Версию x64 программной библиотеки обязательно следует называть, используя префикс "64". Например: Sample_x64.dll или Sample_Win64.dll. Где "Sample" — название программной библиотеки.

Если интерпретатор не является наследником другого интерпретатора, то поля родителя заполняются пустыми значениями:

<ParentID>{00000000-0000-0000-0000-000000000000}</ParentID>

<ParentFileName/>

Поле FileExtension зарезервировано для будущего использования.

В поле Registers находится список регистров для автоматического выделения слов из текста управляющей программы. Порядок трансляции кадра управляющей программы описан в следующей статье. В файле настроек интерпретатора допускается не заполнять список регистров, он будет получен от программной библиотеки интерпретатора, тем не менее тег <Registers/> должен присутствовать.

Использование файла настроек интерпретатора приведено в разделе Процесс интерпретации текста управляющей программы.

Пример файла настроек интерпретатора для нативной библиотеки (x32/x64):
<?xml version="1.0" encoding="UTF-8" ?>
<NCInterpreter>
<CNCSystem>Sample CNC (mill)</CNCSystem>
<MachineType>Mill</MachineType>
<Date>01.01.2019</Date>
<Authors>Ivan Danko</Authors>
<Company>SPRUT Technology</Company>
<Description>Interpreter for Sample CNC</Description>
<Version>1</Version>
<ID>{79B1410C-67D5-42B6-867B-A3BF30AB3D8A}</ID>
<LibraryID>{80F754D9-EE7B-47CF-A802-A9424D9F6749}</LibraryID>
<LibraryFileName_x64>Sample_x64.dll</LibraryFileName_x64>
<ParentID>{00000000-0000-0000-0000-000000000000}</ParentID>
<ParentFileName/>
<FileExtension>*.cnc</FileExtension>
<Registers/>
</NCInterpreter>

Скачать пример Sample.snci.