Common Types

This page covers ITcAlgorithmData, the public enums, and enum-set aliases that shape plugin behavior before you even get to object-level contracts like ITcPlugin or ITonCut. The source of truth is the Pascal contract under SDK/include/pascal/.

Algorithm data

ITcAlgorithmData provides typed, unit-aware access to the opaque, implementation-defined algorithm JSON owned by a device, material, piece, or stock sheet. Its payload keys, values, and schema are not public and carry no compatibility guarantee. Plugins must not depend on particular payload contents. Data and Units form one logical state: use GetState for a coherent read and SetState for an atomic update that emits at most one change event. Empty data always uses the default units.

Dotted-path getters address nested object members and return the supplied default when a value is missing or has the wrong type. The ByPointer variants use RFC 6901 JSON Pointer syntax for indexed traversal; an empty pointer selects the document root, ~1 escapes /, and ~0 escapes ~. GetCount counts only a selected JSON array and returns 0 for a missing or non-array value.

Data, SetState, and Deserialize do not turn malformed state into a default. Non-empty algorithm data must be a JSON object; malformed JSON, a non-object root, an incomplete serialized envelope, or an unknown unit value is rejected. Serialize returns an empty string for an empty state and otherwise keeps the JSON and its

metadata together. Deserialize with an empty string resets both parts of the state. Two empty algorithm-data objects compare equal through SameAs even if their unit records differ.

ITcAlgorithmData

Typed, unit-aware access to opaque, implementation-defined algorithm JSON attached to a device, material, piece, or stock sheet. The public contract covers access and state behavior, not payload keys or schema compatibility.

Source: SDK/include/pascal/uITcAlgorithmData.pas

Properties

  • Property name
    Data
    Type
    WideString
    Description

    Gets or sets opaque, implementation-defined algorithm JSON. No public payload schema or compatibility guarantee is provided. Use SetState when changing the JSON and units together.

    Declaration

    property Data: WideString read GetData write SetData;

    Published SDK declaration languages: Pascal.

  • Property name
    Units
    Type
    Description

    Gets or sets the unit metadata paired with the algorithm JSON. Empty data always uses the default units.

    Declaration

    property Units: TDefaultUnits read GetUnits write SetUnits;

    Published SDK declaration languages: Pascal.

  • Property name
    OnChange
    Type
    INotifyEvent
    Description

    Event fired when the object or collection changes.

    Declaration

    property OnChange: INotifyEvent read GetOnChange;

    Published SDK declaration languages: Pascal.

Methods

  • Method name
    GetState()
    Type
    procedure
    Description

    Read the opaque JSON and unit metadata as one coherent state.

    Declaration

    procedure GetState(out aData: WideString; out aUnits: TDefaultUnits); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aDataout
    WideString
    Empty text or opaque algorithm JSON with an object root; malformed JSON and non-object roots are rejected. Output parameter populated by the callee.
    aUnitsout
    Unit metadata paired with the opaque algorithm JSON. Output parameter populated by the callee.
  • Method name
    SetState()
    Type
    procedure
    Description

    Replace the opaque JSON and unit metadata atomically, emitting at most one change event. Empty data always selects the default units.

    Declaration

    procedure SetState(const aData: WideString; const aUnits: TDefaultUnits); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aDataconst
    WideString
    Empty text or opaque algorithm JSON with an object root; malformed JSON and non-object roots are rejected.
    aUnitsconst
    Unit metadata paired with the opaque algorithm JSON.
  • Method name
    GetLength()
    Type
    Integer
    Description

    Read a length at a dotted object path, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetLength(const aPath: WideString; aDefault: Integer = 0): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Integer
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested length value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetTime()
    Type
    Double
    Description

    Read a time value at a dotted object path, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetTime(const aPath: WideString; aDefault: Double = 0): Double; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Double
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested time value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetPercent()
    Type
    Integer
    Description

    Read a percentage at a dotted object path, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetPercent(const aPath: WideString; aDefault: Integer = 0): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Integer
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested percent value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetAngle()
    Type
    Double
    Description

    Read an angle at a dotted object path, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetAngle(const aPath: WideString; aDefault: Double = 0): Double; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Double
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested angle value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetPrice()
    Type
    TTcPrice
    Description

    Read a price at a dotted object path, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetPrice(const aPath: WideString; aDefault: TTcPrice = 0): TTcPrice; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    TTcPrice
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested price value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetWeight()
    Type
    TTcWeight
    Description

    Read a weight at a dotted object path, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetWeight(const aPath: WideString; aDefault: TTcWeight = 0): TTcWeight; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    TTcWeight
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested weight value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetValue()
    Type
    Double
    Description

    Read a number, string, or Boolean at a dotted object path or return the supplied default of the selected overload.

    Declaration

    function GetValue(const aPath: WideString; aDefault: Double = 0): Double; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Double
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested value value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetValue()
    Type
    WideString
    Description

    Read a number, string, or Boolean at a dotted object path or return the supplied default of the selected overload.

    Declaration

    function GetValue(const aPath: WideString; const aDefault: WideString): WideString; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefaultconst
    WideString
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested value value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetValue()
    Type
    Boolean
    Description

    Read a number, string, or Boolean at a dotted object path or return the supplied default of the selected overload.

    Declaration

    function GetValue(const aPath: WideString; aDefault: Boolean): Boolean; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Boolean
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested value value, or the supplied default when it is missing or has the wrong type.
  • Method name
    SameAs()
    Type
    Boolean
    Description

    Compare both the opaque JSON and its unit metadata with another algorithm-data object. Two empty states compare equal regardless of unit metadata.

    Declaration

    function SameAs(const aOther: ITcAlgorithmData): Boolean; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aOtherconst
    Algorithm-data object to compare with the current state.
    Returns
    true when both non-empty states have identical opaque JSON and unit metadata, or when both states are empty regardless of their unit metadata.
  • Method name
    Serialize()
    Type
    WideString
    Description

    Serialize the opaque JSON and unit metadata together into one portable value, or return an empty string when the state is empty.

    Declaration

    function Serialize(): WideString; safecall;

    Published SDK declaration languages: Pascal.

    Returns
    The opaque JSON and unit metadata serialized together, or an empty string when the state contains no data.
  • Method name
    Deserialize()
    Type
    procedure
    Description

    Replace the complete state from a valid serialized envelope; an empty value resets the state, while malformed or incomplete envelopes are rejected.

    Declaration

    procedure Deserialize(const aBlob: WideString); safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aBlobconst
    WideString
    Serialized algorithm-data envelope. Empty text resets the state; malformed or incomplete envelopes are rejected.
  • Method name
    GetInteger()
    Type
    Integer
    Description

    Read an integer at a dotted object path or return the supplied default.

    Declaration

    function GetInteger(const aPath: WideString; aDefault: Integer = 0): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aPathconst
    WideString
    Dotted path to a nested object member.
    aDefault
    Integer
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested integer value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetCount()
    Type
    Integer
    Description

    Return the number of items when an RFC 6901 JSON Pointer selects an array; return 0 when it is missing or selects another JSON type.

    Declaration

    function GetCount(const aJsonPointer: WideString): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    Returns
    The number of items when the selected JSON Pointer value is an array; otherwise 0.
  • Method name
    GetLengthByPointer()
    Type
    Integer
    Description

    Read a length by RFC 6901 JSON Pointer, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetLengthByPointer(const aJsonPointer: WideString; aDefault: Integer = 0): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Integer
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested length value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetTimeByPointer()
    Type
    Double
    Description

    Read a time value by RFC 6901 JSON Pointer, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetTimeByPointer(const aJsonPointer: WideString; aDefault: Double = 0): Double; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Double
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested time value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetPercentByPointer()
    Type
    Integer
    Description

    Read a percentage by RFC 6901 JSON Pointer, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetPercentByPointer(const aJsonPointer: WideString; aDefault: Integer = 0): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Integer
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested percent value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetAngleByPointer()
    Type
    Double
    Description

    Read an angle by RFC 6901 JSON Pointer, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetAngleByPointer(const aJsonPointer: WideString; aDefault: Double = 0): Double; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Double
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested angle value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetPriceByPointer()
    Type
    TTcPrice
    Description

    Read a price by RFC 6901 JSON Pointer, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetPriceByPointer(const aJsonPointer: WideString; aDefault: TTcPrice = 0): TTcPrice; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    TTcPrice
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested price value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetWeightByPointer()
    Type
    TTcWeight
    Description

    Read a weight by RFC 6901 JSON Pointer, converted according to the stored unit metadata, or return the supplied default.

    Declaration

    function GetWeightByPointer(const aJsonPointer: WideString; aDefault: TTcWeight = 0): TTcWeight; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    TTcWeight
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested weight value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetIntegerByPointer()
    Type
    Integer
    Description

    Read an integer by RFC 6901 JSON Pointer or return the supplied default.

    Declaration

    function GetIntegerByPointer(const aJsonPointer: WideString; aDefault: Integer = 0): Integer; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Integer
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested integer value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetValueByPointer()
    Type
    Double
    Description

    Read a number, string, or Boolean by RFC 6901 JSON Pointer or return the supplied default of the selected overload.

    Declaration

    function GetValueByPointer(const aJsonPointer: WideString; aDefault: Double = 0): Double; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Double
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested value value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetValueByPointer()
    Type
    WideString
    Description

    Read a number, string, or Boolean by RFC 6901 JSON Pointer or return the supplied default of the selected overload.

    Declaration

    function GetValueByPointer(const aJsonPointer: WideString; const aDefault: WideString): WideString; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefaultconst
    WideString
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested value value, or the supplied default when it is missing or has the wrong type.
  • Method name
    GetValueByPointer()
    Type
    Boolean
    Description

    Read a number, string, or Boolean by RFC 6901 JSON Pointer or return the supplied default of the selected overload.

    Declaration

    function GetValueByPointer(const aJsonPointer: WideString; aDefault: Boolean): Boolean; overload; safecall;

    Published SDK declaration languages: Pascal.

    Parameters
    aJsonPointerconst
    WideString
    RFC 6901 JSON Pointer. An empty pointer selects the document root; ~1 and ~0 escape / and ~.
    aDefault
    Boolean
    Fallback returned when the requested value is missing or has the wrong type.
    Returns
    The requested value value, or the supplied default when it is missing or has the wrong type.

Plugin enums

The startup and file-handler pipeline revolves around

,
,
, and
. In practice:

  • gates which callbacks TonCut may call.
  • is the control channel for success, failure, and file ownership.
  • tells your plugin whether the host is collecting import, export, or result-export extensions.

These types come from SDK/include/pascal/uITcPluginCommon.pas and shape discovery, feature gating, and return values before any model object is touched.

SDK/include/pascal/uITcPluginCommon.pas

Plugin result code returned by most Desktop callbacks to report success, failure, cancellation, and file ownership.

ValueDescription
cprFailedThe callback failed without throwing a plugin-side exception.
cprOKThe callback completed successfully.
cprNotImplementedThe callback exists on the interface but is intentionally unsupported by the plugin.
cprExceptionThe plugin caught an exception and is reporting that explicitly to the host.
cprNothingNo work was performed and no meaningful change was produced.
cprNotInitializedThe callback was reached before the plugin finished its initialization path.
cprMoreDataThe plugin can continue producing data or needs the host to keep consuming output.
cprCancelThe user cancelled the operation in plugin-owned UI.
cprMaybeThe file might belong to the plugin, but the match is not yet definitive.
cprNoThe file does not belong to this plugin.
SDK/include/pascal/uITcPluginCommon.pas

Extension category passed into EnumExtensions so the plugin can advertise import, export, or result-export file types.

ValueDescription
etImportRegister file extensions that the plugin can import into TonCut.
etExportRegister file extensions that the plugin can export from input-side data.
etExportResultsRegister file extensions that the plugin can save from solution or result workflows.
SDK/include/pascal/uITcPluginCommon.pas

Batch-save target mode selected by TonCut for result and plot save workflows.

ValueDescription
stFileThe host expects one output file path.
stFolderThe host expects a destination folder.
SDK/include/pascal/uITcPluginCommon.pas

Feature flag enum used by TTcpFeatures to tell TonCut which callback families are implemented.

ValueDescription
feImportEnables import discovery through EnumExtensions, IsMyFile, and LoadFile.
feExportEnables input-side export through EnumExtensions and SaveFile.
feSaveResultToFileEnables single-sheet result saving through SaveResult.
feBatchSaveResultToFileEnables batch result saving when the host targets one file.
feBatchSaveResultToFolderEnables batch result saving when the host targets a folder.
fePlotEnables single-sheet plotting through Plot.
feBatchPlotEnables whole-solution plotting through BatchPlot.
feSavePlotToFileEnables single-sheet plot-file saving through SavePlot.
feBatchSavePlotToFileEnables batch plot saving when the host targets one file.
feBatchSavePlotToFolderEnables batch plot saving when the host targets a folder.
feConfigureEnables plugin-owned configuration UI through Configure.
feAboutEnables plugin-owned About UI through About.
SDK/include/pascal/uITcPluginCommon.pas

Set-of-enum wrapper around TTcpFeature. Plugins return this from Features to advertise supported callback families.

ValueDescription
feImportEnables import discovery through EnumExtensions, IsMyFile, and LoadFile.
feExportEnables input-side export through EnumExtensions and SaveFile.
feSaveResultToFileEnables single-sheet result saving through SaveResult.
feBatchSaveResultToFileEnables batch result saving when the host targets one file.
feBatchSaveResultToFolderEnables batch result saving when the host targets a folder.
fePlotEnables single-sheet plotting through Plot.
feBatchPlotEnables whole-solution plotting through BatchPlot.
feSavePlotToFileEnables single-sheet plot-file saving through SavePlot.
feBatchSavePlotToFileEnables batch plot saving when the host targets one file.
feBatchSavePlotToFolderEnables batch plot saving when the host targets a folder.
feConfigureEnables plugin-owned configuration UI through Configure.
feAboutEnables plugin-owned About UI through About.

Shared kernel types

Once a plugin starts touching IMaterial, IProject, IFormat, or ISheet, the host model quickly starts depending on shared enums from uICommon.pas. The most common ones are

,
,
,
, and
.

Default algorithm units

is a Pascal record, not a scalar value. Each field selects the interpretation used by the matching typed algorithm-data accessor. The cDefaultUnits constant initializes every field to its enum's Default member.

FieldTypeApplies to
Time
GetTime and GetTimeByPointer
Percent
GetPercent variants
Length
GetLength variants
Field
Area or field values
Angle
GetAngle variants
Price
GetPrice variants
Weight
GetWeight variants

Useful constants from the same unit:

ConstantMeaning
cLengthMultiplier = 100Internal scaling for integer length fields
cFieldMultiplierArea scaling derived from cLengthMultiplier
cRotationUnit = 0.1One TRotation unit equals one tenth of a degree
cRotation90, cRotation180, cRotation270, cRotation360Precomputed rotation constants
cAlgorithmLinear, cAlgorithmAnyShapes, cAlgorithmRectangles, cAlgorithmStripesBuilt-in algorithm names used by materials
clTcNone = -1TTcColor: no color assigned
clTcRandom = -2TTcColor: host derives a stable color from Id

TTcColor is an Integer. An ordinary value is a 24-bit RGB color packed as $RRGGBB (red in bits 16..23, blue in bits 0..7), which is not the VCL TColor byte order. The two negative constants above are the only valid special values. IBand.PreviewColor and IFormat.PreviewColor use it.

These enums come from SDK/include/pascal/uICommon.pas and appear throughout the host data model, especially materials, projects, layouts, and configuration.

SDK/include/pascal/uICommon.pas

Top-level host unit family used when TonCut formats lengths for the UI.

ValueDescription
uMillimetersUse millimeters as the main display unit.
uCentimetersUse centimeters as the main display unit.
uInchesUse inches as the main display unit.
SDK/include/pascal/uICommon.pas

Time units used by typed algorithm-data accessors.

ValueDescription
tuDefaultInterpret the value using the current default time unit.
tuSecondsInterpret the value in seconds.
tuMinutesInterpret the value in minutes.
tuHoursInterpret the value in hours.
tuDaysInterpret the value in days.
SDK/include/pascal/uICommon.pas

Percentage units used by typed algorithm-data accessors.

ValueDescription
puDefaultInterpret the value using the current default percentage unit.
puPercentInterpret the value as a percentage.
SDK/include/pascal/uICommon.pas

Length-specific formatting units used by shared formatters.

ValueDescription
luDefaultUse the current host default length unit.
luMillimetersFormat the value in millimeters.
luCentimetersFormat the value in centimeters.
luInchesFormat the value in inches.
luMicrometersFormat the value in micrometers.
SDK/include/pascal/uICommon.pas

Area or field units used by shared formatters.

ValueDescription
fuDefaultUse the current host default field unit.
fuSquareMillimetersFormat the value in square millimeters.
fuSquareCentimetersFormat the value in square centimeters.
fuSquareMetersFormat the value in square meters.
fuSquareInchesFormat the value in square inches.
fuSquareFeetFormat the value in square feet.
SDK/include/pascal/uICommon.pas

Angle units used by shared formatters.

ValueDescription
auDefaultUse the current host default angle unit.
auDegreesFormat the value in degrees.
auRadiansFormat the value in radians.
SDK/include/pascal/uICommon.pas

Price units used by typed algorithm-data accessors.

ValueDescription
pruDefaultInterpret the value using the current default price unit.
SDK/include/pascal/uICommon.pas

Weight units used by typed algorithm-data accessors.

ValueDescription
wuDefaultInterpret the value using the current default weight unit.
wuMilligramsInterpret the value in milligrams.
wuGramsInterpret the value in grams.
wuKilogramsInterpret the value in kilograms.
wuTonsInterpret the value in metric tons.
wuOuncesInterpret the value in ounces.
wuPoundsInterpret the value in pounds.
wuShortTonsInterpret the value in US short tons.
wuStonesInterpret the value in stones.
wuTroyOuncesInterpret the value in troy ounces.
SDK/include/pascal/uICommon.pas

Host rule for how pieces are labeled in output and UI surfaces.

ValueDescription
piDescriptionOnlyShow only the piece description.
piIdentifierAndDescriptionShow both the identifier and the description.
piBarcodeAndDescriptionShow barcode data together with the description.
SDK/include/pascal/uICommon.pas

Host rule for how stock sheets are labeled in output and UI surfaces.

ValueDescription
siDescriptionOnlyShow only the stock description.
siIdentifierAndDescriptionShow both the stock identifier and the description.
SDK/include/pascal/uICommon.pas

Material family that determines whether the stock behaves as linear or area-based input.

ValueDescription
mkUnknownThe material kind is not yet known.
mk1DLinear stock such as bar, profile, or running-meter material.
mk2DSheet stock such as board, panel, or plate material.
SDK/include/pascal/uICommon.pas

Set-of-enum wrapper around TMaterialKind, used by plotter metadata and capability filters.

ValueDescription
mkUnknownThe material kind is not yet known.
mk1DLinear stock such as bar, profile, or running-meter material.
mk2DSheet stock such as board, panel, or plate material.
SDK/include/pascal/uICommon.pas

Priority value attached to a project.

ValueDescription
prpDefaultUse the default project priority.
prpNormalStandard processing priority.
prpHighElevated processing priority.
prpCriticalHighest processing priority.
SDK/include/pascal/uICommon.pas

State machine value stored on a project.

ValueDescription
prsNewThe project is newly created.
prsReadyThe project is ready for work.
prsPendingThe project is waiting for a later step or approval.
prsDoneThe project is completed.
prsCanceledThe project was cancelled.
prsDeletedThe project is marked as deleted.
SDK/include/pascal/uICommon.pas

Per-sheet or per-result state flag used by TonCut to mark completed output actions.

ValueDescription
sPlottedThe item was already plotted.
sSavedThe item was already saved.
SDK/include/pascal/uICommon.pas

Set-of-enum wrapper around TStatus, used when multiple completion flags can apply at once.

ValueDescription
sPlottedThe item was already plotted.
sSavedThe item was already saved.
SDK/include/pascal/uICommon.pas

Mirror direction used on placed formats and plot output transforms.

ValueDescription
mHorizontalMirror across the horizontal axis.
mVerticalMirror across the vertical axis.
SDK/include/pascal/uICommon.pas

Set-of-enum wrapper around TMirror, allowing both mirror directions to be expressed together.

ValueDescription
mHorizontalMirror across the horizontal axis.
mVerticalMirror across the vertical axis.
SDK/include/pascal/uICommon.pas

Machine capability mode used to describe strip-cut-only devices.

ValueDescription
scNoneThe device is not limited to strip cutting.
scByLengthStrip cutting is performed along the material length.
scByWidthStrip cutting is performed along the material width.
SDK/include/pascal/uICommon.pas

Order in which stock items are selected; it corresponds to the engine setting stockOrder.order.direction. No plugin interface method takes or returns it, but it is part of the shared uICommon.pas contract, and code that switches over it must handle every value.

ValueDescription
soFromLargeStock is sorted by size, from larger to smaller.
soFromSmallStock is sorted by size, from smaller to larger.
soRandomStock is taken in random order.
soCustomCustom stock order (TSheetOrder value soCustom).
soAllPermutationsThe optimizer searches alternative stock-item orders and keeps the best result. Appended after soCustom as ordinal 4 in engine version 24; the earlier ordinals did not change.
SDK/include/pascal/uICommon.pas

Quality level of shape path simplification, stored on a material (IMaterial.QualityLevel); it corresponds to the engine setting qualityLevel.

ValueDescription
qlPrecissionHighest quality, but slowest.
qlCompromiseGood quality and speed.
qlSpeedLowest quality, but fastest.
SDK/include/pascal/uICommon.pas

Edging method stored on a device (IDevice.EdgingCuts); it corresponds to the engine setting edgingCuts.

ValueDescription
ecOptimalOptimal edging method; this is the engine default.
ecHorizontalFirstThe horizontal edges are cut off first, followed by the vertical edges.
ecVerticalFirstThe vertical edges are cut off before the horizontal edges.
SDK/include/pascal/uICommon.pas

Edging method for the top and left edges, stored on a device (IDevice.OriginEdgingCuts); it corresponds to the engine setting originEdgingCuts.

ValueDescription
oecDefaultNothing changes; edges are cut off as set by IDevice.EdgingCuts.
oecTwoFullCutsThe top and left edges are cut off as full cuts, from edge to edge.
SDK/include/pascal/uICommon.pas

Direction of the first cut, stored on a device (IDevice.FirstCutDirection); it corresponds to the engine setting firstCutDirection. It is overwritten when strip cutting is turned on.

ValueDescription
cdHorizontalThe first cut is horizontal, along the length of the stock item.
cdVerticalThe first cut is vertical, along the width of the stock item.
cdAnyThe algorithm decides.
SDK/include/pascal/uICommon.pas

Grain or ornament direction used by TonCut when orienting stock and parts.

ValueDescription
oNoneThe material has no relevant ornament direction.
oByWidthThe ornament runs along the width.
oByLengthThe ornament runs along the length.
SDK/include/pascal/uICommon.pas

Set-of-enum wrapper around TOrnament, used when multiple ornament orientations are allowed.

ValueDescription
oNoneThe material has no relevant ornament direction.
oByWidthThe ornament runs along the width.
oByLengthThe ornament runs along the length.
SDK/include/pascal/uICommon.pas

Set-of-enum configuration scopes used during backup and restore operations.

ValueDescription
cpDataa option for nfiguration parts.
cpConfignfig option for nfiguration parts.
cpPathshs option for nfiguration parts.
cpProfilesiles option for nfiguration parts.
cpInternalsinternals option for nfiguration parts.

Plotting and geometry

Plot-capable plugins and result exporters should know the plotting and geometry enums up front, especially

,
,
,
, and
.

Plot-capable plugins and geometry-heavy exporters should start with these shared plotting, movement, and shape enums.

SDK/include/pascal/uICommon.pas

Plotter or machine family advertised through ITcPlotterInfo.

ValueDescription
ptUnknownThe plugin does not describe a specific plotter type.
ptCNCThe output targets a CNC-style machine.
SDK/include/pascal/uICommon.pas

Mapping between TonCut space and the physical machine axes.

ValueDescription
adWestAxis points toward the west or left side.
adNorthAxis points toward the north or top side.
adEastAxis points toward the east or right side.
adSouthAxis points toward the south or bottom side.
SDK/include/pascal/uICommon.pas

Preferred movement direction used by plotter output helpers.

ValueDescription
mdAlongXMovement proceeds along the X axis.
mdAlongYMovement proceeds along the Y axis.
mdAnyMovement can proceed freely in any direction.
SDK/include/pascal/uICommon.pas

Shape family used by custom geometry, slants, and arbitrary-path pieces.

ValueDescription
stNoneNo shape is defined.
stRectangleSimple rectangle.
stLinearLinear segmented shape.
stAnyArbitrary path shape.
stSlantRectangleRectangle with a slanted edge.
stLL-shaped piece.
stRightTriangleRight triangle.
stSlopeRectangleRectangle with slope geometry.
stTrapezoidTrapezoid.
stOctagonOctagon.
stEllipseEllipse.
stCircleCircle.
stHoopHoop or ring shape.
SDK/include/pascal/uIShape.pas

Parameter kind used by shape metadata helpers such as GetParamInfo.

ValueDescription
sptLengthThe parameter value represents a length-like quantity.
sptAngleThe parameter value represents an angle.
sptIntThe parameter value is a plain integer.
sptEnumThe parameter value is an enumeration-backed selection.
SDK/include/pascal/uICommon.pas

Solution cut geometry kind.

ValueDescription
ckLineThe cut is a straight line.
ckCurveThe cut is a curve.
SDK/include/pascal/uICommon.pas

Measurement mode used by shapes and cutters when switching between net and gross sizes.

ValueDescription
cdNetUse the net, finished dimension.
cdGrossUse the gross dimension including allowances.
SDK/include/pascal/uICommon.pas

Reference rule used by slanted-shape parameters and measurement helpers.

ValueDescription
smFromMiddleToLeftMeasure from the midpoint toward the left side.
smFromMiddleToRightMeasure from the midpoint toward the right side.
smFromLeftMeasure directly from the left side.
smFromRightMeasure directly from the right side.

Was this page helpful?