Файл настроек интерпретатора
Файл с настройками имеет расширение SNCI (Sprut Numerical Control Interpreter) и формат XML. Описание его элементов приведено ниже. Обязательные к заполнению параметры отмечены признаком в соответствующей колонке.
Описание элементов SNCI файла
№ |
Название элемента |
Формат поля |
Описание |
Обязательные |
1 |
NCInterpreter |
Тег |
Корневой элемент |
* |
2 |
CNCSystem |
Строка |
Название стойки/станка |
|
3 |
MachineType |
Строка |
Тип станка, варианты:
|
|
4 |
UseGeomCLData |
Логическое |
Устанавливает признак использования интерфейса построения траектории движения инструмента в геометрических осях. True - для формирования траектории движения инструмента из SprutCAM в интерпретатор передаётся интерфейс INCT_GeomCLData. False - для формирования траектории движения инструмента из SprutCAM в интерпретатор передаётся интерфейс INCT_CLData. По-умолчанию установлено значение False. |
|
5 |
Date |
Дата |
Дата интерпретатора в формате dd.mm.yyyy |
|
6 |
Authors |
Строка |
Разработчик(-и) |
|
7 |
Company |
Строка |
Компания |
|
8 |
Description |
Строка |
Описание |
|
9 |
Version |
Число |
Версия |
* |
10 |
ID |
GUID |
Идентификатор интерпретатора (должен быть уникальным) |
* |
11 |
LibraryID |
GUID |
Идентификатор программной библиотеки (должен быть уникальным) |
* |
12 |
LibraryFileName_Net |
Строка |
Ссылка на программную библиотеку для платформы .NET |
** |
13 |
NetNamespaceClass |
Строка |
Пространство имён и имя класса, реализующего интерпретатор (если заполнено поле LibraryFileName_Net) |
*** |
14 |
LibraryFileName_x32 |
Строка |
Ссылка на нативную программную библиотеку версии x32 (используется если не заполнено поле LibraryFileName_Net) |
** |
15 |
LibraryFileName_x64 |
Строка |
Ссылка на нативную программную библиотеку версии x64 (используется если не заполнено поле LibraryFileName_Net) |
** |
16 |
ParentID |
GUID |
Идентификатор интерпретатора-родителя (поле ID в SNCI-файле родителя) |
* |
17 |
ParentFileName |
Строка |
Ссылка на файл настроек интерпретатора-родителя (SNCI-файл) |
* |
18 |
FileExtension |
Строка |
Расширение файлов с текстом управляющей программы |
* |
19 |
Registers |
Тег |
Список регистров интерпретатора |
* |
* - поле обязательно к заполнению;
** - должно быть заполнено поле LibraryFileName_Net или оба поля LibraryFileName_x32, LibraryFileName_x64;
*** - поле должно быть заполнено, если заполнено поле LibraryFileName_Net.
Описание каждого элемента из списка регистров (Registers):
№ |
Название элемента |
Формат поля |
Описание |
1 |
Address |
Строка |
Адрес регистра |
2 |
Name |
Строка |
Имя регистра |
3 |
Id |
Строка |
Идентификатор регистра |
4 |
Comment |
Строка |
Комментарий |
5 |
AddrOnly |
Строка |
Варианты значений:
|
6 |
Sign |
Целое число |
Знак значения:
|
7 |
NumeralsBeforePoint.Count |
Целое число |
Знаков до точки |
8 |
NumeralsBeforePoint.Zeros |
Логическое |
Наличие лидирующих нулей |
9 |
DecimalPoint |
Целое число |
Десятичная точка:
|
10 |
NumeralsAfterPoint.Count |
Целое число |
Знаков после точки |
11 |
NumeralsAfterPoint.Zeros |
Логическое |
Незначащие нули |
12 |
Scale |
Число |
Масштаб |
13 |
Modal |
Логическое |
Признак модальности регистра |
14 |
ModalGroupList |
Список значений |
Список значений, которые может принимать регистр |
Поле Version зарезервировано для будущего использования.
Важными элементами файла настроек интерпретатора являются: его собственный идентификатор (ID), идентификатор (LibraryID) и ссылка на файлы программной библиотеки .NET/x32/x64 версии (LibraryFileName_*), идентификатор (ParentID) и ссылка на интерпретатор родителя (ParentFileName). Идентификаторы файла настроек и программной библиотеки должны быть уникальными (см. статью о GUID: Globally Unique Identifier).
Поле LibraryFileName_* должно указывать на файлы, с программной библиотекой, относительно каталога размещения SNCI-файла. Рекомендуется размещать файл с программной библиотекой в каталоге с SNCI-файлом.
Существует два варианта подключения программной библиотеки к SprutCAM:
Программная библиотека разработана для платформы .NET (например, на C#).
В этом случае необходимо заполнить поля LibraryFileName_Net и NetNamespaceClass, где:
LibraryFileName_Net - ссылка на программную библиотеку.
NetNamespaceClass - пространство имён и класс, реализующий интерфейс взаимодействия с интерпретатором. Формат: Namespace.Class, например: sample.Interpreter.Программная библиотека является нативной (написана на Delphi, C++ и пр.)
В этом случае должны быть заполнены поля LibraryFileName_x32 и LibraryFileName_x64 (ссылка на программную библиотеку x32/x64 соответственно). Версии x32/x64 программной библиотеки следует называть одинаковым именем, но с разными префиксами. Например: Sample_x32.dll / Sample_x64.dll или Sample_Win32.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_x32>Sample_x32.dll</LibraryFileName_x32>
<LibraryFileName_x64>Sample_x64.dll</LibraryFileName_x64>
<ParentID>{00000000-0000-0000-0000-000000000000}</ParentID>
<ParentFileName/>
<FileExtension>*.cnc</FileExtension>
<Registers/></NCInterpreter>
Скачать пример Sample.snci.