Interpreter settings file
The settings file has a SNCI (Sprut Numerical Control Interpreter) extension and XML format. The description of its elements is given below. The required parameters are marked with a sign in the corresponding column.
Description of the SNCI file elements
Item name |
Field format |
Description |
Required |
NCInterpreter |
Tag |
Root element |
* |
CNCSystem |
String |
Name of stand / machine |
|
MachineType |
String |
Machine type. Variations:
|
|
UseGeomCLData |
Logical |
Specifies the use of the interface of the tool motion path construction in geometric axes (Logical). True — is that the INCT_GeomCLData interface is passed to the interpreter to form the trajectory of the tool movement from SprutCAM X. False — the INCT_CLData interface is passed to the interpreter to form the trajectory of the tool movement from SprutCAM X. The default value is False. |
|
Date |
Date |
Interpreter date in dd.mm.yyyy format |
|
Authors |
String |
Developer(-s) |
|
Company |
String |
Company |
|
Description |
String |
Description |
|
Version |
Number |
Version |
* |
ID |
GUID |
Interpreter ID (must be unique) |
* |
LibraryID |
GUID |
Software library ID (must be unique) |
* |
LibraryFileName_Net |
String |
Link to the software library for the .NET platform |
** |
NetNamespaceClass |
String |
Namespace and name of the class that implements the interpreter (if the LibraryFileName_Net field is filled) |
*** |
LibraryFileName_x64 |
String |
Link to x64 software library (used if the LibraryFileName_Net field is not filled) |
** |
ParentID |
GUID |
Parent Interpreter ID (ID field in parent SNCI file) |
* |
ParentFileName |
String |
Link to the parent interpreter settings file (SNCI file) |
* |
FileExtension |
String |
File extension with NC code |
* |
Registers |
Tag |
List of interpreter registers |
* |
* — required field;
** — either the LibraryFileName_Net or LibraryFileName_x64 must be filled in;
*** — The field must be filled in if the LibraryFileName_Net field is filled.
Description of each item from the register list (Registers):
Item name |
Field format |
Description |
Address |
String |
Register address |
Name |
String |
Register name |
Id |
String |
Register ID |
Comment |
String |
Comment |
AddrOnly |
String |
Value options:
|
Sign |
Integer |
Value sign:
|
NumeralsBeforePoint.Count |
Integer |
Characters to the point |
NumeralsBeforePoint.Zeros |
Boolean |
Presence of leading zeros |
DecimalPoint |
Integer |
Decimal point:
|
NumeralsAfterPoint.Count |
Integer |
Characters after the point |
NumeralsAfterPoint.Zeros |
Boolean |
Trailing zeros |
Scale |
Number |
Scale |
Modal |
Boolean |
Sign of register modality |
ModalGroupList |
List of values |
The list of values that can get the register. |
The Version field is reserved for future use.
Important elements of the interpreter's settings file are: its own identifier (ID), identifier (LibraryID) and link to .NET/x64 version software library files (LibraryFileName_*), identifier (ParentID) and link to parent interpreter (ParentFileName). The identifiers of the settings file and the program library must be unique (see the GUID article: Globally Unique Identifier).
The LibraryFileName_* field should point to files with a program library, relative to the directory where the SNCI file is located. It is recommended to place the file with the program library in the directory with the SNCI file.
There are two options for connecting the program library to SprutCAM X:
The software library is designed for the .NET platform (for example, in C #).
In this case, you must fill in the LibraryFileName_Net and NetNamespaceClass fields, where:LibraryFileName_Net — link to the program library.
NetNamespaceClass is a namespace and class that implements the interface of interaction with the interpreter. Format: Namespace.Class, for example: sample.Interpreter.
The program library is native (written in Delphi, C ++, etc.)
In this case, the LibraryFileName_x64 field (link to the x64 program library) must be filled in. The x64 version of a program library must always be named using the “64” prefix. For example: Sample_x64.dll or Sample_Win64.dll. Where “Sample” is the name of the program library.
If the interpreter is not the inheritor of another interpreter, then the parent fields are filled with empty values:
<ParentID>{00000000-0000-0000-0000-000000000000}</ParentID>
<ParentFileName/>
The FileExtension field is reserved for future use.
In the Registers field is a list of registers for automatic selection of words from the NC code. The order of transmission of the control program block is described in the following article. The interpreter configuration file may not be a complete list of registers, it will be received by the interpreter program library, however tag <Registers/> must be attended.
The use of the interpreter settings file is given in the G-code based program interpretation section.
<?
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
>
Download example Sample.snci.