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:

  • Lathe

  • Mill

  • TurnMill

  • Robots

  • WireEDM

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:

  • aoValue — The NC word consists only of the address and value.

  • aoAddr — The NC word consists only of the address.

  • aoBoth — The NC word that can consist of both an address and an address and value.

Sign

Integer

Value sign:

  • 0 — without sign

  • 1 — only '-'

  • 2 — '+' and '-'

NumeralsBeforePoint.Count

Integer

Characters to the point

NumeralsBeforePoint.Zeros

Boolean

Presence of leading zeros

DecimalPoint

Integer

Decimal point:

  • 0 — without '.'

  • 1 — '.'

  • 2 — always '.'

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:

  1. 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.

  2. 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.

An example of the interpreter settings file for the native library (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>

Download example Sample.snci.