Integration

WSi4 can be integrated in third-party software, e.g. ERP systems.

An integration typically covers one or more of the following topics:

Depending on the integration, one or more of the topics above can be covered. One of the following approaches is typically followed:

  1. WSi4 standalone; manual data transmission to the ERP (III only)

  2. ERP calls WSi4; WSi4 reports back (II + III)

In both cases the parameter transfer (I) can be done in advance (optional).

Naming conventions

Depending on the platform the WSi4 GUI binary name can vary. Typical names are wsi4, wsi4.exe, or wsi4.AppImage. In this description wsi4 is used.

Passing Data to WSi4

Database Table Interface

Database tables can be exchanged manually (e.g. via JSON or CSV files) or semi-automatically via HTTP requests.

Certain tables refer to other tables ("foreign keys"). The structure of all tables and the relationships between tables are listed in the table reference documentation which can be found here.

Typical applications for a parameter exchange are sheet related or tube related tables.

It is possible to populate several tables from a single CSV where the CSV can be considered an inner join of the associated tables. An example would be a combined import of the sheet table and the sheetPrice table.

Example: Sheet table import

A minimal data exchange covers the following tables:

This example does not cover e.g. technology tables that refer to the sheetMaterial table. These references are edited manually after the initial sheet table import.

Custom Bend Deductions

WSi4 provides default-tables for bend-die-groups and bend-deductions.

To use custom tables for bend-die-groups and bend-deductions the following data needs to be provided:

There may be other tables that refer to or are referred by one or more of the tables listed above. See the respective table documentation for a full list of dependencies for each table.

The definitions of bend deduction values depend on the angle.
Bend deduction definition for angles below and above 90°

image/svg+xml D D E E L

Bend deduction value for angles < 90°: L - 2D

Bend deduction value for angles > 90°: L - 2E

Bend deduction values for 90° are mandatory.

As the definition for bend deductions varies for angles below and above 90° there must be a value for each unique tuple (bendMaterialId, upperDieGroupId, lowerDieGroupId, thickness).

If the update of any table leads to an inconsistent database state, no change will be committed. The database state will remain unchanged. The process will exit with a non-zero return code.

Headless Database Synchronization

The database can be updated automatically via wsi4cli. New database tables need to be stored in a directory in JSON (preferred) or CSV (error-prone) format - one file per table.

Each file name must match the associated table’s type (e.g. /path/to/sheetPrice.json). The table type and content description can be found in the Table Reference.

The CSV content is expected to be UTF-8 encoded.

Usage
./wsi4cli --key <key> [--db-name <db-name>] --module "opt/cli/dbsync.js" -- [--mode <update / upsert / replace>] /path/to/dir
  • --key <key>: (wsi4cli option) WSi4 license key

  • [--db-name <db-name>]: (wsi4cli option) Database name (required if more than one database is associated with <key>)

  • --mode: (module option) How the new tables should be incorporated (see examples below)

  • path/to/dir Filesystem path to the input directory

wsi4cli options and module options must be separated via --.

All mode options are mutually exclusive.

Example 1

Implicit (default) update mode. Only existing table rows are updated. New table rows are discarded.

The argument separator -- can be ommited.

./wsi4cli --key <key> --db-name <db-name> --module "opt/cli/dbsync.js" -- /path/to/dir
Example 2

Explicit update mode. Only existing table rows are updated. New table rows are discarded.

The argument separator '--' is mandatory.

./wsi4cli --key <key> --db-name <db-name> --module "opt/cli/dbsync.js" -- --mode update /path/to/dir
Example 3

Use update-or-insert (upsert) mode. Existing table rows are updated. New table rows are added. Existing, unaffected table rows are preserved.

The argument separator '--' is mandatory.

./wsi4cli --key <key> --db-name <db-name> --module "opt/cli/dbsync.js" -- --mode upsert /path/to/dir
Example 4

Use replacement mode. Each corresponding existing table is replaced entirely by the new table.

The argument separator '--' is mandatory.

./wsi4cli --key <key> --db-name <db-name> --module "opt/cli/dbsync.js" -- --mode replace /path/to/dir
Pre-conditions
  • The original database state must be consistent (i.e. no database errors must be present)

  • The submitted directory must exist

  • Each file name must match the associated table’s type name (see Table Reference)

  • All files must be readable

  • All files must conform to the respective JSON or CSV specifications (see Table Reference)

  • Write access must be granted for the provided license key and database name

  • Input files must be UTF-8 encoded

Post-conditions
  • If any change leads to new table errors, then no change will be committed. The database state will remain unchanged.

App Input JSON

Input data can be submitted to WSi4 via positional arguments or via a JSON input file:

$ ./wsi4 <path/to/input.step> [...]
$ ./wsi4 --input-json <path/to/json>

The input JSON allows for passing of various data:

  • CAD input (+ extra data, e.g. multiplicity)

  • ERP export configuration

The input JSON can also be read from the standard input (stdin) by setting the path to -.

The reference documentation for the input JSON interface can be found here.

Versioning

All interfaces of the JSON input are versioned (examples below). The version is mandatory and must be specified by providing the serialization_version property to the first instance of each interface type. Subsequent instances of this property are ignored.

Examples

File input via file system

Input data can be submitted via file paths.

{
  "inputFileEntries": [
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/stepfiles/baugruppe1.step",
          "serialization_version": 0
        }
      },
      "serialization_version": 0
    },
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/dxffiles/01.dxf"
        }
      }
    }
  ],
  "serialization_version": 0
}

WSi4 will then attempt to read the files from the file system. Unreadable input files are considered an error and trigger an exception that aborts the import.

File input via file content

Input data can be submitted by submitting the actual file content. The file content can be plain text or Base64-encoded text for binary data.

{
  "inputFileEntries": [
    {
      "dataSource": {
        "type": "fileContent",
        "content": {
          "contentType": "plainText",
          "data": "0\nSECTION\n2\nHEADER\n9\n$ACADVER\n1\nAC1009\n0\nENDSEC\n0\nSECTION\n2\nTABLES\n0\nTABLE\n2\nLTYPE\n70\n2\n0\nLTYPE\n2\nCONTINUOUS\n70\n0\n3\nSolid line\n72\n65\n73\n0\n40\n0.0\n0\nLTYPE\n2\nHIDDEN\n70\n0\n3\n _ _ _ _ _ _ _ _ _ _ _\n72\n65\n73\n2\n40\n0.375\n49\n0.25\n49\n-0.125\n0\nENDTAB\n0\nTABLE\n2\nLAYER\n70\n7\n0\nLAYER\n2\nBLACK\n70\n0\n62\n1\n6\nCONTINUOUS\n0\nLAYER\n2\nYELLOW\n70\n0\n62\n2\n6\nCONTINUOUS\n0\nLAYER\n2\nGREEN\n70\n0\n62\n3\n6\nCONTINUOUS\n0\nLAYER\n2\nCYAN\n70\n0\n62\n4\n6\nCONTINUOUS\n0\nLAYER\n2\nBLUE\n70\n0\n62\n5\n6\nCONTINUOUS\n0\nLAYER\n2\nMAGENTA\n70\n0\n62\n6\n6\nCONTINUOUS\n0\nLAYER\n2\nWHITE\n70\n0\n62\n7\n6\nCONTINUOUS\n0\nENDTAB\n0\nENDSEC\n0\nSECTION\n2\nBLOCKS\n0\nENDSEC\n0\nSECTION\n2\nENTITIES\n0\nLINE\n6\nCONTINUOUS\n8\nWHITE\n10\n50.0\n20\n50.0\n30\n0.0\n11\n-50.0\n21\n50.0\n31\n0.0\n0\nLINE\n6\nCONTINUOUS\n8\nWHITE\n10\n-50.0\n20\n50.0\n30\n0.0\n11\n-50.0\n21\n-50.0\n31\n0.0\n0\nLINE\n6\nCONTINUOUS\n8\nWHITE\n10\n-50.0\n20\n-50.0\n30\n0.0\n11\n50.0\n21\n-50.0\n31\n0.0\n0\nLINE\n6\nCONTINUOUS\n8\nWHITE\n10\n50.0\n20\n-50.0\n30\n0.0\n11\n50.0\n21\n50.0\n31\n0.0\n0\nENDSEC\n0\nEOF\n",
          "serialization_version": 0
        }
      },
      "serialization_version": 0
    },
    {
      "dataSource": {
        "type": "fileContent",
        "content": {
          "contentType": "base64",
          "data": "MA0KU0VDVElPTg0KMg0KSEVBREVSDQo5DQokQUNBRFZFUg0KMQ0KQUMxMDA5DQowDQpFTkRTRUMNCjANClNFQ1RJT04NCjINClRBQkxFUw0KMA0KVEFCTEUNCjINCkxUWVBFDQo3MA0KMg0KMA0KTFRZUEUNCjINCkNPTlRJTlVPVVMNCjcwDQowDQozDQpTb2xpZCBsaW5lDQo3Mg0KNjUNCjczDQowDQo0MA0KMC4wDQowDQpMVFlQRQ0KMg0KSElEREVODQo3MA0KMA0KMw0KIF8gXyBfIF8gXyBfIF8gXyBfIF8gXw0KNzINCjY1DQo3Mw0KMg0KNDANCjAuMzc1DQo0OQ0KMC4yNQ0KNDkNCi0wLjEyNQ0KMA0KRU5EVEFCDQowDQpUQUJMRQ0KMg0KTEFZRVINCjcwDQo3DQowDQpMQVlFUg0KMg0KQkxBQ0sNCjcwDQowDQo2Mg0KMQ0KNg0KQ09OVElOVU9VUw0KMA0KTEFZRVINCjINCllFTExPVw0KNzANCjANCjYyDQoyDQo2DQpDT05USU5VT1VTDQowDQpMQVlFUg0KMg0KR1JFRU4NCjcwDQowDQo2Mg0KMw0KNg0KQ09OVElOVU9VUw0KMA0KTEFZRVINCjINCkNZQU4NCjcwDQowDQo2Mg0KNA0KNg0KQ09OVElOVU9VUw0KMA0KTEFZRVINCjINCkJMVUUNCjcwDQowDQo2Mg0KNQ0KNg0KQ09OVElOVU9VUw0KMA0KTEFZRVINCjINCk1BR0VOVEENCjcwDQowDQo2Mg0KNg0KNg0KQ09OVElOVU9VUw0KMA0KTEFZRVINCjINCldISVRFDQo3MA0KMA0KNjINCjcNCjYNCkNPTlRJTlVPVVMNCjANCkVORFRBQg0KMA0KRU5EU0VDDQowDQpTRUNUSU9ODQoyDQpCTE9DS1MNCjANCkVORFNFQw0KMA0KU0VDVElPTg0KMg0KRU5USVRJRVMNCjANCkxJTkUNCjYNCkNPTlRJTlVPVVMNCjgNCldISVRFDQoxMA0KNTAuMA0KMjANCjUwLjANCjMwDQowLjANCjExDQotNTAuMA0KMjENCjUwLjANCjMxDQowLjANCjANCkxJTkUNCjYNCkNPTlRJTlVPVVMNCjgNCldISVRFDQoxMA0KLTUwLjANCjIwDQo1MC4wDQozMA0KMC4wDQoxMQ0KLTUwLjANCjIxDQotNTAuMA0KMzENCjAuMA0KMA0KTElORQ0KNg0KQ09OVElOVU9VUw0KOA0KV0hJVEUNCjEwDQotNTAuMA0KMjANCi01MC4wDQozMA0KMC4wDQoxMQ0KNTAuMA0KMjENCi01MC4wDQozMQ0KMC4wDQowDQpMSU5FDQo2DQpDT05USU5VT1VTDQo4DQpXSElURQ0KMTANCjUwLjANCjIwDQotNTAuMA0KMzANCjAuMA0KMTENCjUwLjANCjIxDQo1MC4wDQozMQ0KMC4wDQowDQpFTkRTRUMNCjANCkVPRg0K"
        }
      }
    }
  ],
  "serialization_version": 0
}

The example shows the file content of a DXF file in plain text.

File input with extra data

For each entry in inputFileEntries additional data can be provided:

{
  "inputFileEntries": [
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/stepfiles/baugruppe1.step",
          "serialization_version": 0
        }
      },
      "importId": "part-0",
      "articleName": "Part 0",
      "multiplicity": 42,
      "sheetMaterialId": "1.4301",
      "serialization_version": 0
    },
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/dxffiles/05.dxf"
        }
      },
      "importId": "part-1",
      "articleName": "Part 1",
      "sheetId": "part-number-3000"
    }
  ],
  "serialization_version": 0
}
Key Description

importId

Arbitrary ID that will be part of the associated import node in the resulting JSON.

Defaults to an empty string.

articleName

Name for the associated article.

Defaults to the STEP product name (if any) or a generated name. The generated name is internationalized and an implementation detail.

multiplicity

Quantity for the article.

Defaults to 1.

sheetId

ID of the sheet that should be used. In case of an assembly tree the sheet will be tried for each component. The sheet will only be used for compatible components. For 2D input this also defines the sheet thickness.

If used, the sheet ID must reference an entry in WSi4's sheet table.

By default no sheet is used.

sheetMaterialId

ID of the sheet material that should be used. In case of an assembly tree the material will be tried for each component. The material will only be used for compatible component.

If used, the sheet material ID must reference an entry in WSi4's sheetMaterial table.

By default no sheet material is used.

tubeId

ID of the tube that should be used. In case of an assembly tree the tube will be tried for each component. The tube will only be used for compatible component. For 2D input this also defines the tube thickness.

If used, the tube ID must reference an entry in WSi4's tube table.

By default no tube is used.

tubeMaterialId

ID of the tube material that should be used. In case of an assembly tree the material will be tried for each component. The material will only be used for compatible component.

If used, the tube material ID must reference an entry in WSi4's tubeMaterial table.

By default no tube material is used.

tubeSpecificationId

ID of the tube specification that should be used. In case of an assembly tree the specification will be tried for each component. The specification will only be used for compatible component.

If used, the tube specification ID must reference an entry in WSi4's tubeSpecification table.

By default no tube specification is used.

sheetThickness

Thickness of parts for 2D input (DXF or GEO). If sheetId is set, then the sheet’s thickness is used instead and sheetThickness is discarded.

Defaults to 1.

Export configuration (file system; BOM JSON)

The resulting JSON output can be passed to the ERP via file system or via HTTP POST request.

{
  "inputFileEntries": [
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/stepfiles/baugruppe1.step",
          "serialization_version": 0
        }
      },
      "serialization_version": 0
    }
  ],
  "erpExportConfig": {
    "type": "bom",
    "content": {
      "bomVersion": "v0",
      "filePath": "/tmp/erp.json",
      "exportFlags": [
        "dxf",
        "stepInputAssembly"
      ],
      "erpExportModeEnabled": true,
      "serialization_version": 0
    }
  },
  "serialization_version": 1
}
BOM Export Flags

The available export flags are defined here.

BomExportFlag Description

attachments

User-defined attachments; exported for BomComponent or BomWorkStep

bendDrawingHtml

Bend drawing document as self-contained HTML; exported for BomWorkStep

dxf

DXF file; exported for BomWorkStep

geo

GEO file; exported for BomWorkStep

pngInputAssembly

Rendering of an input geometry; exported for BomComponent

pngGeneratedAssembly

Rendering of a generated 3D geometry; exported for BomWorkStep

stepInputAssembly

STEP of a 3D input geometry; exported for BomComponent

stepGeneratedAssembly

STEP of a generated 3D geometry; exported for BomWorkStep

svg

SVG file; exported for BomWorkStep

undirectedConnectedComponentGraphs

Serializations for undirected connected components

gltfInputAssembly

Binary GLTF data for 3D input geometry; exported for BomComponent

gltfGeneratedAssembly

Binary GLTF data for generated 3D geometry; exported for BomWorkStep

Export configuration (file system; Graph JSON)

The resulting JSON output can be passed to the ERP via file system or via HTTP POST request.

v1
{
  "inputFileEntries": [
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/stepfiles/baugruppe1.step",
          "serialization_version": 0
        }
      },
      "serialization_version": 0
    }
  ],
  "erpExportConfig": {
    "type": "tsGraphRep",
    "content": {
      "filePath": "/tmp/erp.json",
      "resourceTypes": [],
      "erpExportModeEnabled": true,
      "serialization_version": 0
    }
  },
  "serialization_version": 1
}
v0
{
  "inputFileEntries": [
    {
      "dataSource": {
        "type": "filePath",
        "content": {
          "path": "/testresources/stepfiles/baugruppe1.step",
          "serialization_version": 0
        }
      },
      "serialization_version": 0
    }
  ],
  "erpExportConfig": {
    "filePath": "/tmp/erp.json",
    "resourceTypes": [
      "attachments",
      "dxf",
      "geo",
      "png",
      "stepGenerated",
      "stepInput",
      "svg",
      "undirectedConnectedComponentGraphs"
    ],
    "erpExportModeEnabled": true,
    "serialization_version": 0
  },
  "serialization_version": 0
}

Setting of the following properties results in an ERP export button in the WSi4 GUI that will trigger an export to the respective location.

Key Description

filePath

The export results in a JSON that is written to the provided file location

serverUrl

The export results in a JSON that is sent to the provided URL via an HTTP POST request

The GUI’s behaviour can be changed to a more ERP export centric workflow by setting the property erpExportModeEnabled to true. If enabled, the ERP export is the only way to lead to application termination with exit code 0.

Resource types

It is possible to define the resource types that should be added to the resulting JSON:

ResourceType Description

attachments

File attachments associated with nodes

dxf

Generated DXF files for nodes associated with sheet metal parts

geo

Generated GEO files for nodes associated with sheet metal parts or tube parts

png

3D renderings for nodes with associated BREP(s)

stepGenerated

Generated STEP for applicable nodes

stepInput

Imported STEP for applicable nodes

svg

2D rendering for nodes assocaited with sheet metal parts

undirectedConnectedComponentGraphs

.wsi4 files for undirected connected components of the graph

An empty list can be used to suppress all resources.

Changelog

WSi4 version Description

1.24

Add support for BOM export (AppInput serialization_version 0 → 1)

1.23

Initial implementation

Reading Data from WSi4

There are two main interfaces for structured project export:

  1. BOM JSON - Bill of materials (multi-level; includes work steps)

  2. Graph JSON - DiGraph representation (defined by nodes and arcs)

If possible, the BOM JSON should be used for new integrations due to its simplified structure. Both interfaces types are fully supported. New features are added to both interfaces.

BOM JSON

The Bom is a multi-level bill of materials. The central building blocks are BomComponents. Each BomComponent can be considered a regular article of the project and entails a list of BomWorkSteps.

The Bom contains various information for all underlying components, e.g. the structure of each assembly, manufacturing times, material costs, selling prices, material consumptions, dimensions, and masses.

Extra files are created on demand. It is possible to create 3D renderings (PNG), STEP files, 2D CAD files (DXF or GEO), or SVG. All files are embedded in the Bom structure. Each Bom is self-contained and does not refer to any other external file.

BomComponent

Each BomComponent has a descriptor. This descriptor is used to create references between components. The descriptor is only valid within one BOM structure, i.e. descriptors from different BOM structures must not be mixed, even if the BOM structures refer to the same underlying project. The descriptor’s exact characters are an implementation detail and no further assumptions must be based on it.

There are different types of BomComponent s. The type is defined by the details property’s type.

  • Assemblies

  • Sheet metal parts

  • Tube parts

  • Purchase parts

New types are not considered a breaking change.

For sheet metal parts and tube parts the details also contain the material consumption (if any).

A BomComponent entails a list of BomSourceComponents. A BomSourceComponent is a reference to another BomComponent that is required to manufacture an assembly. For single parts the list is empty.

Examples

Minimal example

The WSi4 project consists of two input files:

  1. STEP file (assembly that consists of two sheet metal parts)

  2. DXF file (single sheet metal part)

The project is exported without any prior editing, so many optional properties are not populated (cf. extended example).

JSON
{
	"creator": "WSi4cli (1.30.0)",
	"version": "v0",
	"projectName": "Flat part",
	"userData": {},
	"components": [
		{
			"componentDescriptor": "c0",
			"name": "Flat part",
			"quantity": 1,
			"isImportComponent": true,
			"sourceComponents": [],
			"targetComponentDescriptors": [],
			"dimensions3": {
				"x": 114.99999999999997,
				"y": 114.99999999999997,
				"z": 2
			},
			"sellingPrices": [],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 2,
					"area2": 10056.82713276347,
					"dimensions2": {
						"x": 114.99999999999997,
						"y": 114.99999999999997
					},
					"millTestReportRequired": false
				}
			},
			"workSteps": [
				{
					"processType": "sheetCutting",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 425.68580456141683,
							"contourCount": 2
						}
					}
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"importId": ""
		},
		{
			"componentDescriptor": "c2",
			"name": "Baugruppe1",
			"quantity": 1,
			"isImportComponent": true,
			"sourceComponents": [
				{
					"componentDescriptor": "c3",
					"quantity": 1
				},
				{
					"componentDescriptor": "c4",
					"quantity": 1
				}
			],
			"targetComponentDescriptors": [],
			"dimensions3": {
				"x": 202.26983464805835,
				"y": 305.4179946790155,
				"z": 116.75816771365137
			},
			"sellingPrices": [],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"importId": ""
		},
		{
			"componentDescriptor": "c3",
			"name": "Teil3^Baugruppe1",
			"quantity": 1,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c2"
			],
			"dimensions3": {
				"x": 98.09115808861327,
				"y": 90.46354871653824,
				"z": 184.75578379481226
			},
			"sellingPrices": [],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 4,
					"area2": 25705.578528991202,
					"dimensions2": {
						"x": 184.75574379481225,
						"y": 181.72188256199775
					},
					"millTestReportRequired": false
				}
			},
			"workSteps": [
				{
					"processType": "sheetCutting",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 984.0058819823421,
							"contourCount": 5
						}
					}
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 4.599999999999994,
									"resultingInnerRadius": 4.599999999999994
								}
							]
						}
					}
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		},
		{
			"componentDescriptor": "c4",
			"name": "Teil2",
			"quantity": 1,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c2"
			],
			"dimensions3": {
				"x": 202.26983464805835,
				"y": 175.84328283896113,
				"z": 102.29527041616605
			},
			"sellingPrices": [],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 6,
					"area2": 67326.23052733505,
					"dimensions2": {
						"x": 443.2988721589767,
						"y": 329.79818591563026
					},
					"millTestReportRequired": false
				}
			},
			"workSteps": [
				{
					"processType": "sheetCutting",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 2253.0799443801925,
							"contourCount": 5
						}
					}
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999998,
									"resultingInnerRadius": 0.7999999999999998
								},
								{
									"bendDescriptor": 1,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999998,
									"resultingInnerRadius": 0.7999999999999998
								},
								{
									"bendDescriptor": 2,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999705,
									"resultingInnerRadius": 0.7999999999999705
								},
								{
									"bendDescriptor": 3,
									"bendAngle": -1.0078996598309615,
									"constructedInnerRadius": 0.7999999999998977,
									"resultingInnerRadius": 0.7999999999998977
								},
								{
									"bendDescriptor": 4,
									"bendAngle": -1.4912289756594594,
									"constructedInnerRadius": 0.7999999999998861,
									"resultingInnerRadius": 0.7999999999998861
								}
							]
						}
					}
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		}
	],
	"graphSerializations": []
}
Extended example

The WSi4 project consists of the same STEP input file as the minimal example.

Additionally, the following data is now populated:

  • User-defined part number (BomComponent)

  • User-defined drawing number (BomComponent)

  • User-defined revision number (BomComponent)

  • User-defined article comment (BomComponent)

  • User-defined cost center (BomWorkStep)

  • User-defined work step comment (BomWorkStep)

  • Fixed part rotation (BomWorkStep details)

  • Additional user-defined process deburring (sheet metal parts) (BomWorkStep)

  • Additional user-defined process powder-coating (joining) (BomWorkStep)

A sheet material and sheet is assigned to all sheet metal parts so the material consumption for each sheet metal part is defined.

JSON
{
	"creator": "WSi4cli (1.30.0)",
	"version": "v0",
	"projectName": "user-defined project name",
	"userData": {},
	"components": [
		{
			"componentDescriptor": "c0",
			"name": "Baugruppe1",
			"quantity": 10,
			"isImportComponent": true,
			"sourceComponents": [
				{
					"componentDescriptor": "c1",
					"quantity": 1
				},
				{
					"componentDescriptor": "c2",
					"quantity": 1
				}
			],
			"targetComponentDescriptors": [],
			"dimensions3": {
				"x": 202.26983464805835,
				"y": 305.4179946790155,
				"z": 116.75816771365137
			},
			"sellingPrices": [
				{
					"scaleValue": 10,
					"unitPrice": 47.65
				}
			],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"costCenter": "3400",
					"comment": "user-defined-comment-0",
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				},
				{
					"processType": "powderCoating",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "coating",
						"content": {
							"coatingAreaPerPart": 203411.7741869119,
							"coatingId": "coating"
						}
					},
					"costCenter": "6300",
					"comment": "user-defined-comment-9",
					"setupTime": 3600,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 137.5,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"comment": "user-defined comment 2",
			"importId": "",
			"mass": 3.9333587163214676,
			"externalPartNumber": "user-defined part number 2",
			"externalDrawingNumber": "user-defined drawing number 2",
			"externalRevisionNumber": "user-defined revision number 2"
		},
		{
			"componentDescriptor": "c1",
			"name": "Teil3^Baugruppe1",
			"quantity": 10,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c0"
			],
			"dimensions3": {
				"x": 98.09115808861327,
				"y": 90.46354871653824,
				"z": 184.75578379481226
			},
			"sellingPrices": [
				{
					"scaleValue": 10,
					"unitPrice": 7.35
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 4,
					"area2": 25567.546513370617,
					"dimensions2": {
						"x": 184.75574379481225,
						"y": 180.68962680515145
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000x1500-1.0038-hot-rolled-mill-finish-4.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.005681677002971248,
						"grossConsumptionSheetsPerPart": 0.008250840248458867,
						"netConsumptionMassPerPart": 0.8028209605198374,
						"grossConsumptionMassPerPart": 1.165843727107238,
						"materialCostPerPart": 1.0201132612188333,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCuttingN2",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 981.9892297548203,
							"contourCount": 5,
							"fixedRotations": [
								90,
								270
							]
						}
					},
					"costCenter": "1100",
					"setupTime": 540,
					"unitTimePerPart": 15.34366750450018,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 0.590731198923257
				},
				{
					"processType": "automaticMechanicalDeburring",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "mechanicalDeburring",
						"content": {
							"doubleSided": false
						}
					},
					"costCenter": "3000",
					"comment": "user-defined-comment-7",
					"setupTime": 60,
					"unitTimePerPart": 15.542068880415451,
					"materialCostPerPart": 0,
					"setupCost": 1.0083333333333333,
					"unitCostPerPart": 0.261193102018093
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 4.599999999999994,
									"resultingInnerRadius": 4.6
								}
							]
						}
					},
					"costCenter": "400",
					"comment": "user-defined-comment-1",
					"setupTime": 528,
					"unitTimePerPart": 12,
					"materialCostPerPart": 0,
					"setupCost": 10.970666666666666,
					"unitCostPerPart": 0.24933333333333335
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"comment": "user-defined comment 0",
			"mass": 0.8028209605198374,
			"externalPartNumber": "user-defined part number 0",
			"externalDrawingNumber": "user-defined drawing number 0",
			"externalRevisionNumber": "user-defined revision number 0"
		},
		{
			"componentDescriptor": "c2",
			"name": "Teil2",
			"quantity": 10,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c0"
			],
			"dimensions3": {
				"x": 202.26983464805835,
				"y": 175.84328283896113,
				"z": 102.29527041616605
			},
			"sellingPrices": [
				{
					"scaleValue": 10,
					"unitPrice": 21.6
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 6,
					"area2": 66465.76976224268,
					"dimensions2": {
						"x": 467.8386317573273,
						"y": 302.4804283339039
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000x1500-1.0038-hot-rolled-mill-finish-6.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.014770171058276153,
						"grossConsumptionSheetsPerPart": 0.03172799966050117,
						"netConsumptionMassPerPart": 3.130537755801631,
						"grossConsumptionMassPerPart": 6.724749528043223,
						"materialCostPerPart": 5.88415583703782,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCuttingN2",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 2226.478370279674,
							"contourCount": 5,
							"fixedRotations": [
								90,
								270
							]
						}
					},
					"costCenter": "1100",
					"setupTime": 540,
					"unitTimePerPart": 47.899348548565975,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 1.8441249191197904
				},
				{
					"processType": "automaticMechanicalDeburring",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "mechanicalDeburring",
						"content": {
							"doubleSided": false
						}
					},
					"costCenter": "3000",
					"comment": "user-defined-comment-8",
					"setupTime": 60,
					"unitTimePerPart": 17.722323855005133,
					"materialCostPerPart": 0,
					"setupCost": 1.0083333333333333,
					"unitCostPerPart": 0.2978334981188363
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999998,
									"resultingInnerRadius": 3.84
								},
								{
									"bendDescriptor": 1,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999998,
									"resultingInnerRadius": 3.84
								},
								{
									"bendDescriptor": 2,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999705,
									"resultingInnerRadius": 3.84
								},
								{
									"bendDescriptor": 3,
									"bendAngle": -1.0078996598309615,
									"constructedInnerRadius": 0.7999999999998977,
									"resultingInnerRadius": 6.735226648790253
								},
								{
									"bendDescriptor": 4,
									"bendAngle": -1.4912289756594594,
									"constructedInnerRadius": 0.7999999999998861,
									"resultingInnerRadius": 3.84
								}
							]
						}
					},
					"costCenter": "400",
					"comment": "user-defined-comment-2",
					"setupTime": 930,
					"unitTimePerPart": 180,
					"materialCostPerPart": 0,
					"setupCost": 19.323333333333334,
					"unitCostPerPart": 3.7400000000000007
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"comment": "user-defined comment 1",
			"mass": 3.13053775580163,
			"externalPartNumber": "user-defined part number 1",
			"externalDrawingNumber": "user-defined drawing number 1",
			"externalRevisionNumber": "user-defined revision number 1"
		}
	],
	"graphSerializations": []
}
Graph example

The WSi4 project consists of a STEP input file where the assembly structure is a directed graph, but not a tree.

JSON
{
	"creator": "WSi4cli (1.30.0)",
	"version": "v0",
	"projectName": "",
	"userData": {},
	"components": [
		{
			"componentDescriptor": "c0",
			"name": "Testmontagebaugruppe",
			"quantity": 10,
			"isImportComponent": true,
			"sourceComponents": [
				{
					"componentDescriptor": "c1",
					"quantity": 2
				},
				{
					"componentDescriptor": "c2",
					"quantity": 1
				},
				{
					"componentDescriptor": "c3",
					"quantity": 2
				},
				{
					"componentDescriptor": "c4",
					"quantity": 1
				}
			],
			"targetComponentDescriptors": [],
			"dimensions3": {
				"x": 553.8808244555089,
				"y": 297.15944491850735,
				"z": 913.577227740139
			},
			"sellingPrices": [
				{
					"scaleValue": 10,
					"unitPrice": 40.83
				}
			],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"importId": ""
		},
		{
			"componentDescriptor": "c1",
			"name": "V1.0_Zylinderkopf M6x15",
			"quantity": 60,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c0",
				"c5"
			],
			"dimensions3": {
				"x": 20.00002,
				"y": 19.50004,
				"z": 10.000049455039711
			},
			"sellingPrices": [
				{
					"scaleValue": 60,
					"unitPrice": 0
				}
			],
			"details": {
				"type": "purchasePart",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "externalPart",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		},
		{
			"componentDescriptor": "c2",
			"name": "V1.0_Senkkkopf M5x10",
			"quantity": 90,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c0",
				"c6"
			],
			"dimensions3": {
				"x": 9.434342363861816,
				"y": 18.868649150101547,
				"z": 10.000044726211417
			},
			"sellingPrices": [
				{
					"scaleValue": 90,
					"unitPrice": 0
				}
			],
			"details": {
				"type": "purchasePart",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "externalPart",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		},
		{
			"componentDescriptor": "c3",
			"name": "Mittelbaugruppe",
			"quantity": 20,
			"isImportComponent": false,
			"sourceComponents": [
				{
					"componentDescriptor": "c5",
					"quantity": 1
				},
				{
					"componentDescriptor": "c6",
					"quantity": 2
				},
				{
					"componentDescriptor": "c7",
					"quantity": 1
				}
			],
			"targetComponentDescriptors": [
				"c0"
			],
			"dimensions3": {
				"x": 90.62707051410783,
				"y": 274.8509885070831,
				"z": 505.50059671089275
			},
			"sellingPrices": [
				{
					"scaleValue": 20,
					"unitPrice": 16.48
				}
			],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		},
		{
			"componentDescriptor": "c4",
			"name": "Stirnblech",
			"quantity": 10,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c0"
			],
			"dimensions3": {
				"x": 27.586553245381005,
				"y": 93.09620127021068,
				"z": 500.00003999999996
			},
			"sellingPrices": [
				{
					"scaleValue": 10,
					"unitPrice": 7.87
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 3,
					"area2": 34079.883099998646,
					"dimensions2": {
						"x": 500,
						"y": 110.97543204258706
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000x1500-1.0038-hot-rolled-mill-finish-3.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.007573307355555255,
						"grossConsumptionSheetsPerPart": 0.013705890497693593,
						"netConsumptionMassPerPart": 0.8025812470049682,
						"grossConsumptionMassPerPart": 1.4524817454930787,
						"materialCostPerPart": 1.2709215273064438,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCuttingN2",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 1532.4963414628573,
							"contourCount": 6
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 19.22944415094948,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 0.740333599811555
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -0.7592151844003644,
									"constructedInnerRadius": 2.0000000000000098,
									"resultingInnerRadius": 6.687157677081469
								},
								{
									"bendDescriptor": 1,
									"bendAngle": -1.4554718395232868,
									"constructedInnerRadius": 1.9999999999999991,
									"resultingInnerRadius": 1.92
								}
							]
						}
					},
					"setupTime": 576,
					"unitTimePerPart": 24,
					"materialCostPerPart": 0,
					"setupCost": 11.968000000000002,
					"unitCostPerPart": 0.4986666666666667
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"mass": 0.8025812470049682
		},
		{
			"componentDescriptor": "c5",
			"name": "Unterbaugruppe_2",
			"quantity": 20,
			"isImportComponent": false,
			"sourceComponents": [
				{
					"componentDescriptor": "c1",
					"quantity": 2
				},
				{
					"componentDescriptor": "c8",
					"quantity": 1
				}
			],
			"targetComponentDescriptors": [
				"c3"
			],
			"dimensions3": {
				"x": 247.78812370931547,
				"y": 88.42444299724504,
				"z": 90.62707051410774
			},
			"sellingPrices": [
				{
					"scaleValue": 20,
					"unitPrice": 4.779999999999999
				}
			],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		},
		{
			"componentDescriptor": "c6",
			"name": "Unterbaugruppe_1",
			"quantity": 40,
			"isImportComponent": false,
			"sourceComponents": [
				{
					"componentDescriptor": "c2",
					"quantity": 2
				},
				{
					"componentDescriptor": "c8",
					"quantity": 1
				}
			],
			"targetComponentDescriptors": [
				"c3"
			],
			"dimensions3": {
				"x": 243.6322135606298,
				"y": 88.42444299724504,
				"z": 82.0850912158821
			},
			"sellingPrices": [
				{
					"scaleValue": 40,
					"unitPrice": 3.6700000000000004
				}
			],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": []
		},
		{
			"componentDescriptor": "c7",
			"name": "Blechträger",
			"quantity": 20,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c3"
			],
			"dimensions3": {
				"x": 58.79835899886251,
				"y": 260.5964625541766,
				"z": 120.00004000000004
			},
			"sellingPrices": [
				{
					"scaleValue": 20,
					"unitPrice": 6.609999999999999
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 6,
					"area2": 35540.39975075779,
					"dimensions2": {
						"x": 305.49447408820913,
						"y": 120.00000000000006
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000x1500-1.0038-hot-rolled-mill-finish-6.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.007897866611279506,
						"grossConsumptionSheetsPerPart": 0.009114808167242187,
						"netConsumptionMassPerPart": 1.6739528282606915,
						"grossConsumptionMassPerPart": 1.9318835910469818,
						"materialCostPerPart": 1.6903981421661092,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCuttingN2",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 1168.0862595901683,
							"contourCount": 11
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 30.86291879592367,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 1.1882223736430615
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.4835298641951764,
									"constructedInnerRadius": 2,
									"resultingInnerRadius": 3.84
								}
							]
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 18,
					"materialCostPerPart": 0,
					"setupCost": 11.22,
					"unitCostPerPart": 0.37400000000000005
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"mass": 1.673952828260692
		},
		{
			"componentDescriptor": "c8",
			"name": "Blechteil1",
			"quantity": 60,
			"isImportComponent": false,
			"sourceComponents": [],
			"targetComponentDescriptors": [
				"c6",
				"c5"
			],
			"dimensions3": {
				"x": 242.29032598559226,
				"y": 88.42444299724502,
				"z": 80.53683415706176
			},
			"sellingPrices": [
				{
					"scaleValue": 60,
					"unitPrice": 3.29
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 4,
					"area2": 20182.130673876007,
					"dimensions2": {
						"x": 262.02016365312363,
						"y": 85.17441740408194
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000x1500-1.0038-hot-rolled-mill-finish-4.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.0044849179275280055,
						"grossConsumptionSheetsPerPart": 0.005743371490772437,
						"netConsumptionMassPerPart": 0.6337189031597072,
						"grossConsumptionMassPerPart": 0.8115383916461454,
						"materialCostPerPart": 0.7100960926903774,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCuttingN2",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 1054.9318403512725,
							"contourCount": 6
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 17.239169706142278,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 0.6637080336864778
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -0.4363323129985827,
									"constructedInnerRadius": 4.000000000000117,
									"resultingInnerRadius": 14.741552511415517
								},
								{
									"bendDescriptor": 1,
									"bendAngle": 1.5707963267948932,
									"constructedInnerRadius": 2.0000000000000213,
									"resultingInnerRadius": 2.0000000000000213
								}
							]
						}
					},
					"setupTime": 576,
					"unitTimePerPart": 24,
					"materialCostPerPart": 0,
					"setupCost": 11.968000000000002,
					"unitCostPerPart": 0.49866666666666676
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"mass": 0.6337189031597066
		}
	],
	"graphSerializations": []
}

Changelog

The BOM version reflects the major version of the interface. The BOM version changes in case of breaking changes that might require modifications in existing implementations.

Extensions to the existing interface (new properties, new enum types, etc.) are typically considered minor and do not lead to a major version change.

BOM v0
WSi4 version Description

1.24.0

Initial implementation

1.25.0

Add GLTF output file type Add countersinking details Extend coating details

1.27.0

Add HTML job card file type Add internal article number Add internal revision number Drop tube cutting GEO support

Graph JSON

The reference documentation for the interface can be found here.

Examples

Minimal example
JSON
{
	"creator": "WSi4cli (1.30.0)",
	"erpInterfaceVersion": "v1",
	"projectName": "",
	"nodes": [
		{
			"processId": "",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v0",
			"sourceVertexKeys": [
				"v1"
			],
			"targetVertexKeys": [],
			"sourceMultiplicities": [
				{
					"vertexKey": "v1",
					"multiplicity": 1
				}
			],
			"importId": "",
			"workStep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 425.68580456141683,
					"contourCount": 2,
					"boundingBox": {
						"lower": {
							"entries": [
								-57.499999999999986,
								-57.500000000000014
							]
						},
						"upper": {
							"entries": [
								57.499999999999986,
								57.49999999999996
							]
						}
					},
					"sheetThickness": 2,
					"fixedRotations": []
				}
			},
			"processRep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 425.68580456141683,
					"contourCount": 2,
					"boundingBox": {
						"lower": {
							"entries": [
								-57.499999999999986,
								-57.500000000000014
							]
						},
						"upper": {
							"entries": [
								57.499999999999986,
								57.49999999999996
							]
						}
					},
					"sheetThickness": 2,
					"fixedRotations": []
				}
			},
			"comment": ""
		},
		{
			"processId": "sheet",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v1",
			"sourceVertexKeys": [],
			"targetVertexKeys": [
				"v0"
			],
			"sourceMultiplicities": [],
			"workStep": {
				"type": "sheet",
				"content": {
					"sheetIds": [],
					"consumptions": [],
					"sheetThickness": 2
				}
			},
			"processRep": {
				"type": "sheet",
				"content": {
					"sheetIds": [],
					"consumptions": [],
					"sheetThickness": 2
				}
			},
			"comment": ""
		},
		{
			"processId": "joining",
			"costCenter": "",
			"times": {
				"setup": 0,
				"unit": 0
			},
			"userDefinedScalePrices": [],
			"costs": {
				"material": 0,
				"setup": 0,
				"unit": 0,
				"manufacturing": 0,
				"selling": 0
			},
			"vertexKey": "v2",
			"sourceVertexKeys": [
				"v3",
				"v4"
			],
			"targetVertexKeys": [],
			"sourceMultiplicities": [
				{
					"vertexKey": "v3",
					"multiplicity": 1
				},
				{
					"vertexKey": "v4",
					"multiplicity": 1
				}
			],
			"importId": "",
			"workStep": {
				"type": "joining",
				"content": {}
			},
			"processRep": {
				"type": "joining"
			},
			"comment": ""
		},
		{
			"processId": "die-bending",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v3",
			"sourceVertexKeys": [
				"v5"
			],
			"targetVertexKeys": [
				"v2"
			],
			"sourceMultiplicities": [
				{
					"vertexKey": "v5",
					"multiplicity": 1
				}
			],
			"workStep": {
				"type": "sheetBending",
				"content": {
					"bendLineData": [
						{
							"bendDescriptor": 0,
							"constructedInnerRadius": 4.599999999999994,
							"resultingInnerRadius": 4.599999999999994,
							"innerRadius": 4.599999999999994,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-91.54386090577502,
												49.929186922729784
											]
										},
										"to": {
											"entries": [
												42.37787189740611,
												49.92918692272978
											]
										}
									},
									"type": "line"
								}
							]
						}
					],
					"sheetThickness": 4
				}
			},
			"processRep": {
				"type": "dieBending",
				"content": {
					"bendLineData": [
						{
							"bendDescriptor": 0,
							"constructedInnerRadius": 4.599999999999994,
							"resultingInnerRadius": 4.599999999999994,
							"innerRadius": 4.599999999999994,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-91.54386090577502,
												49.929186922729784
											]
										},
										"to": {
											"entries": [
												42.37787189740611,
												49.92918692272978
											]
										}
									},
									"type": "line"
								}
							]
						}
					],
					"sheetThickness": 4
				}
			},
			"comment": ""
		},
		{
			"processId": "die-bending",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v4",
			"sourceVertexKeys": [
				"v7"
			],
			"targetVertexKeys": [
				"v2"
			],
			"sourceMultiplicities": [
				{
					"vertexKey": "v7",
					"multiplicity": 1
				}
			],
			"workStep": {
				"type": "sheetBending",
				"content": {
					"bendLineData": [
						{
							"bendDescriptor": 0,
							"constructedInnerRadius": 0.7999999999999998,
							"resultingInnerRadius": 0.7999999999999998,
							"innerRadius": 0.7999999999999998,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												10.97506382819232,
												97.81627040453591
											]
										},
										"to": {
											"entries": [
												95.9297066949836,
												39.268243598217225
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 1,
							"constructedInnerRadius": 0.7999999999999998,
							"resultingInnerRadius": 0.7999999999999998,
							"innerRadius": 0.7999999999999998,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-62.40094323561036,
												63.6096960436547
											]
										},
										"to": {
											"entries": [
												5.4626012833657,
												98.18099551810968
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 2,
							"constructedInnerRadius": 0.7999999999999705,
							"resultingInnerRadius": 0.7999999999999705,
							"innerRadius": 0.7999999999999705,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-65.30813131547265,
												-50.574352779964684
											]
										},
										"to": {
											"entries": [
												-65.30813131547268,
												58.865385361876356
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 3,
							"constructedInnerRadius": 0.7999999999998977,
							"resultingInnerRadius": 0.7999999999998977,
							"innerRadius": 0.7999999999998977,
							"bendAngle": -1.0078996598309615,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-68.29264433638292,
												-52.489362133643446
											]
										},
										"to": {
											"entries": [
												-157.4926443363829,
												-52.489362133643425
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 4,
							"constructedInnerRadius": 0.7999999999998861,
							"resultingInnerRadius": 0.7999999999998861,
							"innerRadius": 0.7999999999998861,
							"bendAngle": -1.4912289756594594,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												150.5738021585154,
												113.56518202371115
											]
										},
										"to": {
											"entries": [
												99.95627042368469,
												40.11788472099612
											]
										}
									},
									"type": "line"
								}
							]
						}
					],
					"sheetThickness": 6
				}
			},
			"processRep": {
				"type": "dieBending",
				"content": {
					"bendLineData": [
						{
							"bendDescriptor": 0,
							"constructedInnerRadius": 0.7999999999999998,
							"resultingInnerRadius": 0.7999999999999998,
							"innerRadius": 0.7999999999999998,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												10.97506382819232,
												97.81627040453591
											]
										},
										"to": {
											"entries": [
												95.9297066949836,
												39.268243598217225
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 1,
							"constructedInnerRadius": 0.7999999999999998,
							"resultingInnerRadius": 0.7999999999999998,
							"innerRadius": 0.7999999999999998,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-62.40094323561036,
												63.6096960436547
											]
										},
										"to": {
											"entries": [
												5.4626012833657,
												98.18099551810968
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 2,
							"constructedInnerRadius": 0.7999999999999705,
							"resultingInnerRadius": 0.7999999999999705,
							"innerRadius": 0.7999999999999705,
							"bendAngle": -1.5707963267948966,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-65.30813131547265,
												-50.574352779964684
											]
										},
										"to": {
											"entries": [
												-65.30813131547268,
												58.865385361876356
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 3,
							"constructedInnerRadius": 0.7999999999998977,
							"resultingInnerRadius": 0.7999999999998977,
							"innerRadius": 0.7999999999998977,
							"bendAngle": -1.0078996598309615,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												-68.29264433638292,
												-52.489362133643446
											]
										},
										"to": {
											"entries": [
												-157.4926443363829,
												-52.489362133643425
											]
										}
									},
									"type": "line"
								}
							]
						},
						{
							"bendDescriptor": 4,
							"constructedInnerRadius": 0.7999999999998861,
							"resultingInnerRadius": 0.7999999999998861,
							"innerRadius": 0.7999999999998861,
							"bendAngle": -1.4912289756594594,
							"segments": [
								{
									"content": {
										"from": {
											"entries": [
												150.5738021585154,
												113.56518202371115
											]
										},
										"to": {
											"entries": [
												99.95627042368469,
												40.11788472099612
											]
										}
									},
									"type": "line"
								}
							]
						}
					],
					"sheetThickness": 6
				}
			},
			"comment": ""
		},
		{
			"processId": "",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v5",
			"sourceVertexKeys": [
				"v6"
			],
			"targetVertexKeys": [
				"v3"
			],
			"sourceMultiplicities": [
				{
					"vertexKey": "v6",
					"multiplicity": 1
				}
			],
			"workStep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 984.0058819823421,
					"contourCount": 5,
					"boundingBox": {
						"lower": {
							"entries": [
								-92.37787189740614,
								-44.7455590443066
							]
						},
						"upper": {
							"entries": [
								92.37787189740611,
								136.97632351769116
							]
						}
					},
					"sheetThickness": 4,
					"fixedRotations": []
				}
			},
			"processRep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 984.0058819823421,
					"contourCount": 5,
					"boundingBox": {
						"lower": {
							"entries": [
								-92.37787189740614,
								-44.7455590443066
							]
						},
						"upper": {
							"entries": [
								92.37787189740611,
								136.97632351769116
							]
						}
					},
					"sheetThickness": 4,
					"fixedRotations": []
				}
			},
			"comment": ""
		},
		{
			"processId": "sheet",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v6",
			"sourceVertexKeys": [],
			"targetVertexKeys": [
				"v5"
			],
			"sourceMultiplicities": [],
			"workStep": {
				"type": "sheet",
				"content": {
					"sheetIds": [],
					"consumptions": [],
					"sheetThickness": 4
				}
			},
			"processRep": {
				"type": "sheet",
				"content": {
					"sheetIds": [],
					"consumptions": [],
					"sheetThickness": 4
				}
			},
			"comment": ""
		},
		{
			"processId": "",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v7",
			"sourceVertexKeys": [
				"v8"
			],
			"targetVertexKeys": [
				"v4"
			],
			"sourceMultiplicities": [
				{
					"vertexKey": "v8",
					"multiplicity": 1
				}
			],
			"workStep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 2253.0799443801925,
					"contourCount": 5,
					"boundingBox": {
						"lower": {
							"entries": [
								-157.49264433638294,
								-147.05938759324488
							]
						},
						"upper": {
							"entries": [
								285.80622782259377,
								182.7387983223854
							]
						}
					},
					"sheetThickness": 6,
					"fixedRotations": []
				}
			},
			"processRep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 2253.0799443801925,
					"contourCount": 5,
					"boundingBox": {
						"lower": {
							"entries": [
								-157.49264433638294,
								-147.05938759324488
							]
						},
						"upper": {
							"entries": [
								285.80622782259377,
								182.7387983223854
							]
						}
					},
					"sheetThickness": 6,
					"fixedRotations": []
				}
			},
			"comment": ""
		},
		{
			"processId": "sheet",
			"costCenter": "",
			"userDefinedScalePrices": [],
			"vertexKey": "v8",
			"sourceVertexKeys": [],
			"targetVertexKeys": [
				"v7"
			],
			"sourceMultiplicities": [],
			"workStep": {
				"type": "sheet",
				"content": {
					"sheetIds": [],
					"consumptions": [],
					"sheetThickness": 6
				}
			},
			"processRep": {
				"type": "sheet",
				"content": {
					"sheetIds": [],
					"consumptions": [],
					"sheetThickness": 6
				}
			},
			"comment": ""
		}
	],
	"articles": [
		{
			"vertexKeys": [
				"v1"
			],
			"name": "Sheet_0",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": []
		},
		{
			"vertexKeys": [
				"v6"
			],
			"name": "Sheet_1",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": []
		},
		{
			"vertexKeys": [
				"v8"
			],
			"name": "Sheet_2",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": []
		},
		{
			"vertexKeys": [
				"v7",
				"v4"
			],
			"name": "Teil2",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": [],
			"boundingBox3": {
				"lower": {
					"entries": [
						-188.8478524676393,
						-108.78219425363336,
						-0.000021578219115893482
					]
				},
				"upper": {
					"entries": [
						13.42198218041905,
						67.06108858532777,
						102.29524883794693
					]
				}
			}
		},
		{
			"vertexKeys": [
				"v5",
				"v3"
			],
			"name": "Teil3^Baugruppe1",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": [],
			"boundingBox3": {
				"lower": {
					"entries": [
						25.580734607507942,
						-76.00062984083378,
						-50.000020000000006
					]
				},
				"upper": {
					"entries": [
						123.6718926961212,
						14.462918875704453,
						134.75576379481225
					]
				}
			}
		},
		{
			"vertexKeys": [
				"v0"
			],
			"name": "Flat part",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": [],
			"boundingBox3": {
				"lower": {
					"entries": [
						-57.500200000000035,
						-57.50020000000004,
						-2.0002000000000075
					]
				},
				"upper": {
					"entries": [
						57.50020000000003,
						57.50020000000003,
						0.00020000000000710544
					]
				}
			}
		},
		{
			"vertexKeys": [
				"v2"
			],
			"name": "Baugruppe1",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"internalPartNumber": "",
			"internalReferenceNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": [],
			"boundingBox3": {
				"lower": {
					"entries": [
						-188.8478524676393,
						-238.35690609368777,
						-14.462918875704453
					]
				},
				"upper": {
					"entries": [
						13.42198218041905,
						67.06108858532777,
						102.29524883794693
					]
				}
			}
		}
	],
	"resources": {
		"bendDrawingHtmls": {},
		"dxfs": {},
		"dxfsCompressed": {},
		"geos": {},
		"geosCompressed": {},
		"inputSteps": {},
		"inputStepsCompressed": {},
		"outputSteps": {},
		"outputStepsCompressed": {},
		"attachments": {},
		"pngs": {},
		"svgs": {},
		"svgsCompressed": {},
		"subGraphs": []
	}
}

Reference

Opaque objects

Opaque objects are objects used in the API whose content is not supposed to be directly observed or modified by callees. They are only meant to serve as further input to API functions.

AnyCalcUserInput

User-defined input for custom calculations

ArrayBufferFuture

Asynchronously computed binary data

Assembly

Assembly consisting of arbitrarily many Breps at arbitrary positions

Details

An Assembly recursively contains other Assemblys and Breps.

AssemblyFuture

Asynchronously computed Assembly

BooleanFuture

Asynchronously computed boolean value

Brep

Boundary representation of a single part

Details

A Brep represents a three-dimensional object. Breps can be placed into Assemblys.

CadPart

CadPart

CalcUserInputConfig

User-defined input configuration for a variable used in a custom calculation

DocumentGraph

DocumentGraph

DracoRepresentation

Draco mesh representation of arbitrarily many Breps

Details

A DracoRepresentation object contains futures that compute geometric representations in Draco format for given Breps. These futures are then utilized in turning Assemblys into Gltf files.

GraphNodeId

Unique identifier of one node

Details

A GraphNodeId is a unique identifier for one node. It is unique for a whole program instance across different graphs and projects.

GraphNodeRootId

Identifier for a group of nodes

Details

A GraphNodeRootId identifies a group of nodes such that one graph contains at most one member of the group. If a node has a certain GraphNodeRootId and is changed by some API function, its GraphNodeRootId remains the same.

ImportedDocumentGraph

ImportedDocumentGraph

InnerOuterPolygon

Type representing a polygon with arbitrarily many Polygons as holes

Details

An InnerOuterPolygon corresponds to a two dimensional part.

Layered

Type representing layered vector graphics

Details

A Layered represents arbitrary two-dimensional contours. These need not form actual parts. A Layered can potentially be turned into an InnerOuterPolygon if it forms one.

MeasurementScenesFuture

Asynchronously computed measurement scenes

Nest3ResultFuture

Asynchronously computed nest3 result value

Polygon

Polygon consisting of line and arc segments

Details

A Polygon can not contain holes.

PolygonFuture

Asynchronously computed polygon value

PreDocumentGraph

PreDocumentGraph

ProfileShadowFuture

Asynchronously computed optional profile shadow value

Scene

Type representing a two dimensional scene with arbitrary non-bitmap content

Details

A Scene can be converted to various two-dimensional output formats such as DXF or SVG.

SceneFuture

Asynchronously computed Scene

SlVertex

Vertex object of a stateless graph

Details

An SlVertex references one node in one stateless graph instance. It is only valid for the associated stateless graph.

TwoDimRepOptionalFuture

Asynchronously computed optional TwoDimRepresentation

TwoDimRepresentation

Workstep specific two-dimensional representation

Details

A TwoDimRepresentation shows, in a manner specific to the underlying workstep, the available two-dimensional information.

Vertex

Vertex object of a graph

Details

A Vertex references one node in one graph instance. It becomes invalid as soon as the graph changes.

Interfaces

Interfaces are objects used in the API whose content can be observed and modified in scripts.

StringIndexedInterface

Type containing arbitrary values or arrays of values indexed by strings

interface StringIndexedInterface {
	[index: string]: unknown;
}

Defined in module lib/generated/typeguard.ts

function isStringIndexedInterface(arg: unknown) : arg is StringIndexedInterface;
Details

This type is meant to be used when the exact type of a value is a runtime choice.

AnyBomComponentDetails

interface AnyBomComponentDetails {
	index: number;
	data: BomComponentDetailsJoining;
}

Defined in module lib/generated/typeguard.ts

function isAnyBomComponentDetails(arg: unknown) : arg is AnyBomComponentDetails;

AnyBomWorkStepDetails

interface AnyBomWorkStepDetails {
	index: number;
	data: BomWorkStepDetailsGeneric;
}

Defined in module lib/generated/typeguard.ts

function isAnyBomWorkStepDetails(arg: unknown) : arg is AnyBomWorkStepDetails;

AnyCadFeatureDetails

interface AnyCadFeatureDetails {
	index: number;
	data: CadFeatureDetailsCountersink;
}

Defined in module lib/generated/typeguard.ts

function isAnyCadFeatureDetails(arg: unknown) : arg is AnyCadFeatureDetails;

AnyCalcUserInputValue

interface AnyCalcUserInputValue {
	index: number;
	data: CalcUserInputValueNumber;
}

Defined in module lib/generated/typeguard.ts

function isAnyCalcUserInputValue(arg: unknown) : arg is AnyCalcUserInputValue;

AnyDataSource

Input file data source definition

interface AnyDataSource {
	index: number;
	data: DataSourceFilePath;
}

Defined in module lib/generated/typeguard.ts

function isAnyDataSource(arg: unknown) : arg is AnyDataSource;

AnyErpStandardExportConfig

Input file data and optional properties

interface AnyErpStandardExportConfig {
	index: number;
	data: ErpStandardExportConfigTsGraphRep;
}

Defined in module lib/generated/typeguard.ts

function isAnyErpStandardExportConfig(arg: unknown) : arg is AnyErpStandardExportConfig;

AnyErpStandardInterfaceConfig

interface AnyErpStandardInterfaceConfig {
	index: number;
	data: ErpStandardInterfaceConfigTsGraphRep;
}

Defined in module lib/generated/typeguard.ts

function isAnyErpStandardInterfaceConfig(arg: unknown) : arg is AnyErpStandardInterfaceConfig;

AnyNodeIssue

interface AnyNodeIssue {
	index: number;
	data: NodeIssueBendDeductionApplicationFailed;
}

Defined in module lib/generated/typeguard.ts

function isAnyNodeIssue(arg: unknown) : arg is AnyNodeIssue;

AnyPartCreationDialogConfig

Widget config

interface AnyPartCreationDialogConfig {
	index: number;
	data: PartCreationDialogConfigRectangularSheetMetalPart;
}

Defined in module lib/generated/typeguard.ts

function isAnyPartCreationDialogConfig(arg: unknown) : arg is AnyPartCreationDialogConfig;

AnyPartCreationDialogResult

Widget result

interface AnyPartCreationDialogResult {
	index: number;
	data: PartCreationDialogResultRectangularSheetMetalPart;
}

Defined in module lib/generated/typeguard.ts

function isAnyPartCreationDialogResult(arg: unknown) : arg is AnyPartCreationDialogResult;

AnySettingsTableValue

interface AnySettingsTableValue {
	index: number;
	data: SettingsTableValueBendFlangeSafetyDistance;
}

Defined in module lib/generated/typeguard.ts

function isAnySettingsTableValue(arg: unknown) : arg is AnySettingsTableValue;

AnyTable

Variant covering all user tables

interface AnyTable {
	index: number;
	data: (SheetMaterial)[];
}

Defined in module lib/generated/typeguard.ts

function isAnyTable(arg: unknown) : arg is AnyTable;

AppInput

Interface for programmatic application input

interface AppInput {
	projectUserData?: StringIndexedInterface;
	erpExportConfig?: AnyErpStandardExportConfig;
	inputFileEntries?: (InputFileEntry)[];
}

Defined in module lib/generated/typeguard.ts

function isAppInput(arg: unknown) : arg is AppInput;

ArcSegment

Arc segment

interface ArcSegment {
	from: Point2;
	to: Point2;
	center: Point2;
	ccw: boolean;
}

Defined in module lib/generated/typeguard.ts

function isArcSegment(arg: unknown) : arg is ArcSegment;
Details

Note that a full circle is given if from === to.

ArticleBulkEditorCellConfig

Bulk editor cell configuration

interface ArticleBulkEditorCellConfig {
	index: number;
	data: ArticleBulkEditorCheckBoxConfig;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorCellConfig(arg: unknown) : arg is ArticleBulkEditorCellConfig;

ArticleBulkEditorCheckBoxConfig

Check box configuration

interface ArticleBulkEditorCheckBoxConfig {
	initialValue?: boolean;
	isOptional: boolean;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorCheckBoxConfig(arg: unknown) : arg is ArticleBulkEditorCheckBoxConfig;

ArticleBulkEditorColumnConfig

Bulk editor column configuration

interface ArticleBulkEditorColumnConfig {
	key: string;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorColumnConfig(arg: unknown) : arg is ArticleBulkEditorColumnConfig;

ArticleBulkEditorDropDownConfig

Drop down configuration

interface ArticleBulkEditorDropDownConfig {
	initialValue?: string;
	items: (ArticleBulkEditorDropDownItem)[];
	isOptional: boolean;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorDropDownConfig(arg: unknown) : arg is ArticleBulkEditorDropDownConfig;

ArticleBulkEditorDropDownItem

Drop down item

interface ArticleBulkEditorDropDownItem {
	id: string;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorDropDownItem(arg: unknown) : arg is ArticleBulkEditorDropDownItem;

ArticleBulkEditorLabelConfig

Label configuration

interface ArticleBulkEditorLabelConfig {
	initialValue?: string;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorLabelConfig(arg: unknown) : arg is ArticleBulkEditorLabelConfig;

ArticleBulkEditorLineEditConfig

Line edit configuration

interface ArticleBulkEditorLineEditConfig {
	initialValue?: string;
	isOptional: boolean;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorLineEditConfig(arg: unknown) : arg is ArticleBulkEditorLineEditConfig;

ArticleBulkEditorRowExtraData

Extra article data for bulk editor

interface ArticleBulkEditorRowExtraData {
	quantity: number;
	x?: number;
	y?: number;
	z?: number;
	associatedSemimanProductId?: string;
	associatedSemimanProductName?: string;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorRowExtraData(arg: unknown) : arg is ArticleBulkEditorRowExtraData;

ArticleBulkEditorSpinBoxConfig

Spin box configuration

interface ArticleBulkEditorSpinBoxConfig {
	initialValue?: number;
	min: number;
	max: number;
	decimals: number;
	isOptional: boolean;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorSpinBoxConfig(arg: unknown) : arg is ArticleBulkEditorSpinBoxConfig;

ArticleBulkEditorTextEditConfig

Text edit configuration

interface ArticleBulkEditorTextEditConfig {
	initialValue?: string;
	isOptional: boolean;
}

Defined in module lib/generated/typeguard.ts

function isArticleBulkEditorTextEditConfig(arg: unknown) : arg is ArticleBulkEditorTextEditConfig;

ArticleUpdate

interface ArticleUpdate {
	vertex: Vertex;
	articleUserData?: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isArticleUpdate(arg: unknown) : arg is ArticleUpdate;

ArticleUserData

Maps article UserData entry name to a type

interface ArticleUserData {
	name: string;
	comment: string;
	externalPartNumber: string;
	externalDrawingNumber: string;
	externalRevisionNumber: string;
	internalPartNumber: string;
	internalReferenceNumber: string;
	customUserData: StringIndexedInterface;
	attachments: (Attachment)[];
}

Defined in module lib/generated/typeguard.ts

function isArticleUserData(arg: unknown) : arg is ArticleUserData;

AssemblyMapEntry

Assembly map entry

interface AssemblyMapEntry {
	id: string;
	assembly: Assembly;
}

Defined in module lib/generated/typeguard.ts

function isAssemblyMapEntry(arg: unknown) : arg is AssemblyMapEntry;

AssemblyPath

Defines sub-assembly relative to a given root

interface AssemblyPath {
	indices: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isAssemblyPath(arg: unknown) : arg is AssemblyPath;

Attachment

File representation consisting of a name and a Base64 encoded data string

interface Attachment {
	name: string;
	data: string;
}

Defined in module lib/generated/typeguard.ts

function isAttachment(arg: unknown) : arg is Attachment;

AutomaticMechanicalDeburringMaterial

Automatic mechanical deburring material mapping

Unique members interface
interface AutomaticMechanicalDeburringMaterialUniqueMembers {
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isAutomaticMechanicalDeburringMaterialUniqueMembers(arg: unknown) : arg is AutomaticMechanicalDeburringMaterialUniqueMembers;
Regular interface
interface AutomaticMechanicalDeburringMaterial extends AutomaticMechanicalDeburringMaterialUniqueMembers {
	automaticMechanicalDeburringMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isAutomaticMechanicalDeburringMaterial(arg: unknown) : arg is AutomaticMechanicalDeburringMaterial;

AutomaticMechanicalDeburringParameters

Automatic mechanical deburring parameters

Unique members interface
interface AutomaticMechanicalDeburringParametersUniqueMembers {
	automaticMechanicalDeburringMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isAutomaticMechanicalDeburringParametersUniqueMembers(arg: unknown) : arg is AutomaticMechanicalDeburringParametersUniqueMembers;
Regular interface
interface AutomaticMechanicalDeburringParameters extends AutomaticMechanicalDeburringParametersUniqueMembers {
	maxDimY: number;
	unitTimeBase: number;
	speed: number;
}

Defined in module lib/generated/typeguard.ts

function isAutomaticMechanicalDeburringParameters(arg: unknown) : arg is AutomaticMechanicalDeburringParameters;

BendDeduction

Table row defining a bend deduction for a certain parameter set

Unique members interface
interface BendDeductionUniqueMembers {
	sheetBendingMaterialId: string;
	upperDieGroupId: string;
	lowerDieGroupId: string;
	thickness: number;
	bendAngle: number;
}

Defined in module lib/generated/typeguard.ts

function isBendDeductionUniqueMembers(arg: unknown) : arg is BendDeductionUniqueMembers;
Regular interface
interface BendDeduction extends BendDeductionUniqueMembers {
	innerRadius: number;
	sharpDeduction: number;
}

Defined in module lib/generated/typeguard.ts

function isBendDeduction(arg: unknown) : arg is BendDeduction;
Details

Table is used to interpolate actual bend deduction for a bend line.

BendDieAffectDistanceEntry

Die affect distance for a bend

interface BendDieAffectDistanceEntry {
	bendDescriptor: number;
	affectDistance: number;
}

Defined in module lib/generated/typeguard.ts

function isBendDieAffectDistanceEntry(arg: unknown) : arg is BendDieAffectDistanceEntry;

BendDieChoice

Resulting parameters for a single bend-line and the corresponding die-group-selection

interface BendDieChoice {
	baseClass: CamBendDeduction;
	upperDieGroupId: string;
	lowerDieGroupId: string;
	thickness: number;
	type: BendDieChoiceType;
	sharpDeduction: number;
}

Defined in module lib/generated/typeguard.ts

function isBendDieChoice(arg: unknown) : arg is BendDieChoice;

BendLineConstraint

Define bend line related manufacturing constriants

Unique members interface
interface BendLineConstraintUniqueMembers {
	sheetBendingMaterialId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isBendLineConstraintUniqueMembers(arg: unknown) : arg is BendLineConstraintUniqueMembers;
Regular interface
interface BendLineConstraint extends BendLineConstraintUniqueMembers {
	maxNetLength: number;
}

Defined in module lib/generated/typeguard.ts

function isBendLineConstraint(arg: unknown) : arg is BendLineConstraint;
Details

Please also note the documentation for the respective table.

BendLineData

Data associated with each individual bend line

interface BendLineData {
	constructedInnerRadius: number;
	resultingInnerRadius: number;
	bendAngle: number;
	bendDescriptor: number;
}

Defined in module lib/generated/typeguard.ts

function isBendLineData(arg: unknown) : arg is BendLineData;

BendLineFlangeLength

Flange lengths associated with each individual bend line

interface BendLineFlangeLength {
	flangeLengthLhs: number;
	flangeLengthRhs: number;
	bendDescriptor: number;
}

Defined in module lib/generated/typeguard.ts

function isBendLineFlangeLength(arg: unknown) : arg is BendLineFlangeLength;
Details

For a bend, take its two adjacent plates p0 and p1 on the outside shell of the bend. p0 lies to the left of the bend line, taking its orientation into account, and p1 to the right. They are contained in two planes p0' and p1'. The two planes p0' and p1' intersect in one straight line l.

The flange lengths f0 and f1 are the maximal distances of any point on p0 and p1 has from l respectively.

BendLineSegmentsMapEntry

A bend line’s segments

interface BendLineSegmentsMapEntry {
	bendDescriptor: number;
	segments: (Segment)[];
}

Defined in module lib/generated/typeguard.ts

function isBendLineSegmentsMapEntry(arg: unknown) : arg is BendLineSegmentsMapEntry;

BendRateParameters

Define bend related cost-computation parameters

Unique members interface
interface BendRateParametersUniqueMembers {
	sheetBendingMaterialId: string;
	thickness: number;
	bendLineNetLength: number;
}

Defined in module lib/generated/typeguard.ts

function isBendRateParametersUniqueMembers(arg: unknown) : arg is BendRateParametersUniqueMembers;
Regular interface
interface BendRateParameters extends BendRateParametersUniqueMembers {
	hourlyRateFactor: number;
	hourlyRateDelta: number;
}

Defined in module lib/generated/typeguard.ts

function isBendRateParameters(arg: unknown) : arg is BendRateParameters;
Details

Please also note the documentation for the respective table.

BendTime

Define times used to calculate a node of type sheet bending

Unique members interface
interface BendTimeUniqueMembers {
	mass: number;
}

Defined in module lib/generated/typeguard.ts

function isBendTimeUniqueMembers(arg: unknown) : arg is BendTimeUniqueMembers;
Regular interface
interface BendTime extends BendTimeUniqueMembers {
	setupTime: number;
	setupTimePerBend: number;
	unitTime: number;
	unitTimePerBend: number;
}

Defined in module lib/generated/typeguard.ts

function isBendTime(arg: unknown) : arg is BendTime;
Details

Please also note the documentation for the respective table.

BendTimeParameters

Define bend related time-computation parameters

Unique members interface
interface BendTimeParametersUniqueMembers {
	sheetBendingMaterialId: string;
	thickness: number;
	bendLineNetLength: number;
}

Defined in module lib/generated/typeguard.ts

function isBendTimeParametersUniqueMembers(arg: unknown) : arg is BendTimeParametersUniqueMembers;
Regular interface
interface BendTimeParameters extends BendTimeParametersUniqueMembers {
	setupTimeFactor: number;
	setupTimeDelta: number;
	setupTimePerBendFactor: number;
	setupTimePerBendDelta: number;
	unitTimeFactor: number;
	unitTimeDelta: number;
	unitTimePerBendFactor: number;
	unitTimePerBendDelta: number;
}

Defined in module lib/generated/typeguard.ts

function isBendTimeParameters(arg: unknown) : arg is BendTimeParameters;
Details

Please also note the documentation for the respective table.

BendingToolEditorInputEntry

Input data for one bend for bending tool editor

interface BendingToolEditorInputEntry {
	bendDescriptor: number;
	angle: number;
	constructedInnerRadius: number;
	bendDieChoices: (BendDieChoice)[];
}

Defined in module lib/generated/typeguard.ts

function isBendingToolEditorInputEntry(arg: unknown) : arg is BendingToolEditorInputEntry;

Bom

interface Bom {
	version: BomVersion;
	creator: string;
	projectName: string;
	components: (BomComponent)[];
	userData: StringIndexedInterface;
	graphSerializations: (BomGraphSerialization)[];
}

Defined in module lib/generated/typeguard.ts

function isBom(arg: unknown) : arg is Bom;

BomAnnotation2

Annotation that references a 2D geometry

interface BomAnnotation2 {
	point: BomPoint2;
	text: string;
}

Defined in module lib/generated/typeguard.ts

function isBomAnnotation2(arg: unknown) : arg is BomAnnotation2;

BomAttachment

interface BomAttachment {
	name: string;
	base64: string;
}

Defined in module lib/generated/typeguard.ts

function isBomAttachment(arg: unknown) : arg is BomAttachment;

BomBendLine

interface BomBendLine {
	bendDescriptor: number;
	bendAngle: number;
	constructedInnerRadius: number;
	resultingInnerRadius: number;
}

Defined in module lib/generated/typeguard.ts

function isBomBendLine(arg: unknown) : arg is BomBendLine;

BomComponent

interface BomComponent {
	componentDescriptor: string;
	name: string;
	quantity: number;
	isImportComponent: boolean;
	sourceComponents: (BomSourceComponent)[];
	targetComponentDescriptors: (string)[];
	dimensions3: BomDimensions3;
	mass?: number;
	comment?: string;
	importId?: string;
	externalPartNumber?: string;
	externalDrawingNumber?: string;
	externalRevisionNumber?: string;
	internalPartNumber?: string;
	internalReferenceNumber?: string;
	details: AnyBomComponentDetails;
	sellingPrices: (BomScalePrice)[];
	workSteps: (BomWorkStep)[];
	userData?: StringIndexedInterface;
	generatedFiles: (BomGeneratedFile)[];
	attachments: (BomAttachment)[];
}

Defined in module lib/generated/typeguard.ts

function isBomComponent(arg: unknown) : arg is BomComponent;

BomComponentDetailsJoining

interface BomComponentDetailsJoining {
}

Defined in module lib/generated/typeguard.ts

function isBomComponentDetailsJoining(arg: unknown) : arg is BomComponentDetailsJoining;

BomComponentDetailsPurchasePart

interface BomComponentDetailsPurchasePart {
}

Defined in module lib/generated/typeguard.ts

function isBomComponentDetailsPurchasePart(arg: unknown) : arg is BomComponentDetailsPurchasePart;

BomComponentDetailsSheetMetalPart

interface BomComponentDetailsSheetMetalPart {
	thickness: number;
	area2: number;
	dimensions2: BomDimensions2;
	sheetMaterialId?: string;
	sheetConsumption?: BomSheetConsumption;
	millTestReportRequired: boolean;
}

Defined in module lib/generated/typeguard.ts

function isBomComponentDetailsSheetMetalPart(arg: unknown) : arg is BomComponentDetailsSheetMetalPart;

BomComponentDetailsTubePart

interface BomComponentDetailsTubePart {
	extrusionLength: number;
	volume: number;
	profileGeometry: BomTubeProfileGeometry;
	tubeMaterialId?: string;
	tubeSpecificationId?: string;
	tubeConsumption?: BomTubeConsumption;
	millTestReportRequired: boolean;
}

Defined in module lib/generated/typeguard.ts

function isBomComponentDetailsTubePart(arg: unknown) : arg is BomComponentDetailsTubePart;

BomCountersink

interface BomCountersink {
	innerRadius: number;
	outerRadius: number;
	angle: number;
	depth: number;
}

Defined in module lib/generated/typeguard.ts

function isBomCountersink(arg: unknown) : arg is BomCountersink;

BomDimensions2

Dimensions of a 2D geometry

interface BomDimensions2 {
	x: number;
	y: number;
}

Defined in module lib/generated/typeguard.ts

function isBomDimensions2(arg: unknown) : arg is BomDimensions2;

BomDimensions3

Dimensions of a 3D geometry

interface BomDimensions3 {
	x: number;
	y: number;
	z: number;
}

Defined in module lib/generated/typeguard.ts

function isBomDimensions3(arg: unknown) : arg is BomDimensions3;

BomGeneratedFile

interface BomGeneratedFile {
	type: BomGeneratedFileType;
	plainText?: string;
	base64?: string;
}

Defined in module lib/generated/typeguard.ts

function isBomGeneratedFile(arg: unknown) : arg is BomGeneratedFile;

BomGraphSerialization

interface BomGraphSerialization {
	componentDescriptors: (string)[];
	base64: string;
}

Defined in module lib/generated/typeguard.ts

function isBomGraphSerialization(arg: unknown) : arg is BomGraphSerialization;

BomPoint2

Point in 2D coordinate system

interface BomPoint2 {
	x: number;
	y: number;
}

Defined in module lib/generated/typeguard.ts

function isBomPoint2(arg: unknown) : arg is BomPoint2;

BomScalePrice

interface BomScalePrice {
	scaleValue: number;
	unitPrice: number;
}

Defined in module lib/generated/typeguard.ts

function isBomScalePrice(arg: unknown) : arg is BomScalePrice;

BomSheetConsumption

interface BomSheetConsumption {
	sheetId: string;
	sheetDimensions: BomDimensions2;
	netConsumptionSheetsPerPart: number;
	grossConsumptionSheetsPerPart: number;
	netConsumptionMassPerPart: number;
	grossConsumptionMassPerPart: number;
	materialCostPerPart: number;
	setupCost: number;
	unitCostPerPart: number;
}

Defined in module lib/generated/typeguard.ts

function isBomSheetConsumption(arg: unknown) : arg is BomSheetConsumption;

BomSourceComponent

interface BomSourceComponent {
	componentDescriptor: string;
	quantity: number;
}

Defined in module lib/generated/typeguard.ts

function isBomSourceComponent(arg: unknown) : arg is BomSourceComponent;

BomTubeConsumption

interface BomTubeConsumption {
	tubeId: string;
	tubeLength: number;
	netConsumptionTubesPerPart: number;
	grossConsumptionTubesPerPart: number;
	netConsumptionMassPerPart: number;
	grossConsumptionMassPerPart: number;
	materialCostPerPart: number;
	setupCost: number;
	unitCostPerPart: number;
}

Defined in module lib/generated/typeguard.ts

function isBomTubeConsumption(arg: unknown) : arg is BomTubeConsumption;

BomTubeProfileGeometry

interface BomTubeProfileGeometry {
	index: number;
	data: BomTubeProfileGeometryCircular;
}

Defined in module lib/generated/typeguard.ts

function isBomTubeProfileGeometry(arg: unknown) : arg is BomTubeProfileGeometry;

BomTubeProfileGeometryCircular

interface BomTubeProfileGeometryCircular {
	thickness: number;
	diameter: number;
}

Defined in module lib/generated/typeguard.ts

function isBomTubeProfileGeometryCircular(arg: unknown) : arg is BomTubeProfileGeometryCircular;

BomTubeProfileGeometryRectangular

interface BomTubeProfileGeometryRectangular {
	thickness: number;
	dimensions2: BomDimensions2;
}

Defined in module lib/generated/typeguard.ts

function isBomTubeProfileGeometryRectangular(arg: unknown) : arg is BomTubeProfileGeometryRectangular;

BomWorkStep

interface BomWorkStep {
	processType: ProcessType;
	costCenter?: string;
	comment?: string;
	setupTime?: number;
	unitTimePerPart?: number;
	materialCostPerPart?: number;
	setupCost?: number;
	unitCostPerPart?: number;
	userDefinedManufacturingCosts?: (BomScalePrice)[];
	details: AnyBomWorkStepDetails;
	generatedFiles: (BomGeneratedFile)[];
	attachments: (BomAttachment)[];
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStep(arg: unknown) : arg is BomWorkStep;

BomWorkStepDetailsCoating

interface BomWorkStepDetailsCoating {
	coatingId?: string;
	coatingAreaPerPart: number;
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsCoating(arg: unknown) : arg is BomWorkStepDetailsCoating;

BomWorkStepDetailsCountersinking

interface BomWorkStepDetailsCountersinking {
	countersinks: (BomCountersink)[];
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsCountersinking(arg: unknown) : arg is BomWorkStepDetailsCountersinking;

BomWorkStepDetailsGeneric

interface BomWorkStepDetailsGeneric {
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsGeneric(arg: unknown) : arg is BomWorkStepDetailsGeneric;

BomWorkStepDetailsMechanicalDeburring

interface BomWorkStepDetailsMechanicalDeburring {
	doubleSided: boolean;
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsMechanicalDeburring(arg: unknown) : arg is BomWorkStepDetailsMechanicalDeburring;

BomWorkStepDetailsSheetBending

interface BomWorkStepDetailsSheetBending {
	bendLines: (BomBendLine)[];
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsSheetBending(arg: unknown) : arg is BomWorkStepDetailsSheetBending;

BomWorkStepDetailsSheetCutting

interface BomWorkStepDetailsSheetCutting {
	contourLength: number;
	contourCount: number;
	fixedRotations?: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsSheetCutting(arg: unknown) : arg is BomWorkStepDetailsSheetCutting;

BomWorkStepDetailsSheetTapping

interface BomWorkStepDetailsSheetTapping {
	annotations: (BomAnnotation2)[];
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsSheetTapping(arg: unknown) : arg is BomWorkStepDetailsSheetTapping;

BomWorkStepDetailsTubeCutting

interface BomWorkStepDetailsTubeCutting {
	contourLength: number;
	contourCount: number;
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsTubeCutting(arg: unknown) : arg is BomWorkStepDetailsTubeCutting;

BomWorkStepDetailsUserDefinedCountersinking

interface BomWorkStepDetailsUserDefinedCountersinking {
	count: number;
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsUserDefinedCountersinking(arg: unknown) : arg is BomWorkStepDetailsUserDefinedCountersinking;

BomWorkStepDetailsUserDefinedThreading

interface BomWorkStepDetailsUserDefinedThreading {
	count: number;
}

Defined in module lib/generated/typeguard.ts

function isBomWorkStepDetailsUserDefinedThreading(arg: unknown) : arg is BomWorkStepDetailsUserDefinedThreading;

Box2

Axis-aligned 2-dim Box

interface Box2 {
	lower: Point2;
	upper: Point2;
}

Defined in module lib/generated/typeguard.ts

function isBox2(arg: unknown) : arg is Box2;
Details

A Box2 is an axis-aligned 2-dimensional Box. Its content is stored in lower and upper.

Box3

Axis-aligned 3-dim Box

interface Box3 {
	lower: Point3;
	upper: Point3;
}

Defined in module lib/generated/typeguard.ts

function isBox3(arg: unknown) : arg is Box3;
Details

A Box3 is an axis-aligned 3-dimensional Box. Its content is stored in lower and upper.

CadFeatureDetailsCountersink

interface CadFeatureDetailsCountersink {
	innerRadius: number;
	outerRadius: number;
	angle: number;
	depth: number;
	surfaceFlag: SheetSurfaceFlag;
}

Defined in module lib/generated/typeguard.ts

function isCadFeatureDetailsCountersink(arg: unknown) : arg is CadFeatureDetailsCountersink;

CadFeatureDetailsThroughHole

interface CadFeatureDetailsThroughHole {
	radius: number;
}

Defined in module lib/generated/typeguard.ts

function isCadFeatureDetailsThroughHole(arg: unknown) : arg is CadFeatureDetailsThroughHole;

CadFeatureGroup

interface CadFeatureGroup {
	index: number;
	descriptors: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isCadFeatureGroup(arg: unknown) : arg is CadFeatureGroup;

CadImportConfig

Config for DocumentGraphCreator

interface CadImportConfig {
	sheetUpperSideStrategy?: SheetUpperSideStrategy;
}

Defined in module lib/generated/typeguard.ts

function isCadImportConfig(arg: unknown) : arg is CadImportConfig;

CalcUserInputValueEnumeration

interface CalcUserInputValueEnumeration {
	displayName: string;
	enumName: string;
	value: number;
	unit: string;
	isDefault: boolean;
}

Defined in module lib/generated/typeguard.ts

function isCalcUserInputValueEnumeration(arg: unknown) : arg is CalcUserInputValueEnumeration;

CalcUserInputValueNumber

interface CalcUserInputValueNumber {
	displayName: string;
	value: number;
	unit: string;
	isDefault: boolean;
}

Defined in module lib/generated/typeguard.ts

function isCalcUserInputValueNumber(arg: unknown) : arg is CalcUserInputValueNumber;

CamBendDeduction

Bend deduction computed for a specific bend line

interface CamBendDeduction {
	roundDeduction: number;
	innerRadius: number;
}

Defined in module lib/generated/typeguard.ts

function isCamBendDeduction(arg: unknown) : arg is CamBendDeduction;
Details

A CamBendDeduction is computed for a specific bend-line and die-group-combination and is applied to e. g. sheet cutting parts.

CamCommand

Transform command

interface CamCommand {
	index: number;
	data: CamCommandSetColor;
}

Defined in module lib/generated/typeguard.ts

function isCamCommand(arg: unknown) : arg is CamCommand;

CamCommandApplyCadFeatures

Apply CAD features

interface CamCommandApplyCadFeatures {
	descriptors: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isCamCommandApplyCadFeatures(arg: unknown) : arg is CamCommandApplyCadFeatures;

CamCommandSetCoatingColor

Set coating color

interface CamCommandSetCoatingColor {
	coatingMode: CamCoatingMode;
	color: Vector4;
}

Defined in module lib/generated/typeguard.ts

function isCamCommandSetCoatingColor(arg: unknown) : arg is CamCommandSetCoatingColor;

CamCommandSetColor

Set geometry entity color(s)

interface CamCommandSetColor {
	entities: (GeometryEntity)[];
	color: Vector3;
}

Defined in module lib/generated/typeguard.ts

function isCamCommandSetColor(arg: unknown) : arg is CamCommandSetColor;

CamNestedPart

A CamNestedPart contains the root id of the vertex the InnerOuterPolygon belongs to, and the CoordinateSystem2 on the sheet

interface CamNestedPart {
	innerOuterPolygon: InnerOuterPolygon;
	coordinateSystem: CoordinateSystem2;
}

Defined in module lib/generated/typeguard.ts

function isCamNestedPart(arg: unknown) : arg is CamNestedPart;

CamNesting

A CamNesting contains array of CamSheets

interface CamNesting {
	sheets: (CamSheet)[];
}

Defined in module lib/generated/typeguard.ts

function isCamNesting(arg: unknown) : arg is CamNesting;

CamNestorConfig

Private API

interface CamNestorConfig {
	timeout: CamNestorTimeout;
	numRelevantNestings: number;
}

Defined in module lib/generated/typeguard.ts

function isCamNestorConfig(arg: unknown) : arg is CamNestorConfig;

CamNestorInput

Private API

interface CamNestorInput {
	parts: (CamNestorInputPart)[];
	targetBoundary: Polygon;
	nestingDistance: number;
	xModulus: number;
	yModulus: number;
}

Defined in module lib/generated/typeguard.ts

function isCamNestorInput(arg: unknown) : arg is CamNestorInput;

CamNestorInputPart

Private API

interface CamNestorInputPart {
	iop: InnerOuterPolygon;
	minCount: number;
	maxCount: number;
	fixedRotations: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isCamNestorInputPart(arg: unknown) : arg is CamNestorInputPart;

CamNestorTimeout

Private API

interface CamNestorTimeout {
	valueMs?: number;
}

Defined in module lib/generated/typeguard.ts

function isCamNestorTimeout(arg: unknown) : arg is CamNestorTimeout;

CamSheet

A CamSheet contains information about sheet, multiplicity and CamNestedParts on sheet

interface CamSheet {
	dimX: number;
	dimY: number;
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isCamSheet(arg: unknown) : arg is CamSheet;

CamTubeNestingResult

Result of a tube nesting computation

interface CamTubeNestingResult {
	inputLength: number;
	nestings: (CamTubeNestingResultNesting)[];
}

Defined in module lib/generated/typeguard.ts

function isCamTubeNestingResult(arg: unknown) : arg is CamTubeNestingResult;

CamTubeNestingResultNesting

Partial result of a tube nesting computation

interface CamTubeNestingResultNesting {
	transformations: (CoordinateSystem3)[];
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isCamTubeNestingResultNesting(arg: unknown) : arg is CamTubeNestingResultNesting;

CamWorkStepUpdateInputSheet

Private API

interface CamWorkStepUpdateInputSheet {
	nestorInput: CamNestorInput;
	nestorConfig: CamNestorConfig;
}

Defined in module lib/generated/typeguard.ts

function isCamWorkStepUpdateInputSheet(arg: unknown) : arg is CamWorkStepUpdateInputSheet;

CamWorkStepUpdateInputTube

Private API

interface CamWorkStepUpdateInputTube {
	length: number;
	multiplicity: number;
	nestingDistance: number;
}

Defined in module lib/generated/typeguard.ts

function isCamWorkStepUpdateInputTube(arg: unknown) : arg is CamWorkStepUpdateInputTube;

Camera3

Defines a scene view

interface Camera3 {
	eye: Point3;
	center: Point3;
	up: Vector3;
}

Defined in module lib/generated/typeguard.ts

function isCamera3(arg: unknown) : arg is Camera3;

CameraOrientation3

3-dim camera orientation

interface CameraOrientation3 {
	center: Vector3;
	direction: Vector3;
	up: Vector3;
}

Defined in module lib/generated/typeguard.ts

function isCameraOrientation3(arg: unknown) : arg is CameraOrientation3;
Details

A CameraOrirentation3 is defined by an origin Vector3 and an rotation matrix.

Coating

Coating

Unique members interface
interface CoatingUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isCoatingUniqueMembers(arg: unknown) : arg is CoatingUniqueMembers;
Regular interface
interface Coating extends CoatingUniqueMembers {
	name: string;
	color: string;
	density: number;
	costPerMass: number;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isCoating(arg: unknown) : arg is Coating;

CoatingProcessMapping

Maps a coating to a process

Unique members interface
interface CoatingProcessMappingUniqueMembers {
	coatingId: string;
}

Defined in module lib/generated/typeguard.ts

function isCoatingProcessMappingUniqueMembers(arg: unknown) : arg is CoatingProcessMappingUniqueMembers;
Regular interface
interface CoatingProcessMapping extends CoatingProcessMappingUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isCoatingProcessMapping(arg: unknown) : arg is CoatingProcessMapping;

ConnectionProperties

Properties of a database connection

interface ConnectionProperties {
	databaseType: DatabaseType;
	name: string;
	hostName: string;
	port: number;
	databaseName: string;
	userName: string;
	password: string;
}

Defined in module lib/generated/typeguard.ts

function isConnectionProperties(arg: unknown) : arg is ConnectionProperties;
Details

ConnectionProperties contain all the information that is used to connect to a database.

ConsistencyTableError

Table is inconsistent

interface ConsistencyTableError {
	affectedRowType: TableType;
	details: string;
}

Defined in module lib/generated/typeguard.ts

function isConsistencyTableError(arg: unknown) : arg is ConsistencyTableError;

Consumable

Consumable

Unique members interface
interface ConsumableUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isConsumableUniqueMembers(arg: unknown) : arg is ConsumableUniqueMembers;
Regular interface
interface Consumable extends ConsumableUniqueMembers {
	name: string;
	unit: string;
	costsPerUnit: number;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isConsumable(arg: unknown) : arg is Consumable;

ConsumableConsumption

interface ConsumableConsumption {
	consumableId: string;
	consumedUnits: number;
}

Defined in module lib/generated/typeguard.ts

function isConsumableConsumption(arg: unknown) : arg is ConsumableConsumption;

CoordinateSystem2

2D coordinate system

interface CoordinateSystem2 {
	origin: Vector2;
	unitaryMatrix: Matrix2;
}

Defined in module lib/generated/typeguard.ts

function isCoordinateSystem2(arg: unknown) : arg is CoordinateSystem2;
Details

A CoordinateSystem2 is defined by its origin and a unitary rotation matrix.

CoordinateSystem3

3D coordinate system

interface CoordinateSystem3 {
	origin: Vector3;
	unitaryMatrix: Matrix3;
}

Defined in module lib/generated/typeguard.ts

function isCoordinateSystem3(arg: unknown) : arg is CoordinateSystem3;
Details

A CoordinateSystem3 is defined by its origin and a unitary rotation matrix.

CustomCalculationResult

interface CustomCalculationResult {
	displayName: string;
	unit: string;
	errorMessage: string;
	value: undefined|string;
}

Defined in module lib/generated/typeguard.ts

function isCustomCalculationResult(arg: unknown) : arg is CustomCalculationResult;

DataSourceFileContent

Data source that holds the file content

interface DataSourceFileContent {
	contentType: FileContentType;
	data: string;
}

Defined in module lib/generated/typeguard.ts

function isDataSourceFileContent(arg: unknown) : arg is DataSourceFileContent;

DataSourceFilePath

Data source that references a file on the file system

interface DataSourceFilePath {
	path: string;
}

Defined in module lib/generated/typeguard.ts

function isDataSourceFilePath(arg: unknown) : arg is DataSourceFilePath;

DefaultCalcJson

interface DefaultCalcJson {
	displayName: string;
	json: string;
}

Defined in module lib/generated/typeguard.ts

function isDefaultCalcJson(arg: unknown) : arg is DefaultCalcJson;

DieChoiceAlternativesEntry

Set of valid combinations of bendDescriptor and BendDieChoice for a bend

interface DieChoiceAlternativesEntry {
	bendDescriptor: number;
	bendDieChoices: (BendDieChoice)[];
}

Defined in module lib/generated/typeguard.ts

function isDieChoiceAlternativesEntry(arg: unknown) : arg is DieChoiceAlternativesEntry;

DieChoiceMapEntry

Combination of bendDescriptor and BendDieChoice

interface DieChoiceMapEntry {
	bendDescriptor: number;
	bendDieChoice: BendDieChoice;
}

Defined in module lib/generated/typeguard.ts

function isDieChoiceMapEntry(arg: unknown) : arg is DieChoiceMapEntry;

DieGroupPriority

Die group priority

Unique members interface
interface DieGroupPriorityUniqueMembers {
	upperDieGroupId: string;
	lowerDieGroupId: string;
	sheetBendingMaterialId: string;
	sheetThickness: number;
}

Defined in module lib/generated/typeguard.ts

function isDieGroupPriorityUniqueMembers(arg: unknown) : arg is DieGroupPriorityUniqueMembers;
Regular interface
interface DieGroupPriority extends DieGroupPriorityUniqueMembers {
	priority: number;
}

Defined in module lib/generated/typeguard.ts

function isDieGroupPriority(arg: unknown) : arg is DieGroupPriority;

DieSelectorQuery

Constraints for the internal die group selector

interface DieSelectorQuery {
	thickness: number;
	bendAngle: number;
	maxOpeningWidth: number;
	resultingRadiusFactor: number;
}

Defined in module lib/generated/typeguard.ts

function isDieSelectorQuery(arg: unknown) : arg is DieSelectorQuery;

DimensionConstraints

Process specific dimension constraints

Unique members interface
interface DimensionConstraintsUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isDimensionConstraintsUniqueMembers(arg: unknown) : arg is DimensionConstraintsUniqueMembers;
Regular interface
interface DimensionConstraints extends DimensionConstraintsUniqueMembers {
	minX: number;
	minY: number;
	minZ: number;
	maxX: number;
	maxY: number;
	maxZ: number;
}

Defined in module lib/generated/typeguard.ts

function isDimensionConstraints(arg: unknown) : arg is DimensionConstraints;

DocXImage

Image element

interface DocXImage {
	placeholder: string;
	content: ArrayBuffer;
	type: DocXImageType;
}

Defined in module lib/generated/typeguard.ts

function isDocXImage(arg: unknown) : arg is DocXImage;

DocXTableCell

Cell of a docx table row

interface DocXTableCell {
	index: number;
	data: DocXText;
}

Defined in module lib/generated/typeguard.ts

function isDocXTableCell(arg: unknown) : arg is DocXTableCell;

DocXTables

Tables element

interface DocXTables {
	tables: (((DocXTableCell)[])[])[];
}

Defined in module lib/generated/typeguard.ts

function isDocXTables(arg: unknown) : arg is DocXTables;

DocXText

Text element

interface DocXText {
	placeholder: string;
	text: string;
}

Defined in module lib/generated/typeguard.ts

function isDocXText(arg: unknown) : arg is DocXText;

DocumentBarcode

Barcode placed in a document

interface DocumentBarcode {
	width: number;
	text: string;
	alignment: DocumentAlignment;
}

Defined in module lib/generated/typeguard.ts

function isDocumentBarcode(arg: unknown) : arg is DocumentBarcode;

DocumentFormat

Format properties of a document

interface DocumentFormat {
	orientation: DocumentOrientation;
}

Defined in module lib/generated/typeguard.ts

function isDocumentFormat(arg: unknown) : arg is DocumentFormat;

DocumentHeading

Heading of a document

interface DocumentHeading {
	level: number;
	text: string;
}

Defined in module lib/generated/typeguard.ts

function isDocumentHeading(arg: unknown) : arg is DocumentHeading;

DocumentImage

Image placed in a document

interface DocumentImage {
	width: number;
	type: DocumentImageType;
	uuid: string;
	data: ArrayBuffer;
	alignment: DocumentAlignment;
	richTextFixedRatio?: number;
	richTextFixedImageWidth?: number;
}

Defined in module lib/generated/typeguard.ts

function isDocumentImage(arg: unknown) : arg is DocumentImage;

DocumentItem

Part of a document row

interface DocumentItem {
	index: number;
	data: DocumentParagraph;
}

Defined in module lib/generated/typeguard.ts

function isDocumentItem(arg: unknown) : arg is DocumentItem;

DocumentPageBreak

Page break

interface DocumentPageBreak {
}

Defined in module lib/generated/typeguard.ts

function isDocumentPageBreak(arg: unknown) : arg is DocumentPageBreak;

DocumentParagraph

Paragraph of a document

interface DocumentParagraph {
	width: number;
	text: string;
	alignment: DocumentAlignment;
}

Defined in module lib/generated/typeguard.ts

function isDocumentParagraph(arg: unknown) : arg is DocumentParagraph;

DocumentSeparator

Separator (e. g. horizontal line)

interface DocumentSeparator {
}

Defined in module lib/generated/typeguard.ts

function isDocumentSeparator(arg: unknown) : arg is DocumentSeparator;

DocumentTable

Table placed in a document

interface DocumentTable {
	width: number;
	columnWidths: (number)[];
	columnHeaders: (DocumentTableCell)[];
	rows: ((DocumentTableCell)[])[];
}

Defined in module lib/generated/typeguard.ts

function isDocumentTable(arg: unknown) : arg is DocumentTable;

DocumentTableCell

Cell of a document-Table

interface DocumentTableCell {
	text: string;
	alignment: DocumentAlignment;
	backgroundColor?: string;
	lineHeight?: string;
}

Defined in module lib/generated/typeguard.ts

function isDocumentTableCell(arg: unknown) : arg is DocumentTableCell;

ErpStandardExportConfigBom

Configures an export as BOM JSON

interface ErpStandardExportConfigBom {
	bomVersion: BomVersion;
	serverUrl?: string;
	filePath?: string;
	articleNameMaxLength?: number;
	erpExportModeEnabled?: boolean;
	exportFlags?: BomExportFlags;
}

Defined in module lib/generated/typeguard.ts

function isErpStandardExportConfigBom(arg: unknown) : arg is ErpStandardExportConfigBom;

ErpStandardExportConfigTsGraphRep

Configures an export as TsGraphRep JSON

interface ErpStandardExportConfigTsGraphRep {
	serverUrl?: string;
	filePath?: string;
	articleNameMaxLength?: number;
	erpExportModeEnabled?: boolean;
	resourceTypes?: TsGraphRepResourceTypes;
}

Defined in module lib/generated/typeguard.ts

function isErpStandardExportConfigTsGraphRep(arg: unknown) : arg is ErpStandardExportConfigTsGraphRep;

ErpStandardInterfaceConfigBom

interface ErpStandardInterfaceConfigBom {
	bomVersion: BomVersion;
	exportFlags: BomExportFlags;
}

Defined in module lib/generated/typeguard.ts

function isErpStandardInterfaceConfigBom(arg: unknown) : arg is ErpStandardInterfaceConfigBom;

ErpStandardInterfaceConfigTsGraphRep

interface ErpStandardInterfaceConfigTsGraphRep {
	graphRepVersion: TsGraphRepVersion;
	resourceTypes: TsGraphRepResourceTypes;
}

Defined in module lib/generated/typeguard.ts

function isErpStandardInterfaceConfigTsGraphRep(arg: unknown) : arg is ErpStandardInterfaceConfigTsGraphRep;

FormRowConfig

Form row configuration

interface FormRowConfig {
	key: string;
	name: string;
	config: FormWidgetConfig;
}

Defined in module lib/generated/typeguard.ts

function isFormRowConfig(arg: unknown) : arg is FormRowConfig;

FormWidgetCheckBoxConfig

Check box configuration

interface FormWidgetCheckBoxConfig {
	initialValue: boolean;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetCheckBoxConfig(arg: unknown) : arg is FormWidgetCheckBoxConfig;

FormWidgetConfig

Form widget configuration

interface FormWidgetConfig {
	index: number;
	data: FormWidgetCheckBoxConfig;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetConfig(arg: unknown) : arg is FormWidgetConfig;

FormWidgetDropDownConfig

Drop down configuration

interface FormWidgetDropDownConfig {
	initialValue: string;
	entries: (FormWidgetDropDownEntry)[];
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetDropDownConfig(arg: unknown) : arg is FormWidgetDropDownConfig;

FormWidgetDropDownEntry

Drop down entry

interface FormWidgetDropDownEntry {
	id: string;
	text: string;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetDropDownEntry(arg: unknown) : arg is FormWidgetDropDownEntry;

FormWidgetLabelConfig

Label configuration

interface FormWidgetLabelConfig {
	initialValue: string;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetLabelConfig(arg: unknown) : arg is FormWidgetLabelConfig;

FormWidgetLineEditConfig

Line edit configuration

interface FormWidgetLineEditConfig {
	initialValue: string;
	validatorRegex?: string;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetLineEditConfig(arg: unknown) : arg is FormWidgetLineEditConfig;

FormWidgetSpinBoxConfig

Spin box configuration

interface FormWidgetSpinBoxConfig {
	initialValue: number;
	min: number;
	max: number;
	decimals: number;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetSpinBoxConfig(arg: unknown) : arg is FormWidgetSpinBoxConfig;

FormWidgetTextEditConfig

Text edit configuration

interface FormWidgetTextEditConfig {
	initialValue: string;
}

Defined in module lib/generated/typeguard.ts

function isFormWidgetTextEditConfig(arg: unknown) : arg is FormWidgetTextEditConfig;

GeometryEntity

interface GeometryEntity {
	assemblyPath: AssemblyPath;
	descriptor: GeometryEntityDescriptor;
}

Defined in module lib/generated/typeguard.ts

function isGeometryEntity(arg: unknown) : arg is GeometryEntity;

GeometryEntityDescriptor

interface GeometryEntityDescriptor {
	index: number;
	data: GeometryEntityDescriptorContentEdge;
}

Defined in module lib/generated/typeguard.ts

function isGeometryEntityDescriptor(arg: unknown) : arg is GeometryEntityDescriptor;

GeometryEntityDescriptorContentEdge

interface GeometryEntityDescriptorContentEdge {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isGeometryEntityDescriptorContentEdge(arg: unknown) : arg is GeometryEntityDescriptorContentEdge;

GeometryEntityDescriptorContentFace

interface GeometryEntityDescriptorContentFace {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isGeometryEntityDescriptorContentFace(arg: unknown) : arg is GeometryEntityDescriptorContentFace;

GltfNodeVendorData

Vendor-specific data associated that can be associated with a node in a generated Gltf representation

interface GltfNodeVendorData {
	assembly: Assembly;
	data: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isGltfNodeVendorData(arg: unknown) : arg is GltfNodeVendorData;

GraphCreatorInput

Input to create a PreDocumentGraph from

interface GraphCreatorInput {
	index: number;
	data: GraphCreatorInputStep;
}

Defined in module lib/generated/typeguard.ts

function isGraphCreatorInput(arg: unknown) : arg is GraphCreatorInput;
Details

Experimental API

GraphCreatorInputExtrusion

Extrusion input

interface GraphCreatorInputExtrusion {
	importUuid: string;
	userImportId: string;
	innerOuterPolygon: InnerOuterPolygon;
	depth: number;
	assemblyName: string;
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isGraphCreatorInputExtrusion(arg: unknown) : arg is GraphCreatorInputExtrusion;
Details

Experimental API

GraphCreatorInputFinalizedAssembly

Assembly input

interface GraphCreatorInputFinalizedAssembly {
	importUuid: string;
	userImportId: string;
	assembly: Assembly;
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isGraphCreatorInputFinalizedAssembly(arg: unknown) : arg is GraphCreatorInputFinalizedAssembly;
Details

Experimental API

GraphCreatorInputStep

STEP file content

interface GraphCreatorInputStep {
	importUuid: string;
	userImportId: string;
	data: ArrayBuffer;
	multiplicity: number;
	inputFilePath?: string;
}

Defined in module lib/generated/typeguard.ts

function isGraphCreatorInputStep(arg: unknown) : arg is GraphCreatorInputStep;
Details

Experimental API

GraphCreatorInputTwoDimRep

2D input

interface GraphCreatorInputTwoDimRep {
	importUuid: string;
	userImportId: string;
	twoDimRep: TwoDimRepresentation;
	thickness: number;
	assemblyName: string;
	multiplicity: number;
	inputFilePath?: string;
}

Defined in module lib/generated/typeguard.ts

function isGraphCreatorInputTwoDimRep(arg: unknown) : arg is GraphCreatorInputTwoDimRep;
Details

Experimental API

GraphDeserializationResult

interface GraphDeserializationResult {
	status: AddResultStatus;
	graph?: DocumentGraph;
}

Defined in module lib/generated/typeguard.ts

function isGraphDeserializationResult(arg: unknown) : arg is GraphDeserializationResult;

GraphImportAttributes

Additional input data for loaded graphs

interface GraphImportAttributes {
	importUuid: string;
	userImportId?: string;
	inputFilePath?: string;
}

Defined in module lib/generated/typeguard.ts

function isGraphImportAttributes(arg: unknown) : arg is GraphImportAttributes;

GraphUpdateConfig

interface GraphUpdateConfig {
	sheetNestorTimeout: CamNestorTimeout;
	sheetNestingMode: NestingMode;
}

Defined in module lib/generated/typeguard.ts

function isGraphUpdateConfig(arg: unknown) : arg is GraphUpdateConfig;

HandlerPackaging

Interface for DocumentGraphHandler

interface HandlerPackaging {
	package: Box3;
	maxWeight: number;
	masses: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isHandlerPackaging(arg: unknown) : arg is HandlerPackaging;
Details

Internal API; should not be used in third-party scripts.

HandlerPostProcessCreateSources

Interface for DocumentGraphHandler

interface HandlerPostProcessCreateSources {
}

Defined in module lib/generated/typeguard.ts

function isHandlerPostProcessCreateSources(arg: unknown) : arg is HandlerPostProcessCreateSources;
Details

Internal API; should not be used in third-party scripts.

HandlerPostProcessSheetBending

Interface for DocumentGraphHandler

interface HandlerPostProcessSheetBending {
	upperDieAffectDistances: (number)[];
	lowerDieAffectDistances: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isHandlerPostProcessSheetBending(arg: unknown) : arg is HandlerPostProcessSheetBending;
Details

Internal API; should not be used in third-party scripts.

HandlerPreProcessCreateWorkStep

Interface for DocumentGraphHandler

interface HandlerPreProcessCreateWorkStep {
	processTable: (Process)[];
}

Defined in module lib/generated/typeguard.ts

function isHandlerPreProcessCreateWorkStep(arg: unknown) : arg is HandlerPreProcessCreateWorkStep;
Details

Internal API; should not be used in third-party scripts.

HttpReply

Result of an HTTP request

interface HttpReply {
	errorCode: number;
	data: ArrayBuffer;
}

Defined in module lib/generated/typeguard.ts

function isHttpReply(arg: unknown) : arg is HttpReply;
Details

errorCode corresponds to QNetworkReply::NetworkError. See https://doc.qt.io/qt-5/qnetworkreply.html#NetworkError-enum

InitialSheetFilter

Filter for the initial sheet for an sheet metal part article

interface InitialSheetFilter {
	sheetId?: string;
	sheetMaterialId?: string;
}

Defined in module lib/generated/typeguard.ts

function isInitialSheetFilter(arg: unknown) : arg is InitialSheetFilter;

InitialTubeFilter

Filter for the initial tube for a tube article

interface InitialTubeFilter {
	tubeId?: string;
	tubeMaterialId?: string;
	tubeSpecificationId?: string;
}

Defined in module lib/generated/typeguard.ts

function isInitialTubeFilter(arg: unknown) : arg is InitialTubeFilter;

InputFileEntry

Input file data and optional properties

interface InputFileEntry {
	dataSource: AnyDataSource;
	importId?: string;
	multiplicity?: number;
	articleName?: string;
	sheetThickness?: number;
	sheetId?: string;
	sheetMaterialId?: string;
	tubeId?: string;
	tubeMaterialId?: string;
	tubeSpecificationId?: string;
}

Defined in module lib/generated/typeguard.ts

function isInputFileEntry(arg: unknown) : arg is InputFileEntry;

InvalidValueTableError

Table cell value is invalid

interface InvalidValueTableError {
	affectedRowType: TableType;
	affectedRowIndex: number;
	affectedColumnIndex: number;
	details: string;
}

Defined in module lib/generated/typeguard.ts

function isInvalidValueTableError(arg: unknown) : arg is InvalidValueTableError;

Joining

Joining sequence of a node

interface Joining {
	joiningSteps: (JoiningStep)[];
}

Defined in module lib/generated/typeguard.ts

function isJoining(arg: unknown) : arg is Joining;

JoiningStep

Step of joining sequence

interface JoiningStep {
	entries: (JoiningStepEntry)[];
	cameraOrientation?: CameraOrientation3;
	comment: string;
}

Defined in module lib/generated/typeguard.ts

function isJoiningStep(arg: unknown) : arg is JoiningStep;

JoiningStepEntry

Entry of step of joining sequence

interface JoiningStepEntry {
	assembly: Assembly;
}

Defined in module lib/generated/typeguard.ts

function isJoiningStepEntry(arg: unknown) : arg is JoiningStepEntry;

KeyValue

A key value pair

interface KeyValue {
	key: string;
	value: string;
}

Defined in module lib/generated/typeguard.ts

function isKeyValue(arg: unknown) : arg is KeyValue;

LaserSheetCuttingGas

Defines laser sheet cuttin gas type

Unique members interface
interface LaserSheetCuttingGasUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingGasUniqueMembers(arg: unknown) : arg is LaserSheetCuttingGasUniqueMembers;
Regular interface
interface LaserSheetCuttingGas extends LaserSheetCuttingGasUniqueMembers {
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingGas(arg: unknown) : arg is LaserSheetCuttingGas;
Details

Please also note the documentation for the respective table.

LaserSheetCuttingMaxThickness

Maximum sheet thickness constraint for a parameter combination

Unique members interface
interface LaserSheetCuttingMaxThicknessUniqueMembers {
	sheetCuttingMaterialId: string;
	laserSheetCuttingGasId: string;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingMaxThicknessUniqueMembers(arg: unknown) : arg is LaserSheetCuttingMaxThicknessUniqueMembers;
Regular interface
interface LaserSheetCuttingMaxThickness extends LaserSheetCuttingMaxThicknessUniqueMembers {
	maxThickness: number;
	minThickness: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingMaxThickness(arg: unknown) : arg is LaserSheetCuttingMaxThickness;
Details

Please also note the documentation for the respective table.

LaserSheetCuttingMinArea

Minumum area for contours to be considered cuttable

Unique members interface
interface LaserSheetCuttingMinAreaUniqueMembers {
	sheetCuttingMaterialId: string;
	laserSheetCuttingGasId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingMinAreaUniqueMembers(arg: unknown) : arg is LaserSheetCuttingMinAreaUniqueMembers;
Regular interface
interface LaserSheetCuttingMinArea extends LaserSheetCuttingMinAreaUniqueMembers {
	area: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingMinArea(arg: unknown) : arg is LaserSheetCuttingMinArea;
Details

Please also note the documentation for the respective table.

LaserSheetCuttingPierceTime

Defines laser sheet cutting pierce time

Unique members interface
interface LaserSheetCuttingPierceTimeUniqueMembers {
	sheetCuttingMaterialId: string;
	laserSheetCuttingGasId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingPierceTimeUniqueMembers(arg: unknown) : arg is LaserSheetCuttingPierceTimeUniqueMembers;
Regular interface
interface LaserSheetCuttingPierceTime extends LaserSheetCuttingPierceTimeUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingPierceTime(arg: unknown) : arg is LaserSheetCuttingPierceTime;
Details

Please also note the documentation for the respective table.

LaserSheetCuttingRate

Calculation parameters for nodes of type laser sheet cutting

Unique members interface
interface LaserSheetCuttingRateUniqueMembers {
	sheetCuttingMaterialId: string;
	laserSheetCuttingGasId: string;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingRateUniqueMembers(arg: unknown) : arg is LaserSheetCuttingRateUniqueMembers;
Regular interface
interface LaserSheetCuttingRate extends LaserSheetCuttingRateUniqueMembers {
	rate: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingRate(arg: unknown) : arg is LaserSheetCuttingRate;
Details

Please also note the documentation for the respective table.

LaserSheetCuttingSpeed

Defines laser sheet cutting speed

Unique members interface
interface LaserSheetCuttingSpeedUniqueMembers {
	sheetCuttingMaterialId: string;
	laserSheetCuttingGasId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingSpeedUniqueMembers(arg: unknown) : arg is LaserSheetCuttingSpeedUniqueMembers;
Regular interface
interface LaserSheetCuttingSpeed extends LaserSheetCuttingSpeedUniqueMembers {
	speed: number;
}

Defined in module lib/generated/typeguard.ts

function isLaserSheetCuttingSpeed(arg: unknown) : arg is LaserSheetCuttingSpeed;
Details

Please also note the documentation for the respective table.

Layer

Layer of a Layered

interface Layer {
	descriptor: number;
	number: number;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isLayer(arg: unknown) : arg is Layer;

LayeredExtraData

Extra data possibly associated with input leading to a Layered

interface LayeredExtraData {
	thickness: number;
	name: string;
	material: string;
}

Defined in module lib/generated/typeguard.ts

function isLayeredExtraData(arg: unknown) : arg is LayeredExtraData;

LineSegment

Line segment

interface LineSegment {
	from: Point2;
	to: Point2;
}

Defined in module lib/generated/typeguard.ts

function isLineSegment(arg: unknown) : arg is LineSegment;

LowerDie

LowerDie

Unique members interface
interface LowerDieUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isLowerDieUniqueMembers(arg: unknown) : arg is LowerDieUniqueMembers;
Regular interface
interface LowerDie extends LowerDieUniqueMembers {
	name: string;
	lowerDieGroupId: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isLowerDie(arg: unknown) : arg is LowerDie;

LowerDieGroup

Defines lower die-bending die group

Unique members interface
interface LowerDieGroupUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isLowerDieGroupUniqueMembers(arg: unknown) : arg is LowerDieGroupUniqueMembers;
Regular interface
interface LowerDieGroup extends LowerDieGroupUniqueMembers {
	name: string;
	exportIdentifier: string;
	openingWidth: number;
	angle: number;
	radius: number;
}

Defined in module lib/generated/typeguard.ts

function isLowerDieGroup(arg: unknown) : arg is LowerDieGroup;
Details

Please also note the documentation for the respective table.

LowerDieUnit

LowerDieUnit

Unique members interface
interface LowerDieUnitUniqueMembers {
	lowerDieId: string;
	dimX: number;
}

Defined in module lib/generated/typeguard.ts

function isLowerDieUnitUniqueMembers(arg: unknown) : arg is LowerDieUnitUniqueMembers;
Regular interface
interface LowerDieUnit extends LowerDieUnitUniqueMembers {
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isLowerDieUnit(arg: unknown) : arg is LowerDieUnit;

ManufacturingCostComponents

interface ManufacturingCostComponents {
	setupCost: number;
	unitCost: number;
	materialCost: number;
}

Defined in module lib/generated/typeguard.ts

function isManufacturingCostComponents(arg: unknown) : arg is ManufacturingCostComponents;

MaterialGroup

Unique members interface
interface MaterialGroupUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isMaterialGroupUniqueMembers(arg: unknown) : arg is MaterialGroupUniqueMembers;
Regular interface
interface MaterialGroup extends MaterialGroupUniqueMembers {
	name: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isMaterialGroup(arg: unknown) : arg is MaterialGroup;

Matrix2

Column-major 2x2 Matrix

interface Matrix2 {
	entries: [ (number), (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isMatrix2(arg: unknown) : arg is Matrix2;
Details

A Matrix2 is a square matrix of size 2x2. Its content is stored as a flat array of length 4 in column-major format.

Matrix3

Column-major 3x3 Matrix

interface Matrix3 {
	entries: [ (number), (number), (number), (number), (number), (number), (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isMatrix3(arg: unknown) : arg is Matrix3;
Details

A Matrix3 is a square matrix of size 3x3. Its content is stored as a flat array of length 9 in column-major format.

Matrix4

Column-major 4x4 Matrix

interface Matrix4 {
	entries: [ (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isMatrix4(arg: unknown) : arg is Matrix4;
Details

A Matrix4 is a square matrix of size 4x4. Its content is stored as a flat array of length 16 in column-major format.

MeasurementScene

A Scene combined with three-dimensional coordinate information

interface MeasurementScene {
	scene: Scene;
	camera: Camera3;
}

Defined in module lib/generated/typeguard.ts

function isMeasurementScene(arg: unknown) : arg is MeasurementScene;
Details

This object is deprecated and will be removed in future versions.

Nest2PartInstance

Instance of a part in a 2D nesting

interface Nest2PartInstance {
	descriptor: number;
	transformation: CoordinateSystem2;
}

Defined in module lib/generated/typeguard.ts

function isNest2PartInstance(arg: unknown) : arg is Nest2PartInstance;

Nest3InputBin

Information about the box to nest into in 3D nesting

interface Nest3InputBin {
	box: Box3;
	maxWeight: number;
}

Defined in module lib/generated/typeguard.ts

function isNest3InputBin(arg: unknown) : arg is Nest3InputBin;

Nest3Part

All information needed of part that is to be nested in 3D nesting

interface Nest3Part {
	assembly: Assembly;
	multiplicity: number;
	mass: number;
	profileShadow: ProfileShadowFuture;
}

Defined in module lib/generated/typeguard.ts

function isNest3Part(arg: unknown) : arg is Nest3Part;

Nest3ResultBox

One result box of 3D nesting

interface Nest3ResultBox {
	assembly: Assembly;
	weight: number;
}

Defined in module lib/generated/typeguard.ts

function isNest3ResultBox(arg: unknown) : arg is Nest3ResultBox;

NewNodeParams

Parameters to apply to a newly created node

interface NewNodeParams {
	processType: ProcessType;
	processId: string;
	nodeUserData: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isNewNodeParams(arg: unknown) : arg is NewNodeParams;
Details

Currently only nodes of type userDefined and transform can be created.

NodeIssueBendDeductionApplicationFailed

interface NodeIssueBendDeductionApplicationFailed {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendDeductionApplicationFailed(arg: unknown) : arg is NodeIssueBendDeductionApplicationFailed;

NodeIssueBendDeductionThicknessDeviation

interface NodeIssueBendDeductionThicknessDeviation {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendDeductionThicknessDeviation(arg: unknown) : arg is NodeIssueBendDeductionThicknessDeviation;

NodeIssueBendDieChoiceFailed

interface NodeIssueBendDieChoiceFailed {
	flangeLengthIssues: (NodeIssueDieChoiceFailedFlangeLengthIssue)[];
	bendLineGrossLengthIssues: (NodeIssueDieChoiceFailedBendLineGrossLengthIssue)[];
	radiusIssues: (NodeIssueDieChoiceFailedRadiusIssue)[];
	parameterIssues: (NodeIssueDieChoiceFailedParameterIssue)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendDieChoiceFailed(arg: unknown) : arg is NodeIssueBendDieChoiceFailed;

NodeIssueBendFlangeTooShort

interface NodeIssueBendFlangeTooShort {
	bendDescriptor: number;
	flangeLength0: number;
	flangeLength1: number;
	requiredOpeningWidth: number;
	actualOpeningWidth: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendFlangeTooShort(arg: unknown) : arg is NodeIssueBendFlangeTooShort;

NodeIssueBendLineGrossLengthConstraintViolated

interface NodeIssueBendLineGrossLengthConstraintViolated {
	bendDescriptor: number;
	actualGrossLength: number;
	maxAllowedGrossLength: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendLineGrossLengthConstraintViolated(arg: unknown) : arg is NodeIssueBendLineGrossLengthConstraintViolated;

NodeIssueBendLineNetLengthConstraintViolated

interface NodeIssueBendLineNetLengthConstraintViolated {
	bendDescriptor: number;
	actualNetLength: number;
	maxAllowedNetLength: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendLineNetLengthConstraintViolated(arg: unknown) : arg is NodeIssueBendLineNetLengthConstraintViolated;

NodeIssueBendRadiusDeviation

interface NodeIssueBendRadiusDeviation {
	bendDescriptor: number;
	constructedInnerRadius: number;
	resultingInnerRadius: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendRadiusDeviation(arg: unknown) : arg is NodeIssueBendRadiusDeviation;

NodeIssueBendZoneAffectsContour

interface NodeIssueBendZoneAffectsContour {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendZoneAffectsContour(arg: unknown) : arg is NodeIssueBendZoneAffectsContour;

NodeIssueCadFeatureUnhandled

interface NodeIssueCadFeatureUnhandled {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueCadFeatureUnhandled(arg: unknown) : arg is NodeIssueCadFeatureUnhandled;

NodeIssueClassificationEnforceable

interface NodeIssueClassificationEnforceable {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueClassificationEnforceable(arg: unknown) : arg is NodeIssueClassificationEnforceable;

NodeIssueContourSizeConstraintViolated

interface NodeIssueContourSizeConstraintViolated {
	expectedMinimalContourArea: number;
	violatingContourAreas: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueContourSizeConstraintViolated(arg: unknown) : arg is NodeIssueContourSizeConstraintViolated;

NodeIssueDatumInvalid

interface NodeIssueDatumInvalid {
	nodeDatumType: NodeDatumType;
	value: string;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDatumInvalid(arg: unknown) : arg is NodeIssueDatumInvalid;

NodeIssueDatumMissing

interface NodeIssueDatumMissing {
	nodeDatumType: NodeDatumType;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDatumMissing(arg: unknown) : arg is NodeIssueDatumMissing;

NodeIssueDieChoiceFailedBendLineGrossLengthIssue

interface NodeIssueDieChoiceFailedBendLineGrossLengthIssue {
	bendDescriptor: number;
	actualGrossLength: number;
	maxGrossLength: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDieChoiceFailedBendLineGrossLengthIssue(arg: unknown) : arg is NodeIssueDieChoiceFailedBendLineGrossLengthIssue;

NodeIssueDieChoiceFailedFlangeLengthIssue

interface NodeIssueDieChoiceFailedFlangeLengthIssue {
	bendDescriptor: number;
	actualLength: number;
	minLength: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDieChoiceFailedFlangeLengthIssue(arg: unknown) : arg is NodeIssueDieChoiceFailedFlangeLengthIssue;

NodeIssueDieChoiceFailedParameterIssue

interface NodeIssueDieChoiceFailedParameterIssue {
	bendDescriptor: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDieChoiceFailedParameterIssue(arg: unknown) : arg is NodeIssueDieChoiceFailedParameterIssue;

NodeIssueDieChoiceFailedRadiusIssue

interface NodeIssueDieChoiceFailedRadiusIssue {
	bendDescriptor: number;
	constructedInnerRadius: number;
	closestResultingInnerRadius: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDieChoiceFailedRadiusIssue(arg: unknown) : arg is NodeIssueDieChoiceFailedRadiusIssue;

NodeIssueDimensionConstraintViolated

interface NodeIssueDimensionConstraintViolated {
	actualDimensions: [ (number), (number), (number), ];
	violatedLowerConstraints?: [ (number), (number), (number), ];
	violatedUpperConstraints?: [ (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueDimensionConstraintViolated(arg: unknown) : arg is NodeIssueDimensionConstraintViolated;

NodeIssueFeatureNotLicensed

interface NodeIssueFeatureNotLicensed {
	feature: Feature;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueFeatureNotLicensed(arg: unknown) : arg is NodeIssueFeatureNotLicensed;

NodeIssueMassConstraintViolated

interface NodeIssueMassConstraintViolated {
	actualMass: number;
	minMass: number;
	maxMass: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueMassConstraintViolated(arg: unknown) : arg is NodeIssueMassConstraintViolated;

NodeIssueMaterialIncompatible

interface NodeIssueMaterialIncompatible {
	incompatibleSheetMaterialIds: (string)[];
	incompatibleTubeMaterialIds: (string)[];
	incompatiblePurchasePartMaterialIds: (string)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueMaterialIncompatible(arg: unknown) : arg is NodeIssueMaterialIncompatible;

NodeIssueNestingFailed

interface NodeIssueNestingFailed {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueNestingFailed(arg: unknown) : arg is NodeIssueNestingFailed;

NodeIssueNestingTwoDimRepresentationInvalid

interface NodeIssueNestingTwoDimRepresentationInvalid {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueNestingTwoDimRepresentationInvalid(arg: unknown) : arg is NodeIssueNestingTwoDimRepresentationInvalid;

NodeIssueSheetNotAvailable

interface NodeIssueSheetNotAvailable {
	thickness?: number;
	sheetMaterialId?: string;
	dimX?: number;
	dimY?: number;
	outOfStock: boolean;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueSheetNotAvailable(arg: unknown) : arg is NodeIssueSheetNotAvailable;

NodeIssueSheetThicknessConstraintViolated

interface NodeIssueSheetThicknessConstraintViolated {
	minThickness: number;
	maxThickness: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueSheetThicknessConstraintViolated(arg: unknown) : arg is NodeIssueSheetThicknessConstraintViolated;

NodeIssueTubeNotAvailable

interface NodeIssueTubeNotAvailable {
	tubeMaterialId?: string;
	tubeSpecificationId?: string;
	tubeProfileIds: (string)[];
	inputLength?: number;
	outOfStock: boolean;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueTubeNotAvailable(arg: unknown) : arg is NodeIssueTubeNotAvailable;

NodeIssueTubeProfileNotSupported

interface NodeIssueTubeProfileNotSupported {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueTubeProfileNotSupported(arg: unknown) : arg is NodeIssueTubeProfileNotSupported;

NodeIssueTubeUnfoldingInconsistent

interface NodeIssueTubeUnfoldingInconsistent {
	expectedPerimeter: number;
	actualPerimeter: number;
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueTubeUnfoldingInconsistent(arg: unknown) : arg is NodeIssueTubeUnfoldingInconsistent;

NodeIssueUnclassifiedGeometryPartiallyUnclassified

interface NodeIssueUnclassifiedGeometryPartiallyUnclassified {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueUnclassifiedGeometryPartiallyUnclassified(arg: unknown) : arg is NodeIssueUnclassifiedGeometryPartiallyUnclassified;

NodeIssueUnexpected

interface NodeIssueUnexpected {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueUnexpected(arg: unknown) : arg is NodeIssueUnexpected;

NodeIssueUnfoldingFailed

interface NodeIssueUnfoldingFailed {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueUnfoldingFailed(arg: unknown) : arg is NodeIssueUnfoldingFailed;

NodeIssueUnfoldingNotSimple

interface NodeIssueUnfoldingNotSimple {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueUnfoldingNotSimple(arg: unknown) : arg is NodeIssueUnfoldingNotSimple;

NodeUpdate

interface NodeUpdate {
	index: number;
	data: NodeUpdateUndefined;
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdate(arg: unknown) : arg is NodeUpdate;

NodeUpdateJoining

interface NodeUpdateJoining {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateJoining(arg: unknown) : arg is NodeUpdateJoining;

NodeUpdatePackaging

interface NodeUpdatePackaging {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdatePackaging(arg: unknown) : arg is NodeUpdatePackaging;

NodeUpdateSheet

interface NodeUpdateSheet {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateSheet(arg: unknown) : arg is NodeUpdateSheet;

NodeUpdateSheetBending

interface NodeUpdateSheetBending {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	dieChoiceMap?: (DieChoiceMapEntry)[];
	toggleUpperSide?: boolean;
	correctBends?: boolean;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateSheetBending(arg: unknown) : arg is NodeUpdateSheetBending;

NodeUpdateSheetCutting

interface NodeUpdateSheetCutting {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	sheetThickness?: number;
	toggleUpperSide?: boolean;
	calcUserInputs?: (AnyCalcUserInput)[];
	doUpdateNestingMode?: boolean;
	nestingMode?: NestingMode;
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateSheetCutting(arg: unknown) : arg is NodeUpdateSheetCutting;

NodeUpdateTransform

interface NodeUpdateTransform {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateTransform(arg: unknown) : arg is NodeUpdateTransform;

NodeUpdateTube

interface NodeUpdateTube {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateTube(arg: unknown) : arg is NodeUpdateTube;

NodeUpdateTubeCutting

interface NodeUpdateTubeCutting {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateTubeCutting(arg: unknown) : arg is NodeUpdateTubeCutting;

NodeUpdateUndefined

interface NodeUpdateUndefined {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateUndefined(arg: unknown) : arg is NodeUpdateUndefined;

NodeUpdateUserDefined

interface NodeUpdateUserDefined {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateUserDefined(arg: unknown) : arg is NodeUpdateUserDefined;

NodeUpdateUserDefinedBase

interface NodeUpdateUserDefinedBase {
	vertex: Vertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isNodeUpdateUserDefinedBase(arg: unknown) : arg is NodeUpdateUserDefinedBase;

NodeUserDataBase

Maps node UserData entry name to a type

interface NodeUserDataBase {
	attachments: (Attachment)[];
	bendLineEngravingMode: BendLineEngravingMode;
	coatingId: string;
	comment: string;
	deburrDoubleSided: boolean;
	fixedRotations: (number)[];
	numCountersinks: number;
	numThreads: number;
	purchasePartMaterialId: string;
	sheetFilterSheetIds: (string)[];
	sheetSpec: string;
	sheetMaterialId: string;
	sheetTappingData: (SheetTappingDataEntry)[];
	testReportRequired: boolean;
	tubeFilterTubeIds: (string)[];
	tubeMaterialId: string;
	tubeSpecificationId: string;
	userDefinedMaterialCostsPerPiece: number;
	userDefinedScalePrices: (UserDefinedScalePrice)[];
	userDefinedSetupTime: number;
	userDefinedUnitTimePerPiece: number;
	screwThreadEngravingEnabled: boolean;
}

Defined in module lib/generated/typeguard.ts

function isNodeUserDataBase(arg: unknown) : arg is NodeUserDataBase;

Packaging

Defines a packaging

Unique members interface
interface PackagingUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isPackagingUniqueMembers(arg: unknown) : arg is PackagingUniqueMembers;
Regular interface
interface Packaging extends PackagingUniqueMembers {
	name: string;
	dimX: number;
	dimY: number;
	dimZ: number;
	maxWeight: number;
	price: number;
	tr: number;
	tep: number;
	tea: number;
	packagingWeight: number;
}

Defined in module lib/generated/typeguard.ts

function isPackaging(arg: unknown) : arg is Packaging;
Details

Please also note the documentation for the respective table.

PartCreationDialogConfigLProfile

Widget config

interface PartCreationDialogConfigLProfile {
	sheets: (Sheet)[];
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogConfigLProfile(arg: unknown) : arg is PartCreationDialogConfigLProfile;

PartCreationDialogConfigRectangularSheetMetalPart

Widget config

interface PartCreationDialogConfigRectangularSheetMetalPart {
	sheets: (Sheet)[];
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogConfigRectangularSheetMetalPart(arg: unknown) : arg is PartCreationDialogConfigRectangularSheetMetalPart;

PartCreationDialogConfigTubePart

Widget config

interface PartCreationDialogConfigTubePart {
	tubes: (Tube)[];
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogConfigTubePart(arg: unknown) : arg is PartCreationDialogConfigTubePart;

PartCreationDialogConfigUProfile

Widget config

interface PartCreationDialogConfigUProfile {
	sheets: (Sheet)[];
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogConfigUProfile(arg: unknown) : arg is PartCreationDialogConfigUProfile;

PartCreationDialogResultLProfile

Widget result

interface PartCreationDialogResultLProfile {
	thickness: number;
	innerRadius: number;
	flangeLengthX: number;
	flangeLengthY: number;
	extrusionDepth: number;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogResultLProfile(arg: unknown) : arg is PartCreationDialogResultLProfile;

PartCreationDialogResultRectangularSheetMetalPart

Widget result

interface PartCreationDialogResultRectangularSheetMetalPart {
	thickness: number;
	width: number;
	height: number;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogResultRectangularSheetMetalPart(arg: unknown) : arg is PartCreationDialogResultRectangularSheetMetalPart;

PartCreationDialogResultTubePart

Widget result

interface PartCreationDialogResultTubePart {
	tubeIdentifier: string;
	dimX: number;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogResultTubePart(arg: unknown) : arg is PartCreationDialogResultTubePart;

PartCreationDialogResultUProfile

Widget result

interface PartCreationDialogResultUProfile {
	thickness: number;
	innerRadius: number;
	width: number;
	height: number;
	extrusionDepth: number;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isPartCreationDialogResultUProfile(arg: unknown) : arg is PartCreationDialogResultUProfile;

Point2

2-dim vector

interface Point2 {
	entries: [ (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isPoint2(arg: unknown) : arg is Point2;
Details

A Point2 is defined by an array of length 2 representing its x and y coordinates

Point3

3-dim vector

interface Point3 {
	entries: [ (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isPoint3(arg: unknown) : arg is Point3;
Details

A Point3 is defined by an array of length 3 representing its x, y, and z coordinates

PrivateArticleCalcDataResourceEntry

Private API

interface PrivateArticleCalcDataResourceEntry {
	nodeId: GraphNodeId;
	approxSemimanufacturedShare?: number;
	manufacturingPriceExclSurcharges?: number;
	manufacturingPriceInclSurcharges?: number;
	recursiveManufacturingPriceExclSurcharges?: number;
	recursiveManufacturingPriceInclSurcharges?: number;
	sellingPrice?: number;
	recursiveSellingPrice?: number;
}

Defined in module lib/generated/typeguard.ts

function isPrivateArticleCalcDataResourceEntry(arg: unknown) : arg is PrivateArticleCalcDataResourceEntry;

PrivateArticleDenominations

Private API

interface PrivateArticleDenominations {
	name?: string;
	externalPartNumber?: string;
	externalDrawingNumber?: string;
	externalRevisionNumber?: string;
	internalPartNumber?: string;
	internalReferenceNumber?: string;
}

Defined in module lib/generated/typeguard.ts

function isPrivateArticleDenominations(arg: unknown) : arg is PrivateArticleDenominations;

PrivateArticleRepresentation

Private API

interface PrivateArticleRepresentation {
	name: string;
	externalPartNumber: string;
	externalDrawingNumber: string;
	externalRevisionNumber: string;
	internalPartNumber: string;
	internalReferenceNumber: string;
	comment: string;
	multiplicity: number;
	nodeId: GraphNodeId;
	rootId: GraphNodeRootId;
	nodeIds: (GraphNodeId)[];
	inputFilePath: string;
}

Defined in module lib/generated/typeguard.ts

function isPrivateArticleRepresentation(arg: unknown) : arg is PrivateArticleRepresentation;

PrivateArticleSignatureNodeResourceEntry

Private API

interface PrivateArticleSignatureNodeResourceEntry {
	nodeId: GraphNodeId;
	material: string;
	hasThreadableCoreHole?: boolean;
	mass?: number;
	sheetThickness?: number;
	tubeProfile?: TubeProfileGeometry;
}

Defined in module lib/generated/typeguard.ts

function isPrivateArticleSignatureNodeResourceEntry(arg: unknown) : arg is PrivateArticleSignatureNodeResourceEntry;

PrivateArticleTextResourceEntry

Private API

interface PrivateArticleTextResourceEntry {
	nodeId: GraphNodeId;
	details: string;
	detailsDocument: ((DocumentItem)[])[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateArticleTextResourceEntry(arg: unknown) : arg is PrivateArticleTextResourceEntry;

PrivateAssemblyResourceEntry

Private API

interface PrivateAssemblyResourceEntry {
	nodeId: GraphNodeId;
	assembly: Assembly;
}

Defined in module lib/generated/typeguard.ts

function isPrivateAssemblyResourceEntry(arg: unknown) : arg is PrivateAssemblyResourceEntry;

PrivateBinaryResourceEntry

Private API

interface PrivateBinaryResourceEntry {
	nodeId: GraphNodeId;
	data: ArrayBuffer;
}

Defined in module lib/generated/typeguard.ts

function isPrivateBinaryResourceEntry(arg: unknown) : arg is PrivateBinaryResourceEntry;

PrivateGraphData

Private API

interface PrivateGraphData {
	projectName: string;
}

Defined in module lib/generated/typeguard.ts

function isPrivateGraphData(arg: unknown) : arg is PrivateGraphData;

PrivateGuiData

Private API

interface PrivateGuiData {
	index: number;
	data: PrivateGuiDataGraphRep;
}

Defined in module lib/generated/typeguard.ts

function isPrivateGuiData(arg: unknown) : arg is PrivateGuiData;

PrivateGuiDataGraphRep

Private API

interface PrivateGuiDataGraphRep {
	nodes: (PrivateNodeRepresentation)[];
	articles: (PrivateArticleRepresentation)[];
	resources: PrivateResources;
	data: PrivateGraphData;
	sourceMults: (PrivateSourceMultEntry)[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateGuiDataGraphRep(arg: unknown) : arg is PrivateGuiDataGraphRep;

PrivateMainWindowErpConfig

Private API

interface PrivateMainWindowErpConfig {
	standardExportToThirdPartyEnabled: boolean;
	standardExportToFileEnabled: boolean;
	erpExportModeEnabled: boolean;
	articleNameMaxLength?: number;
}

Defined in module lib/generated/typeguard.ts

function isPrivateMainWindowErpConfig(arg: unknown) : arg is PrivateMainWindowErpConfig;

PrivateMainWindowScriptAction

Private API

interface PrivateMainWindowScriptAction {
	name: string;
	modulePath: string;
	functionName: string;
	shortcut?: string;
	icon?: string;
	menuType?: PrivateMainWindowMenuType;
}

Defined in module lib/generated/typeguard.ts

function isPrivateMainWindowScriptAction(arg: unknown) : arg is PrivateMainWindowScriptAction;

PrivateMainWindowScriptConfig

Private API

interface PrivateMainWindowScriptConfig {
	scripts: (PrivateMainWindowScriptAction)[];
	erpConfig: PrivateMainWindowErpConfig;
}

Defined in module lib/generated/typeguard.ts

function isPrivateMainWindowScriptConfig(arg: unknown) : arg is PrivateMainWindowScriptConfig;

PrivateMeasurementScenesResourceEntry

Private API

interface PrivateMeasurementScenesResourceEntry {
	nodeId: GraphNodeId;
	data: (MeasurementScene)[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateMeasurementScenesResourceEntry(arg: unknown) : arg is PrivateMeasurementScenesResourceEntry;

PrivateNodeCalcDataResourceEntry

Private API

interface PrivateNodeCalcDataResourceEntry {
	nodeId: GraphNodeId;
	materialCosts?: number;
	setupTime?: number;
	unitTime?: number;
	manufacturingPriceExclSurcharges?: number;
	manufacturingPriceInclSurcharges?: number;
	sellingPrice?: number;
}

Defined in module lib/generated/typeguard.ts

function isPrivateNodeCalcDataResourceEntry(arg: unknown) : arg is PrivateNodeCalcDataResourceEntry;

PrivateNodeIssueResourceEntry

Private API

interface PrivateNodeIssueResourceEntry {
	nodeId: GraphNodeId;
	issues: (AnyNodeIssue)[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateNodeIssueResourceEntry(arg: unknown) : arg is PrivateNodeIssueResourceEntry;

PrivateNodeRepresentation

Private API

interface PrivateNodeRepresentation {
	nodeId: GraphNodeId;
	rootId: GraphNodeRootId;
	sourceNodeIds: (GraphNodeId)[];
	targetNodeIds: (GraphNodeId)[];
	workStepType: WorkStepType;
	processType: ProcessType;
	processId: string;
	processName: string;
	comment: string;
	hasTwoDimInput: boolean;
	hasCalcOverride: boolean;
	hasCalcUserInput: boolean;
	hasTwoDimRepresentation: boolean;
}

Defined in module lib/generated/typeguard.ts

function isPrivateNodeRepresentation(arg: unknown) : arg is PrivateNodeRepresentation;

PrivateNodeTextResourceEntry

Private API

interface PrivateNodeTextResourceEntry {
	nodeId: GraphNodeId;
	brief: string;
	details: string;
	toolTip: string;
}

Defined in module lib/generated/typeguard.ts

function isPrivateNodeTextResourceEntry(arg: unknown) : arg is PrivateNodeTextResourceEntry;

PrivatePostProcessingResultCreateSourcesSheetCutting

Interface for DocumentGraphHandler

interface PrivatePostProcessingResultCreateSourcesSheetCutting {
	source: Vertex;
	deducedDataOfSource: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isPrivatePostProcessingResultCreateSourcesSheetCutting(arg: unknown) : arg is PrivatePostProcessingResultCreateSourcesSheetCutting;
Details

Internal API; should not be used in third-party scripts.

PrivatePostProcessingResultCreateWorkStep

Interface for DocumentGraphHandler

interface PrivatePostProcessingResultCreateWorkStep {
	processType: ProcessType;
	processId: string;
	nodeUserData: StringIndexedInterface;
	articleUserData?: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isPrivatePostProcessingResultCreateWorkStep(arg: unknown) : arg is PrivatePostProcessingResultCreateWorkStep;
Details

Internal API; should not be used in third-party scripts.

PrivateProblematicGeometryResourceEntry

Private API

interface PrivateProblematicGeometryResourceEntry {
	nodeId: GraphNodeId;
	hasProblematicGeometries: boolean;
}

Defined in module lib/generated/typeguard.ts

function isPrivateProblematicGeometryResourceEntry(arg: unknown) : arg is PrivateProblematicGeometryResourceEntry;

PrivateProjectResources

Private API

interface PrivateProjectResources {
	costAnalysisDocument: ((DocumentItem)[])[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateProjectResources(arg: unknown) : arg is PrivateProjectResources;

PrivateResources

Private API

interface PrivateResources {
	pngs: (PrivateBinaryResourceEntry)[];
	inputAssemblies: (PrivateAssemblyResourceEntry)[];
	outputAssemblies: (PrivateAssemblyResourceEntry)[];
	defaultScenes: (PrivateSceneResourceEntry)[];
	bendZoneScenes: (PrivateSceneResourceEntry)[];
	lowerDieAffectZoneScenes: (PrivateSceneResourceEntry)[];
	technicalDrawingScenes: (PrivateMeasurementScenesResourceEntry)[];
	tubeOutlineScenes: (PrivateSceneResourceEntry)[];
	nodeIssues: (PrivateNodeIssueResourceEntry)[];
	nodeTexts: (PrivateNodeTextResourceEntry)[];
	articleTexts: (PrivateArticleTextResourceEntry)[];
	articleCalcData: (PrivateArticleCalcDataResourceEntry)[];
	articleSignatureNodeData: (PrivateArticleSignatureNodeResourceEntry)[];
	nodeCalcData: (PrivateNodeCalcDataResourceEntry)[];
	nodeProblematicGeometryData: (PrivateProblematicGeometryResourceEntry)[];
	projectResources: PrivateProjectResources;
}

Defined in module lib/generated/typeguard.ts

function isPrivateResources(arg: unknown) : arg is PrivateResources;

PrivateSceneResourceEntry

Private API

interface PrivateSceneResourceEntry {
	nodeId: GraphNodeId;
	data: Scene;
}

Defined in module lib/generated/typeguard.ts

function isPrivateSceneResourceEntry(arg: unknown) : arg is PrivateSceneResourceEntry;

PrivateSheetTablesEditorInitData

Private API

interface PrivateSheetTablesEditorInitData {
	sheetMaterials: (SheetMaterial)[];
	sheetMaterialDensities: (SheetMaterialDensity)[];
	sheetMaterialScrapValues: (SheetMaterialScrapValue)[];
	sheets: (Sheet)[];
	sheetPrices: (SheetPrice)[];
	sheetStocks: (SheetStock)[];
	sheetModuli: (SheetModulus)[];
	sheetPriorities: (SheetPriority)[];
	sheetCuttingMaterials: (SheetCuttingMaterial)[];
	sheetBendingMaterials: (SheetBendingMaterial)[];
	sheetCuttingMaterialMappings: (SheetCuttingMaterialMapping)[];
	sheetBendingMaterialMappings: (SheetBendingMaterialMapping)[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateSheetTablesEditorInitData(arg: unknown) : arg is PrivateSheetTablesEditorInitData;

PrivateSourceMultEntry

Private API

interface PrivateSourceMultEntry {
	sourceArticleNodeId: GraphNodeId;
	targetArticleNodeId: GraphNodeId;
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isPrivateSourceMultEntry(arg: unknown) : arg is PrivateSourceMultEntry;

PrivateTableDialogInit

Private API

interface PrivateTableDialogInit {
	tables: (AnyTable)[];
	forked: boolean;
}

Defined in module lib/generated/typeguard.ts

function isPrivateTableDialogInit(arg: unknown) : arg is PrivateTableDialogInit;

PrivateTubeTablesEditorInitData

Private API

interface PrivateTubeTablesEditorInitData {
	tubeMaterials: (TubeMaterial)[];
	tubeMaterialDensities: (TubeMaterialDensity)[];
	tubeProfiles: (TubeProfile)[];
	tubeSpecifications: (TubeSpecification)[];
	tubes: (Tube)[];
}

Defined in module lib/generated/typeguard.ts

function isPrivateTubeTablesEditorInitData(arg: unknown) : arg is PrivateTubeTablesEditorInitData;

Process

Defines a process that can be assigned to a node

Unique members interface
interface ProcessUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessUniqueMembers(arg: unknown) : arg is ProcessUniqueMembers;
Regular interface
interface Process extends ProcessUniqueMembers {
	parentIdentifier: string;
	type: ProcessType;
	name: string;
	costCenter: string;
	priority: number;
	active: boolean;
	childrenActive: boolean;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isProcess(arg: unknown) : arg is Process;
Details

Please also note the documentation for the respective table.

ProcessConstraintsPurchasePartMaterial

Purchase part material constraint for a process

Unique members interface
interface ProcessConstraintsPurchasePartMaterialUniqueMembers {
	processId: string;
	purchasePartMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessConstraintsPurchasePartMaterialUniqueMembers(arg: unknown) : arg is ProcessConstraintsPurchasePartMaterialUniqueMembers;
Regular interface
interface ProcessConstraintsPurchasePartMaterial extends ProcessConstraintsPurchasePartMaterialUniqueMembers {
	isAllowed: boolean;
}

Defined in module lib/generated/typeguard.ts

function isProcessConstraintsPurchasePartMaterial(arg: unknown) : arg is ProcessConstraintsPurchasePartMaterial;

ProcessConstraintsSheetMaterial

Sheet material constraint for a process

Unique members interface
interface ProcessConstraintsSheetMaterialUniqueMembers {
	processId: string;
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessConstraintsSheetMaterialUniqueMembers(arg: unknown) : arg is ProcessConstraintsSheetMaterialUniqueMembers;
Regular interface
interface ProcessConstraintsSheetMaterial extends ProcessConstraintsSheetMaterialUniqueMembers {
	isAllowed: boolean;
}

Defined in module lib/generated/typeguard.ts

function isProcessConstraintsSheetMaterial(arg: unknown) : arg is ProcessConstraintsSheetMaterial;

ProcessConstraintsTubeMaterial

Tube material constraint for a process

Unique members interface
interface ProcessConstraintsTubeMaterialUniqueMembers {
	processId: string;
	tubeMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessConstraintsTubeMaterialUniqueMembers(arg: unknown) : arg is ProcessConstraintsTubeMaterialUniqueMembers;
Regular interface
interface ProcessConstraintsTubeMaterial extends ProcessConstraintsTubeMaterialUniqueMembers {
	isAllowed: boolean;
}

Defined in module lib/generated/typeguard.ts

function isProcessConstraintsTubeMaterial(arg: unknown) : arg is ProcessConstraintsTubeMaterial;

ProcessConsumableRate

Consumable rate per process

Unique members interface
interface ProcessConsumableRateUniqueMembers {
	processId: string;
	consumableId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessConsumableRateUniqueMembers(arg: unknown) : arg is ProcessConsumableRateUniqueMembers;
Regular interface
interface ProcessConsumableRate extends ProcessConsumableRateUniqueMembers {
	unitsPerHour: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessConsumableRate(arg: unknown) : arg is ProcessConsumableRate;

ProcessCustomCalculation

Custom process calculation

Unique members interface
interface ProcessCustomCalculationUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessCustomCalculationUniqueMembers(arg: unknown) : arg is ProcessCustomCalculationUniqueMembers;
Regular interface
interface ProcessCustomCalculation extends ProcessCustomCalculationUniqueMembers {
	json: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessCustomCalculation(arg: unknown) : arg is ProcessCustomCalculation;

ProcessHandlingTime

Handling time for a process

Unique members interface
interface ProcessHandlingTimeUniqueMembers {
	processId: string;
	mass: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessHandlingTimeUniqueMembers(arg: unknown) : arg is ProcessHandlingTimeUniqueMembers;
Regular interface
interface ProcessHandlingTime extends ProcessHandlingTimeUniqueMembers {
	setupTimeDelta: number;
	unitTimeDelta: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessHandlingTime(arg: unknown) : arg is ProcessHandlingTime;

ProcessIdlePeriod

Idle period for a process [h]

Unique members interface
interface ProcessIdlePeriodUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessIdlePeriodUniqueMembers(arg: unknown) : arg is ProcessIdlePeriodUniqueMembers;
Regular interface
interface ProcessIdlePeriod extends ProcessIdlePeriodUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessIdlePeriod(arg: unknown) : arg is ProcessIdlePeriod;

ProcessMassConstraint

Unique members interface
interface ProcessMassConstraintUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessMassConstraintUniqueMembers(arg: unknown) : arg is ProcessMassConstraintUniqueMembers;
Regular interface
interface ProcessMassConstraint extends ProcessMassConstraintUniqueMembers {
	minMass: number;
	maxMass: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessMassConstraint(arg: unknown) : arg is ProcessMassConstraint;

ProcessPortfolioItem

interface ProcessPortfolioItem {
	processId: string;
	processType: ProcessType;
	requiredNodeContext: NodeContext;
	compatibleSheetMaterialIds: (string)[];
	compatibleSheetSpecs: (string)[];
	compatibleTubeMaterialIds: (string)[];
	compatiblePurchasePartMaterialIds: (string)[];
	minMass?: number;
	maxMass?: number;
	minDimX?: number;
	minDimY?: number;
	minDimZ?: number;
	maxDimX?: number;
	maxDimY?: number;
	maxDimZ?: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessPortfolioItem(arg: unknown) : arg is ProcessPortfolioItem;

ProcessQuery

interface ProcessQuery {
	workStepTypes?: WorkStepTypes;
	processTypes?: ProcessTypes;
	nodeContext?: NodeContext;
	componentDimX?: number;
	componentDimY?: number;
	componentDimZ?: number;
	componentMass?: number;
	underlyingSheetMaterialIds?: (string)[];
	underlyingTubeMaterialIds?: (string)[];
	underlyingPurchasePartMaterialIds?: (string)[];
	underlyingSheetSpecs?: (string)[];
}

Defined in module lib/generated/typeguard.ts

function isProcessQuery(arg: unknown) : arg is ProcessQuery;

ProcessQueryResult

interface ProcessQueryResult {
	processId: string;
	processType: ProcessType;
	issues: ProcessQueryIssues;
}

Defined in module lib/generated/typeguard.ts

function isProcessQueryResult(arg: unknown) : arg is ProcessQueryResult;

ProcessRate

Assigns a rate to a process

Unique members interface
interface ProcessRateUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessRateUniqueMembers(arg: unknown) : arg is ProcessRateUniqueMembers;
Regular interface
interface ProcessRate extends ProcessRateUniqueMembers {
	rate: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessRate(arg: unknown) : arg is ProcessRate;
Details

Please also note the documentation for the respective table.

ProcessSetupTimeFallback

Fallback setup time for a process

Unique members interface
interface ProcessSetupTimeFallbackUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessSetupTimeFallbackUniqueMembers(arg: unknown) : arg is ProcessSetupTimeFallbackUniqueMembers;
Regular interface
interface ProcessSetupTimeFallback extends ProcessSetupTimeFallbackUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessSetupTimeFallback(arg: unknown) : arg is ProcessSetupTimeFallback;
Details

If the setup time for a process cannot be computed and there is no user-defined value available, the value from this table is used (if any). Please also note the documentation for the respective table.

ProcessUnitTimeFallback

Fallback unit time for a process

Unique members interface
interface ProcessUnitTimeFallbackUniqueMembers {
	processId: string;
}

Defined in module lib/generated/typeguard.ts

function isProcessUnitTimeFallbackUniqueMembers(arg: unknown) : arg is ProcessUnitTimeFallbackUniqueMembers;
Regular interface
interface ProcessUnitTimeFallback extends ProcessUnitTimeFallbackUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isProcessUnitTimeFallback(arg: unknown) : arg is ProcessUnitTimeFallback;
Details

If the unit time for a process cannot be computed and there is no user-defined value available, the value from this table is used (if any). Please also note the documentation for the respective table.

ProfileShadow

Shadow and camera of bend profile

interface ProfileShadow {
	coordinateSystem: CoordinateSystem3;
	shadow: InnerOuterPolygon;
}

Defined in module lib/generated/typeguard.ts

function isProfileShadow(arg: unknown) : arg is ProfileShadow;

ProgramVersion

Program version

interface ProgramVersion {
	major: number;
	minor: number;
	patch: number;
}

Defined in module lib/generated/typeguard.ts

function isProgramVersion(arg: unknown) : arg is ProgramVersion;

PurchasePartMaterial

Material for purchase parts

Unique members interface
interface PurchasePartMaterialUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isPurchasePartMaterialUniqueMembers(arg: unknown) : arg is PurchasePartMaterialUniqueMembers;
Regular interface
interface PurchasePartMaterial extends PurchasePartMaterialUniqueMembers {
	name: string;
	density: number;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isPurchasePartMaterial(arg: unknown) : arg is PurchasePartMaterial;

PurchasePartMaterialToMaterialGroup

Unique members interface
interface PurchasePartMaterialToMaterialGroupUniqueMembers {
	purchasePartMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isPurchasePartMaterialToMaterialGroupUniqueMembers(arg: unknown) : arg is PurchasePartMaterialToMaterialGroupUniqueMembers;
Regular interface
interface PurchasePartMaterialToMaterialGroup extends PurchasePartMaterialToMaterialGroupUniqueMembers {
	materialGroupId: string;
}

Defined in module lib/generated/typeguard.ts

function isPurchasePartMaterialToMaterialGroup(arg: unknown) : arg is PurchasePartMaterialToMaterialGroup;

ReferredEntryMissingTableError

Referred table entry is missing

interface ReferredEntryMissingTableError {
	affectedRowType: TableType;
	affectedRowIndex: number;
	affectedColumnIndex: number;
	relatedRowType: TableType;
	relatedColumnIndex: number;
	referredId: string;
}

Defined in module lib/generated/typeguard.ts

function isReferredEntryMissingTableError(arg: unknown) : arg is ReferredEntryMissingTableError;

ReferringEntryMissingTableError

Referring table entry is missing

interface ReferringEntryMissingTableError {
	affectedRowType: TableType;
	affectedColumnIndex: number;
	relatedRowType: TableType;
	relatedRowIndex: number;
	relatedColumnIndex: number;
}

Defined in module lib/generated/typeguard.ts

function isReferringEntryMissingTableError(arg: unknown) : arg is ReferringEntryMissingTableError;

RenderSceneSettings

Settings for rendering a Scene

interface RenderSceneSettings {
	resolution?: Resolution;
	viewPort?: Box2;
	sheetMaterialId?: string;
	thickness?: number;
	geoName?: string;
	scaleToFit?: boolean;
}

Defined in module lib/generated/typeguard.ts

function isRenderSceneSettings(arg: unknown) : arg is RenderSceneSettings;

Resolution

Resolution of picture

interface Resolution {
	width: number;
	height: number;
}

Defined in module lib/generated/typeguard.ts

function isResolution(arg: unknown) : arg is Resolution;

SceneConfig

Configuration for Scene creation

interface SceneConfig {
	elements?: SceneElements;
	fontSize?: number;
	textItems?: (SceneTextItem)[];
	fixedRotation?: number;
}

Defined in module lib/generated/typeguard.ts

function isSceneConfig(arg: unknown) : arg is SceneConfig;

SceneLabel

Label to add to a Scene

interface SceneLabel {
	position: Point2;
	text: string;
	fontSize: number;
}

Defined in module lib/generated/typeguard.ts

function isSceneLabel(arg: unknown) : arg is SceneLabel;

SceneObjectData

Bend-specific parameters for one bend line

interface SceneObjectData {
	zValue: number;
	bendAngle: number;
	innerRadius: number;
	upperDieGroup: string;
	lowerDieGroup: string;
	sharpDeduction: number;
}

Defined in module lib/generated/typeguard.ts

function isSceneObjectData(arg: unknown) : arg is SceneObjectData;
Details

Used to write additional bend-related information to e. g. DXF files.

SceneSceneData

Scene wide additional meta data

interface SceneSceneData {
}

Defined in module lib/generated/typeguard.ts

function isSceneSceneData(arg: unknown) : arg is SceneSceneData;
Details

Used to export additional attributes in file formats that support it.

SceneStyle

Style for scene objects

interface SceneStyle {
	strokeWidth?: number;
	strokeColor?: Color;
	fillColor?: Vector4;
	strokeStyle?: StrokeStyle;
	zValue?: number;
	fontSize?: number;
}

Defined in module lib/generated/typeguard.ts

function isSceneStyle(arg: unknown) : arg is SceneStyle;

SceneTextItem

Custom text element to add to a scene

interface SceneTextItem {
	text: string;
	pos: Point2;
}

Defined in module lib/generated/typeguard.ts

function isSceneTextItem(arg: unknown) : arg is SceneTextItem;

ScrewThread

Screw thread definition

Unique members interface
interface ScrewThreadUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isScrewThreadUniqueMembers(arg: unknown) : arg is ScrewThreadUniqueMembers;
Regular interface
interface ScrewThread extends ScrewThreadUniqueMembers {
	name: string;
	coreHoleDiameter: number;
	minDepth: number;
	symmetricTolerance: number;
}

Defined in module lib/generated/typeguard.ts

function isScrewThread(arg: unknown) : arg is ScrewThread;

Segment

Variant covering all segments

interface Segment {
	index: number;
	data: LineSegment;
}

Defined in module lib/generated/typeguard.ts

function isSegment(arg: unknown) : arg is Segment;

Setting

Account-wide settings

Unique members interface
interface SettingUniqueMembers {
	key: string;
}

Defined in module lib/generated/typeguard.ts

function isSettingUniqueMembers(arg: unknown) : arg is SettingUniqueMembers;
Regular interface
interface Setting extends SettingUniqueMembers {
	value: string;
}

Defined in module lib/generated/typeguard.ts

function isSetting(arg: unknown) : arg is Setting;

Settings

Maps a settings table key to a type

interface Settings {
	bendFlangeSafetyDistance: number;
	dieBendingSetupTimeDistributionEnabled: boolean;
	dieChoiceRadiusFactorSoftLimit: number;
	dieChoiceRadiusFactorHardLimit: number;
	erpStandardInterfaceConfig: AnyErpStandardInterfaceConfig;
	laserSheetCuttingAMax: number;
	laserSheetCuttingVMax: number;
	manualMechanicalDeburringSpeed: number;
	sheetNestingDistance: number;
	sheetScrapAreaThreshold: number;
	sheetTestReportCosts: number;
	sheetUpperSideStrategy: SheetUpperSideStrategy;
	tubeClampingLength: number;
	tubeNestingDistance: number;
	sheetTestReportEnabled: boolean;
	sheetCuttingFixedRotationsEnabled: boolean;
	tableMigrationVersion: number;
	sheetNestingMode: NestingMode;
	csvLocale: string;
	thirdPartyErpInterfaceConfig: string;
	completionTimeMode: CompletionTimeMode;
	customArticleUserDataConfigJson: string;
	bendLineEngravingMode: BendLineEngravingMode;
	bendLineEngravingLength: number;
}

Defined in module lib/generated/typeguard.ts

function isSettings(arg: unknown) : arg is Settings;

SettingsTableValueBendFlangeSafetyDistance

interface SettingsTableValueBendFlangeSafetyDistance {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueBendFlangeSafetyDistance(arg: unknown) : arg is SettingsTableValueBendFlangeSafetyDistance;

SettingsTableValueBendLineEngravingLength

interface SettingsTableValueBendLineEngravingLength {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueBendLineEngravingLength(arg: unknown) : arg is SettingsTableValueBendLineEngravingLength;

SettingsTableValueCompletionTimeMode

interface SettingsTableValueCompletionTimeMode {
	value: CompletionTimeMode;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueCompletionTimeMode(arg: unknown) : arg is SettingsTableValueCompletionTimeMode;

SettingsTableValueCsvLocale

interface SettingsTableValueCsvLocale {
	value: string;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueCsvLocale(arg: unknown) : arg is SettingsTableValueCsvLocale;

SettingsTableValueCustomArticleUserDataConfigJson

interface SettingsTableValueCustomArticleUserDataConfigJson {
	value: string;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueCustomArticleUserDataConfigJson(arg: unknown) : arg is SettingsTableValueCustomArticleUserDataConfigJson;

SettingsTableValueDefaultBendLineEngravingMode

interface SettingsTableValueDefaultBendLineEngravingMode {
	value: BendLineEngravingMode;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueDefaultBendLineEngravingMode(arg: unknown) : arg is SettingsTableValueDefaultBendLineEngravingMode;

SettingsTableValueDieBendingSetupTimeDistributionEnabled

interface SettingsTableValueDieBendingSetupTimeDistributionEnabled {
	value: boolean;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueDieBendingSetupTimeDistributionEnabled(arg: unknown) : arg is SettingsTableValueDieBendingSetupTimeDistributionEnabled;

SettingsTableValueDieChoiceRadiusFactorHardLimit

interface SettingsTableValueDieChoiceRadiusFactorHardLimit {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueDieChoiceRadiusFactorHardLimit(arg: unknown) : arg is SettingsTableValueDieChoiceRadiusFactorHardLimit;

SettingsTableValueDieChoiceRadiusFactorSoftLimit

interface SettingsTableValueDieChoiceRadiusFactorSoftLimit {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueDieChoiceRadiusFactorSoftLimit(arg: unknown) : arg is SettingsTableValueDieChoiceRadiusFactorSoftLimit;

SettingsTableValueErpStandardInterfaceConfig

interface SettingsTableValueErpStandardInterfaceConfig {
	value: AnyErpStandardInterfaceConfig;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueErpStandardInterfaceConfig(arg: unknown) : arg is SettingsTableValueErpStandardInterfaceConfig;

SettingsTableValueLaserSheetCuttingAMax

interface SettingsTableValueLaserSheetCuttingAMax {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueLaserSheetCuttingAMax(arg: unknown) : arg is SettingsTableValueLaserSheetCuttingAMax;

SettingsTableValueLaserSheetCuttingVMax

interface SettingsTableValueLaserSheetCuttingVMax {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueLaserSheetCuttingVMax(arg: unknown) : arg is SettingsTableValueLaserSheetCuttingVMax;

SettingsTableValueManualMechanicalDeburringSpeed

interface SettingsTableValueManualMechanicalDeburringSpeed {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueManualMechanicalDeburringSpeed(arg: unknown) : arg is SettingsTableValueManualMechanicalDeburringSpeed;

SettingsTableValueSheetCuttingFixedRotationsEnabled

interface SettingsTableValueSheetCuttingFixedRotationsEnabled {
	value: boolean;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetCuttingFixedRotationsEnabled(arg: unknown) : arg is SettingsTableValueSheetCuttingFixedRotationsEnabled;

SettingsTableValueSheetNestingDistance

interface SettingsTableValueSheetNestingDistance {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetNestingDistance(arg: unknown) : arg is SettingsTableValueSheetNestingDistance;

SettingsTableValueSheetNestingMode

interface SettingsTableValueSheetNestingMode {
	value: NestingMode;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetNestingMode(arg: unknown) : arg is SettingsTableValueSheetNestingMode;

SettingsTableValueSheetScrapAreaThreshold

interface SettingsTableValueSheetScrapAreaThreshold {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetScrapAreaThreshold(arg: unknown) : arg is SettingsTableValueSheetScrapAreaThreshold;

SettingsTableValueSheetTestReportCosts

interface SettingsTableValueSheetTestReportCosts {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetTestReportCosts(arg: unknown) : arg is SettingsTableValueSheetTestReportCosts;

SettingsTableValueSheetTestReportEnabled

interface SettingsTableValueSheetTestReportEnabled {
	value: boolean;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetTestReportEnabled(arg: unknown) : arg is SettingsTableValueSheetTestReportEnabled;

SettingsTableValueSheetUpperSideStrategy

interface SettingsTableValueSheetUpperSideStrategy {
	value: SheetUpperSideStrategy;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueSheetUpperSideStrategy(arg: unknown) : arg is SettingsTableValueSheetUpperSideStrategy;

SettingsTableValueTableMigrationVersion

interface SettingsTableValueTableMigrationVersion {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueTableMigrationVersion(arg: unknown) : arg is SettingsTableValueTableMigrationVersion;

SettingsTableValueThirdPartyErpInterfaceConfig

interface SettingsTableValueThirdPartyErpInterfaceConfig {
	value: string;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueThirdPartyErpInterfaceConfig(arg: unknown) : arg is SettingsTableValueThirdPartyErpInterfaceConfig;

SettingsTableValueTubeClampingLength

interface SettingsTableValueTubeClampingLength {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueTubeClampingLength(arg: unknown) : arg is SettingsTableValueTubeClampingLength;

SettingsTableValueTubeNestingDistance

interface SettingsTableValueTubeNestingDistance {
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableValueTubeNestingDistance(arg: unknown) : arg is SettingsTableValueTubeNestingDistance;

Sheet

Defines a sheet that can be used to nest sheet metal parts on

Unique members interface
interface SheetUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetUniqueMembers(arg: unknown) : arg is SheetUniqueMembers;
Regular interface
interface Sheet extends SheetUniqueMembers {
	name: string;
	sheetMaterialId: string;
	dimX: number;
	dimY: number;
	thickness: number;
	specification: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isSheet(arg: unknown) : arg is Sheet;
Details

Please also note the documentation for the respective table.

SheetBendingMaterial

Sheet bending material

Unique members interface
interface SheetBendingMaterialUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetBendingMaterialUniqueMembers(arg: unknown) : arg is SheetBendingMaterialUniqueMembers;
Regular interface
interface SheetBendingMaterial extends SheetBendingMaterialUniqueMembers {
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetBendingMaterial(arg: unknown) : arg is SheetBendingMaterial;

SheetBendingMaterialMapping

Assigns bend specific material to sheet material

Unique members interface
interface SheetBendingMaterialMappingUniqueMembers {
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetBendingMaterialMappingUniqueMembers(arg: unknown) : arg is SheetBendingMaterialMappingUniqueMembers;
Regular interface
interface SheetBendingMaterialMapping extends SheetBendingMaterialMappingUniqueMembers {
	sheetBendingMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetBendingMaterialMapping(arg: unknown) : arg is SheetBendingMaterialMapping;
Details

Please also note the documentation for the respective table.

SheetCuttingCalcParams

interface SheetCuttingCalcParams {
	sheetMaterialId: string;
	bendLineEngravingMode: BendLineEngravingMode;
	machineVMax: number;
	machineAMax: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingCalcParams(arg: unknown) : arg is SheetCuttingCalcParams;

SheetCuttingMaterial

Sheet cutting material

Unique members interface
interface SheetCuttingMaterialUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingMaterialUniqueMembers(arg: unknown) : arg is SheetCuttingMaterialUniqueMembers;
Regular interface
interface SheetCuttingMaterial extends SheetCuttingMaterialUniqueMembers {
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingMaterial(arg: unknown) : arg is SheetCuttingMaterial;

SheetCuttingMaterialMapping

Assigns laser sheet cutting specific material to sheet material

Unique members interface
interface SheetCuttingMaterialMappingUniqueMembers {
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingMaterialMappingUniqueMembers(arg: unknown) : arg is SheetCuttingMaterialMappingUniqueMembers;
Regular interface
interface SheetCuttingMaterialMapping extends SheetCuttingMaterialMappingUniqueMembers {
	sheetCuttingMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingMaterialMapping(arg: unknown) : arg is SheetCuttingMaterialMapping;
Details

Please also note the documentation for the respective table.

SheetCuttingMotionParameters

Sheet cutting motion parameters

Unique members interface
interface SheetCuttingMotionParametersUniqueMembers {
	sheetCuttingProcessId: string;
	thickness: number;
	contourArea: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingMotionParametersUniqueMembers(arg: unknown) : arg is SheetCuttingMotionParametersUniqueMembers;
Regular interface
interface SheetCuttingMotionParameters extends SheetCuttingMotionParametersUniqueMembers {
	speed: number;
	acceleration: number;
	pierceTime: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingMotionParameters(arg: unknown) : arg is SheetCuttingMotionParameters;

SheetCuttingProcess

Sheet cutting process

Unique members interface
interface SheetCuttingProcessUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessUniqueMembers(arg: unknown) : arg is SheetCuttingProcessUniqueMembers;
Regular interface
interface SheetCuttingProcess extends SheetCuttingProcessUniqueMembers {
	name: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcess(arg: unknown) : arg is SheetCuttingProcess;

SheetCuttingProcessConsumableRate

Consumable rate per sheet cutting process

Unique members interface
interface SheetCuttingProcessConsumableRateUniqueMembers {
	sheetCuttingProcessId: string;
	consumableId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessConsumableRateUniqueMembers(arg: unknown) : arg is SheetCuttingProcessConsumableRateUniqueMembers;
Regular interface
interface SheetCuttingProcessConsumableRate extends SheetCuttingProcessConsumableRateUniqueMembers {
	unitsPerHour: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessConsumableRate(arg: unknown) : arg is SheetCuttingProcessConsumableRate;

SheetCuttingProcessMapping

Maps a process and a sheetMaterial to a sheetCuttingProcess

Unique members interface
interface SheetCuttingProcessMappingUniqueMembers {
	processId: string;
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessMappingUniqueMembers(arg: unknown) : arg is SheetCuttingProcessMappingUniqueMembers;
Regular interface
interface SheetCuttingProcessMapping extends SheetCuttingProcessMappingUniqueMembers {
	sheetCuttingProcessId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessMapping(arg: unknown) : arg is SheetCuttingProcessMapping;

SheetCuttingProcessToLaserCuttingGas

Mapps a sheet cutting process to a legacy laser sheet cutting gas

Unique members interface
interface SheetCuttingProcessToLaserCuttingGasUniqueMembers {
	sheetCuttingProcessId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessToLaserCuttingGasUniqueMembers(arg: unknown) : arg is SheetCuttingProcessToLaserCuttingGasUniqueMembers;
Regular interface
interface SheetCuttingProcessToLaserCuttingGas extends SheetCuttingProcessToLaserCuttingGasUniqueMembers {
	laserSheetCuttingGasId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingProcessToLaserCuttingGas(arg: unknown) : arg is SheetCuttingProcessToLaserCuttingGas;

SheetCuttingThicknessConstraints

Sheet cutting thickness constraints

Unique members interface
interface SheetCuttingThicknessConstraintsUniqueMembers {
	sheetCuttingProcessId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingThicknessConstraintsUniqueMembers(arg: unknown) : arg is SheetCuttingThicknessConstraintsUniqueMembers;
Regular interface
interface SheetCuttingThicknessConstraints extends SheetCuttingThicknessConstraintsUniqueMembers {
	minThickness: number;
	maxThickness: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetCuttingThicknessConstraints(arg: unknown) : arg is SheetCuttingThicknessConstraints;

SheetIdlePeriod

Unique members interface
interface SheetIdlePeriodUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetIdlePeriodUniqueMembers(arg: unknown) : arg is SheetIdlePeriodUniqueMembers;
Regular interface
interface SheetIdlePeriod extends SheetIdlePeriodUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetIdlePeriod(arg: unknown) : arg is SheetIdlePeriod;

SheetMaterial

Defines material that can be assigned to a sheet metal part

Unique members interface
interface SheetMaterialUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialUniqueMembers(arg: unknown) : arg is SheetMaterialUniqueMembers;
Regular interface
interface SheetMaterial extends SheetMaterialUniqueMembers {
	name: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterial(arg: unknown) : arg is SheetMaterial;
Details

This table is referenced by tables defining work-step-specific materials. Please also note the documentation for the respective table.

SheetMaterialDensity

Assigns density to sheet material

Unique members interface
interface SheetMaterialDensityUniqueMembers {
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialDensityUniqueMembers(arg: unknown) : arg is SheetMaterialDensityUniqueMembers;
Regular interface
interface SheetMaterialDensity extends SheetMaterialDensityUniqueMembers {
	density: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialDensity(arg: unknown) : arg is SheetMaterialDensity;
Details

Please also note the documentation for the respective table.

SheetMaterialEditorCuttingProcess

interface SheetMaterialEditorCuttingProcess {
	processId: string;
	processName: string;
	processPriority: number;
	compatibleSheetMaterialIds: (string)[];
	minDimX?: number;
	minDimY?: number;
	minDimZ?: number;
	maxDimX?: number;
	maxDimY?: number;
	maxDimZ?: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialEditorCuttingProcess(arg: unknown) : arg is SheetMaterialEditorCuttingProcess;

SheetMaterialEditorPart

interface SheetMaterialEditorPart {
	articleName: string;
	sheetThickness: number;
	grossDimensions: (Vector2)[];
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialEditorPart(arg: unknown) : arg is SheetMaterialEditorPart;

SheetMaterialEditorPartData

interface SheetMaterialEditorPartData {
	sheetSpec?: string;
	sheetMaterialId?: string;
	sheetFilterSheetId?: string;
	processIdSheetCutting?: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialEditorPartData(arg: unknown) : arg is SheetMaterialEditorPartData;

SheetMaterialExportAlias

Defines export aliases for sheet materials

Unique members interface
interface SheetMaterialExportAliasUniqueMembers {
	sheetMaterialId: string;
	fileType: CadMaterialFileType;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialExportAliasUniqueMembers(arg: unknown) : arg is SheetMaterialExportAliasUniqueMembers;
Regular interface
interface SheetMaterialExportAlias extends SheetMaterialExportAliasUniqueMembers {
	name0: string;
	name1: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialExportAlias(arg: unknown) : arg is SheetMaterialExportAlias;

SheetMaterialScrapValue

Sheet material scrap value

Unique members interface
interface SheetMaterialScrapValueUniqueMembers {
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialScrapValueUniqueMembers(arg: unknown) : arg is SheetMaterialScrapValueUniqueMembers;
Regular interface
interface SheetMaterialScrapValue extends SheetMaterialScrapValueUniqueMembers {
	scrapValue: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialScrapValue(arg: unknown) : arg is SheetMaterialScrapValue;

SheetMaterialToMaterialGroup

Unique members interface
interface SheetMaterialToMaterialGroupUniqueMembers {
	sheetMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialToMaterialGroupUniqueMembers(arg: unknown) : arg is SheetMaterialToMaterialGroupUniqueMembers;
Regular interface
interface SheetMaterialToMaterialGroup extends SheetMaterialToMaterialGroupUniqueMembers {
	materialGroupId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetMaterialToMaterialGroup(arg: unknown) : arg is SheetMaterialToMaterialGroup;

SheetModulus

Assigns minimal usable fraction of a sheet’s width to a sheet

Unique members interface
interface SheetModulusUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetModulusUniqueMembers(arg: unknown) : arg is SheetModulusUniqueMembers;
Regular interface
interface SheetModulus extends SheetModulusUniqueMembers {
	xModulus: number;
	yModulus: number;
	applyToAll: boolean;
}

Defined in module lib/generated/typeguard.ts

function isSheetModulus(arg: unknown) : arg is SheetModulus;
Details

Value must be in the range [0, 1]. Please also note the documentation for the respective table.

SheetPrice

Assigns a price to a sheet

Unique members interface
interface SheetPriceUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetPriceUniqueMembers(arg: unknown) : arg is SheetPriceUniqueMembers;
Regular interface
interface SheetPrice extends SheetPriceUniqueMembers {
	pricePerSheet: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetPrice(arg: unknown) : arg is SheetPrice;
Details

Please also note the documentation for the respective table.

SheetPriority

Sheet priority

Unique members interface
interface SheetPriorityUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetPriorityUniqueMembers(arg: unknown) : arg is SheetPriorityUniqueMembers;
Regular interface
interface SheetPriority extends SheetPriorityUniqueMembers {
	priority: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetPriority(arg: unknown) : arg is SheetPriority;

SheetSelectionFilter

interface SheetSelectionFilter {
	sheetFilterSheetIds?: (string)[];
	sheetMaterialId?: string;
	sheetSpec?: string;
	thickness?: number;
	grossPartDims?: (Vector2)[];
	sheetDims?: Vector2;
	stockRequired?: boolean;
}

Defined in module lib/generated/typeguard.ts

function isSheetSelectionFilter(arg: unknown) : arg is SheetSelectionFilter;

SheetSetupTime

Unique members interface
interface SheetSetupTimeUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetSetupTimeUniqueMembers(arg: unknown) : arg is SheetSetupTimeUniqueMembers;
Regular interface
interface SheetSetupTime extends SheetSetupTimeUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetSetupTime(arg: unknown) : arg is SheetSetupTime;

SheetStock

Stock data for one sheet

Unique members interface
interface SheetStockUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetStockUniqueMembers(arg: unknown) : arg is SheetStockUniqueMembers;
Regular interface
interface SheetStock extends SheetStockUniqueMembers {
	count: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetStock(arg: unknown) : arg is SheetStock;

SheetTappingDataEntry

Maps UserData entry name to a type

interface SheetTappingDataEntry {
	cadFeatureDescriptor: number;
	screwThreadId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetTappingDataEntry(arg: unknown) : arg is SheetTappingDataEntry;

SheetTappingEditorCandidate

Corresponds to a core hole where tapping for at least one screw thread type can be applied

interface SheetTappingEditorCandidate {
	id: string;
	name: string;
	values: (SheetTappingEditorCandidateValue)[];
}

Defined in module lib/generated/typeguard.ts

function isSheetTappingEditorCandidate(arg: unknown) : arg is SheetTappingEditorCandidate;

SheetTappingEditorCandidateValue

Screw thread alternative

interface SheetTappingEditorCandidateValue {
	id: string;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetTappingEditorCandidateValue(arg: unknown) : arg is SheetTappingEditorCandidateValue;

SheetTappingEditorSelectionEntry

Consists of user selection

interface SheetTappingEditorSelectionEntry {
	candidateId: string;
	valueId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetTappingEditorSelectionEntry(arg: unknown) : arg is SheetTappingEditorSelectionEntry;

SheetUnitTime

Unique members interface
interface SheetUnitTimeUniqueMembers {
	sheetId: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetUnitTimeUniqueMembers(arg: unknown) : arg is SheetUnitTimeUniqueMembers;
Regular interface
interface SheetUnitTime extends SheetUnitTimeUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isSheetUnitTime(arg: unknown) : arg is SheetUnitTime;

SlArticleUpdate

interface SlArticleUpdate {
	vertex: SlVertex;
	articleUserData?: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isSlArticleUpdate(arg: unknown) : arg is SlArticleUpdate;

SlNodeUpdate

interface SlNodeUpdate {
	index: number;
	data: SlNodeUpdateUndefined;
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdate(arg: unknown) : arg is SlNodeUpdate;

SlNodeUpdateJoining

interface SlNodeUpdateJoining {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateJoining(arg: unknown) : arg is SlNodeUpdateJoining;

SlNodeUpdatePackaging

interface SlNodeUpdatePackaging {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdatePackaging(arg: unknown) : arg is SlNodeUpdatePackaging;

SlNodeUpdateSheet

interface SlNodeUpdateSheet {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateSheet(arg: unknown) : arg is SlNodeUpdateSheet;

SlNodeUpdateSheetBending

interface SlNodeUpdateSheetBending {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	dieChoiceMap?: (DieChoiceMapEntry)[];
	toggleUpperSide?: boolean;
	correctBends?: boolean;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateSheetBending(arg: unknown) : arg is SlNodeUpdateSheetBending;

SlNodeUpdateSheetCutting

interface SlNodeUpdateSheetCutting {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	sheetThickness?: number;
	toggleUpperSide?: boolean;
	calcUserInputs?: (AnyCalcUserInput)[];
	doUpdateNestingMode?: boolean;
	nestingMode?: NestingMode;
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateSheetCutting(arg: unknown) : arg is SlNodeUpdateSheetCutting;

SlNodeUpdateTransform

interface SlNodeUpdateTransform {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateTransform(arg: unknown) : arg is SlNodeUpdateTransform;

SlNodeUpdateTube

interface SlNodeUpdateTube {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateTube(arg: unknown) : arg is SlNodeUpdateTube;

SlNodeUpdateTubeCutting

interface SlNodeUpdateTubeCutting {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateTubeCutting(arg: unknown) : arg is SlNodeUpdateTubeCutting;

SlNodeUpdateUndefined

interface SlNodeUpdateUndefined {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateUndefined(arg: unknown) : arg is SlNodeUpdateUndefined;

SlNodeUpdateUserDefined

interface SlNodeUpdateUserDefined {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateUserDefined(arg: unknown) : arg is SlNodeUpdateUserDefined;

SlNodeUpdateUserDefinedBase

interface SlNodeUpdateUserDefinedBase {
	vertex: SlVertex;
	processType?: ProcessType;
	processId?: string;
	nodeUserData?: StringIndexedInterface;
	calcUserInputs?: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isSlNodeUpdateUserDefinedBase(arg: unknown) : arg is SlNodeUpdateUserDefinedBase;

Surcharge

Defines surcharge used to calculate the selling price for a project

Unique members interface
interface SurchargeUniqueMembers {
	name: string;
	type: string;
	value: number;
}

Defined in module lib/generated/typeguard.ts

function isSurchargeUniqueMembers(arg: unknown) : arg is SurchargeUniqueMembers;
Regular interface
interface Surcharge extends SurchargeUniqueMembers {
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isSurcharge(arg: unknown) : arg is Surcharge;
Details

Please also note the documentation for the respective table.

TableError

Variant covering all table errors

interface TableError {
	index: number;
	data: ReferringEntryMissingTableError;
}

Defined in module lib/generated/typeguard.ts

function isTableError(arg: unknown) : arg is TableError;

TappingTimeParameters

Tapping time parameters

Unique members interface
interface TappingTimeParametersUniqueMembers {
	processId: string;
	screwThreadId: string;
}

Defined in module lib/generated/typeguard.ts

function isTappingTimeParametersUniqueMembers(arg: unknown) : arg is TappingTimeParametersUniqueMembers;
Regular interface
interface TappingTimeParameters extends TappingTimeParametersUniqueMembers {
	unitTimePerMm: number;
}

Defined in module lib/generated/typeguard.ts

function isTappingTimeParameters(arg: unknown) : arg is TappingTimeParameters;

TransportationCosts

Calculation parameters for a node of type transport

Unique members interface
interface TransportationCostsUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isTransportationCostsUniqueMembers(arg: unknown) : arg is TransportationCostsUniqueMembers;
Regular interface
interface TransportationCosts extends TransportationCostsUniqueMembers {
	name: string;
	packagingId: string;
	fixedCosts: number;
	minCosts: number;
	kmKgFactor: number;
	kmFactor: number;
	minDistance: number;
	maxDistance: number;
}

Defined in module lib/generated/typeguard.ts

function isTransportationCosts(arg: unknown) : arg is TransportationCosts;
Details

Please also note the documentation for the respective table.

Tube

Tube

Unique members interface
interface TubeUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeUniqueMembers(arg: unknown) : arg is TubeUniqueMembers;
Regular interface
interface Tube extends TubeUniqueMembers {
	name: string;
	tubeMaterialId: string;
	tubeProfileId: string;
	tubeSpecificationId: string;
	dimX: number;
}

Defined in module lib/generated/typeguard.ts

function isTube(arg: unknown) : arg is Tube;

TubeCuttingCalcParams

interface TubeCuttingCalcParams {
	tubeMaterialId: string;
	machineVMax: number;
	machineAMax: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingCalcParams(arg: unknown) : arg is TubeCuttingCalcParams;

TubeCuttingPierceTime

Tube cutting pierce time

Unique members interface
interface TubeCuttingPierceTimeUniqueMembers {
	tubeCuttingProcessId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingPierceTimeUniqueMembers(arg: unknown) : arg is TubeCuttingPierceTimeUniqueMembers;
Regular interface
interface TubeCuttingPierceTime extends TubeCuttingPierceTimeUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingPierceTime(arg: unknown) : arg is TubeCuttingPierceTime;

TubeCuttingProcess

Tube cutting process

Unique members interface
interface TubeCuttingProcessUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingProcessUniqueMembers(arg: unknown) : arg is TubeCuttingProcessUniqueMembers;
Regular interface
interface TubeCuttingProcess extends TubeCuttingProcessUniqueMembers {
	name: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingProcess(arg: unknown) : arg is TubeCuttingProcess;

TubeCuttingProcessConsumableRate

Consumable rate per tube cutting process

Unique members interface
interface TubeCuttingProcessConsumableRateUniqueMembers {
	tubeCuttingProcessId: string;
	consumableId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingProcessConsumableRateUniqueMembers(arg: unknown) : arg is TubeCuttingProcessConsumableRateUniqueMembers;
Regular interface
interface TubeCuttingProcessConsumableRate extends TubeCuttingProcessConsumableRateUniqueMembers {
	unitsPerHour: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingProcessConsumableRate(arg: unknown) : arg is TubeCuttingProcessConsumableRate;

TubeCuttingProcessMapping

Tube cutting process mapping

Unique members interface
interface TubeCuttingProcessMappingUniqueMembers {
	processId: string;
	tubeMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingProcessMappingUniqueMembers(arg: unknown) : arg is TubeCuttingProcessMappingUniqueMembers;
Regular interface
interface TubeCuttingProcessMapping extends TubeCuttingProcessMappingUniqueMembers {
	tubeCuttingProcessId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingProcessMapping(arg: unknown) : arg is TubeCuttingProcessMapping;

TubeCuttingSpeed

Tube cutting speed

Unique members interface
interface TubeCuttingSpeedUniqueMembers {
	tubeCuttingProcessId: string;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingSpeedUniqueMembers(arg: unknown) : arg is TubeCuttingSpeedUniqueMembers;
Regular interface
interface TubeCuttingSpeed extends TubeCuttingSpeedUniqueMembers {
	speed: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeCuttingSpeed(arg: unknown) : arg is TubeCuttingSpeed;

TubeIdlePeriod

Unique members interface
interface TubeIdlePeriodUniqueMembers {
	tubeId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeIdlePeriodUniqueMembers(arg: unknown) : arg is TubeIdlePeriodUniqueMembers;
Regular interface
interface TubeIdlePeriod extends TubeIdlePeriodUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeIdlePeriod(arg: unknown) : arg is TubeIdlePeriod;

TubeMaterial

Tube specific material

Unique members interface
interface TubeMaterialUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialUniqueMembers(arg: unknown) : arg is TubeMaterialUniqueMembers;
Regular interface
interface TubeMaterial extends TubeMaterialUniqueMembers {
	name: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterial(arg: unknown) : arg is TubeMaterial;

TubeMaterialDensity

Tube specific material density

Unique members interface
interface TubeMaterialDensityUniqueMembers {
	tubeMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialDensityUniqueMembers(arg: unknown) : arg is TubeMaterialDensityUniqueMembers;
Regular interface
interface TubeMaterialDensity extends TubeMaterialDensityUniqueMembers {
	density: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialDensity(arg: unknown) : arg is TubeMaterialDensity;

TubeMaterialScrapValue

Tube material scrap value

Unique members interface
interface TubeMaterialScrapValueUniqueMembers {
	tubeMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialScrapValueUniqueMembers(arg: unknown) : arg is TubeMaterialScrapValueUniqueMembers;
Regular interface
interface TubeMaterialScrapValue extends TubeMaterialScrapValueUniqueMembers {
	scrapValue: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialScrapValue(arg: unknown) : arg is TubeMaterialScrapValue;

TubeMaterialToMaterialGroup

Unique members interface
interface TubeMaterialToMaterialGroupUniqueMembers {
	tubeMaterialId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialToMaterialGroupUniqueMembers(arg: unknown) : arg is TubeMaterialToMaterialGroupUniqueMembers;
Regular interface
interface TubeMaterialToMaterialGroup extends TubeMaterialToMaterialGroupUniqueMembers {
	materialGroupId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeMaterialToMaterialGroup(arg: unknown) : arg is TubeMaterialToMaterialGroup;

TubePrice

Tube price

Unique members interface
interface TubePriceUniqueMembers {
	tubeId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubePriceUniqueMembers(arg: unknown) : arg is TubePriceUniqueMembers;
Regular interface
interface TubePrice extends TubePriceUniqueMembers {
	pricePerTube: number;
}

Defined in module lib/generated/typeguard.ts

function isTubePrice(arg: unknown) : arg is TubePrice;

TubePriority

Unique members interface
interface TubePriorityUniqueMembers {
	tubeId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubePriorityUniqueMembers(arg: unknown) : arg is TubePriorityUniqueMembers;
Regular interface
interface TubePriority extends TubePriorityUniqueMembers {
	priority: number;
}

Defined in module lib/generated/typeguard.ts

function isTubePriority(arg: unknown) : arg is TubePriority;

TubeProfile

Tube profile

Unique members interface
interface TubeProfileUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeProfileUniqueMembers(arg: unknown) : arg is TubeProfileUniqueMembers;
Regular interface
interface TubeProfile extends TubeProfileUniqueMembers {
	name: string;
	description: string;
	geometryJson: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeProfile(arg: unknown) : arg is TubeProfile;

TubeProfileGeometry

interface TubeProfileGeometry {
	index: number;
	data: TubeProfileGeometryRectangular;
}

Defined in module lib/generated/typeguard.ts

function isTubeProfileGeometry(arg: unknown) : arg is TubeProfileGeometry;

TubeProfileGeometryCircular

interface TubeProfileGeometryCircular {
	outerRadius: number;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeProfileGeometryCircular(arg: unknown) : arg is TubeProfileGeometryCircular;

TubeProfileGeometryRectangular

interface TubeProfileGeometryRectangular {
	dimY: number;
	dimZ: number;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeProfileGeometryRectangular(arg: unknown) : arg is TubeProfileGeometryRectangular;

TubeSelectionFilter

interface TubeSelectionFilter {
	tubeMaterialId?: string;
	tubeSpecificationId?: string;
	tubeProfileIds?: (string)[];
	minDimX?: number;
	maxDimX?: number;
	tubeFilterTubeIds?: (string)[];
	stockRequired?: boolean;
}

Defined in module lib/generated/typeguard.ts

function isTubeSelectionFilter(arg: unknown) : arg is TubeSelectionFilter;

TubeSetupTime

Unique members interface
interface TubeSetupTimeUniqueMembers {
	tubeId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeSetupTimeUniqueMembers(arg: unknown) : arg is TubeSetupTimeUniqueMembers;
Regular interface
interface TubeSetupTime extends TubeSetupTimeUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeSetupTime(arg: unknown) : arg is TubeSetupTime;

TubeSpecification

Tube specification

Unique members interface
interface TubeSpecificationUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeSpecificationUniqueMembers(arg: unknown) : arg is TubeSpecificationUniqueMembers;
Regular interface
interface TubeSpecification extends TubeSpecificationUniqueMembers {
	name: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeSpecification(arg: unknown) : arg is TubeSpecification;

TubeStock

Tube stock

Unique members interface
interface TubeStockUniqueMembers {
	tubeId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeStockUniqueMembers(arg: unknown) : arg is TubeStockUniqueMembers;
Regular interface
interface TubeStock extends TubeStockUniqueMembers {
	count: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeStock(arg: unknown) : arg is TubeStock;

TubeUnitTime

Unique members interface
interface TubeUnitTimeUniqueMembers {
	tubeId: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeUnitTimeUniqueMembers(arg: unknown) : arg is TubeUnitTimeUniqueMembers;
Regular interface
interface TubeUnitTime extends TubeUnitTimeUniqueMembers {
	time: number;
}

Defined in module lib/generated/typeguard.ts

function isTubeUnitTime(arg: unknown) : arg is TubeUnitTime;

TwoDimImportResult

Result of a 2D data import

interface TwoDimImportResult {
	index: number;
	data: TwoDimImportResultPartInvalid;
}

Defined in module lib/generated/typeguard.ts

function isTwoDimImportResult(arg: unknown) : arg is TwoDimImportResult;

TwoDimImportResultEngravingInvalid

Segments do not form a valid engraving

interface TwoDimImportResultEngravingInvalid {
	problematicPoint: Point2;
}

Defined in module lib/generated/typeguard.ts

function isTwoDimImportResultEngravingInvalid(arg: unknown) : arg is TwoDimImportResultEngravingInvalid;

TwoDimImportResultPartInvalid

Segments do not form a valid part

interface TwoDimImportResultPartInvalid {
	problematicPoint?: Point2;
}

Defined in module lib/generated/typeguard.ts

function isTwoDimImportResultPartInvalid(arg: unknown) : arg is TwoDimImportResultPartInvalid;

TwoDimImportResultSuccess

The resulting TwoDimRepresentation

interface TwoDimImportResultSuccess {
	twoDimRep: TwoDimRepresentation;
}

Defined in module lib/generated/typeguard.ts

function isTwoDimImportResultSuccess(arg: unknown) : arg is TwoDimImportResultSuccess;

UiJoiningRepresentation

Joining representation as required for ui API

interface UiJoiningRepresentation {
	joiningSteps: (UiJoiningStepRepresentation)[];
}

Defined in module lib/generated/typeguard.ts

function isUiJoiningRepresentation(arg: unknown) : arg is UiJoiningRepresentation;

UiJoiningStepEntryRepresentation

JoiningStepEntry representation as required for ui API

interface UiJoiningStepEntryRepresentation {
	assembly: string;
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isUiJoiningStepEntryRepresentation(arg: unknown) : arg is UiJoiningStepEntryRepresentation;

UiJoiningStepRepresentation

JoiningStep representation as required for ui API

interface UiJoiningStepRepresentation {
	entries: (UiJoiningStepEntryRepresentation)[];
	cameraOrientation?: CameraOrientation3;
	comment: string;
}

Defined in module lib/generated/typeguard.ts

function isUiJoiningStepRepresentation(arg: unknown) : arg is UiJoiningStepRepresentation;

UniqueMemberCollisionTableError

Two rows of the same table have the same value for each unique member

interface UniqueMemberCollisionTableError {
	affectedRowType: TableType;
	affectedRowIndex: number;
	affectedColumnIndex: number;
	relatedRowIndex: number;
}

Defined in module lib/generated/typeguard.ts

function isUniqueMemberCollisionTableError(arg: unknown) : arg is UniqueMemberCollisionTableError;

UpperDie

UpperDie

Unique members interface
interface UpperDieUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isUpperDieUniqueMembers(arg: unknown) : arg is UpperDieUniqueMembers;
Regular interface
interface UpperDie extends UpperDieUniqueMembers {
	name: string;
	upperDieGroupId: string;
	description: string;
}

Defined in module lib/generated/typeguard.ts

function isUpperDie(arg: unknown) : arg is UpperDie;

UpperDieGroup

Defines upper die-bending die group

Unique members interface
interface UpperDieGroupUniqueMembers {
	identifier: string;
}

Defined in module lib/generated/typeguard.ts

function isUpperDieGroupUniqueMembers(arg: unknown) : arg is UpperDieGroupUniqueMembers;
Regular interface
interface UpperDieGroup extends UpperDieGroupUniqueMembers {
	name: string;
	exportIdentifier: string;
	radius: number;
}

Defined in module lib/generated/typeguard.ts

function isUpperDieGroup(arg: unknown) : arg is UpperDieGroup;
Details

Please also note the documentation for the respective table.

UpperDieUnit

UpperDieUnit

Unique members interface
interface UpperDieUnitUniqueMembers {
	upperDieId: string;
	dimX: number;
}

Defined in module lib/generated/typeguard.ts

function isUpperDieUnitUniqueMembers(arg: unknown) : arg is UpperDieUnitUniqueMembers;
Regular interface
interface UpperDieUnit extends UpperDieUnitUniqueMembers {
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isUpperDieUnit(arg: unknown) : arg is UpperDieUnit;

UserDataConfig

interface UserDataConfig {
	entries: (UserDatumConfig)[];
}

Defined in module lib/generated/typeguard.ts

function isUserDataConfig(arg: unknown) : arg is UserDataConfig;

UserDatumBooleanConfig

interface UserDatumBooleanConfig {
	id: string;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isUserDatumBooleanConfig(arg: unknown) : arg is UserDatumBooleanConfig;

UserDatumConfig

interface UserDatumConfig {
	index: number;
	data: UserDatumStringConfig;
}

Defined in module lib/generated/typeguard.ts

function isUserDatumConfig(arg: unknown) : arg is UserDatumConfig;

UserDatumEnumConfig

interface UserDatumEnumConfig {
	id: string;
	name: string;
	items: (UserDatumEnumConfigItem)[];
}

Defined in module lib/generated/typeguard.ts

function isUserDatumEnumConfig(arg: unknown) : arg is UserDatumEnumConfig;

UserDatumEnumConfigItem

interface UserDatumEnumConfigItem {
	id: string;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isUserDatumEnumConfigItem(arg: unknown) : arg is UserDatumEnumConfigItem;

UserDatumNumberConfig

interface UserDatumNumberConfig {
	id: string;
	name: string;
	min: number;
	max: number;
	decimals: number;
}

Defined in module lib/generated/typeguard.ts

function isUserDatumNumberConfig(arg: unknown) : arg is UserDatumNumberConfig;

UserDatumStringConfig

interface UserDatumStringConfig {
	id: string;
	name: string;
}

Defined in module lib/generated/typeguard.ts

function isUserDatumStringConfig(arg: unknown) : arg is UserDatumStringConfig;

UserDefinedScalePrice

Scale value and corresponding price

interface UserDefinedScalePrice {
	scaleValue: number;
	price: number;
}

Defined in module lib/generated/typeguard.ts

function isUserDefinedScalePrice(arg: unknown) : arg is UserDefinedScalePrice;
Details

Prices repesent the total price for the respective multiplicity.

Vector2

2-dim vector

interface Vector2 {
	entries: [ (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isVector2(arg: unknown) : arg is Vector2;
Details

A Vector2 is defined by an array of length 2 representing its x and y coordinates

Vector3

3-dim vector

interface Vector3 {
	entries: [ (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isVector3(arg: unknown) : arg is Vector3;
Details

A Vector3 is defined by an array of length 3 representing its x, y, and z coordinates

Vector4

4-dim vector

interface Vector4 {
	entries: [ (number), (number), (number), (number), ];
}

Defined in module lib/generated/typeguard.ts

function isVector4(arg: unknown) : arg is Vector4;
Details

A Vector4 is defined by an array of length 4

VertexWithMultiplicity

Parameters to change a graph nodes multiplicity

interface VertexWithMultiplicity {
	vertex: Vertex;
	multiplicity: number;
}

Defined in module lib/generated/typeguard.ts

function isVertexWithMultiplicity(arg: unknown) : arg is VertexWithMultiplicity;

VertexWithProcessTypeData

Parameters to change a graph nodes process type

interface VertexWithProcessTypeData {
	vertex: Vertex;
	processId: string;
	forced: boolean;
}

Defined in module lib/generated/typeguard.ts

function isVertexWithProcessTypeData(arg: unknown) : arg is VertexWithProcessTypeData;

VertexWithSheetThickness

Parameters to change a graph node’s sheet thickness

interface VertexWithSheetThickness {
	vertex: Vertex;
	sheetThickness: number;
}

Defined in module lib/generated/typeguard.ts

function isVertexWithSheetThickness(arg: unknown) : arg is VertexWithSheetThickness;

VertexWithUserData

Parameters to change a graph nodes UserData

interface VertexWithUserData {
	vertex: Vertex;
	userData: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isVertexWithUserData(arg: unknown) : arg is VertexWithUserData;

VertexWithWorkStepType

Parameters to change a graph node’s WorkStepType

interface VertexWithWorkStepType {
	vertex: Vertex;
	workStepType: WorkStepType;
}

Defined in module lib/generated/typeguard.ts

function isVertexWithWorkStepType(arg: unknown) : arg is VertexWithWorkStepType;

WidgetConfig

Widget configuration

interface WidgetConfig {
	index: number;
	data: WidgetConfigAssemblyView;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfig(arg: unknown) : arg is WidgetConfig;

WidgetConfigAssemblyView

Widget config

interface WidgetConfigAssemblyView {
	assembly: Assembly;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigAssemblyView(arg: unknown) : arg is WidgetConfigAssemblyView;

WidgetConfigAttachmentEditor

Widget config

interface WidgetConfigAttachmentEditor {
	initialValue: WidgetResultAttachmentEditor;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigAttachmentEditor(arg: unknown) : arg is WidgetConfigAttachmentEditor;

WidgetConfigBendingToolEditor

Widget config

interface WidgetConfigBendingToolEditor {
	input: (BendingToolEditorInputEntry)[];
	initialValue: WidgetResultBendingToolEditor;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigBendingToolEditor(arg: unknown) : arg is WidgetConfigBendingToolEditor;

WidgetConfigBulkEditor

Widget config

interface WidgetConfigBulkEditor {
	columnConfigs: (ArticleBulkEditorColumnConfig)[];
	rowConfigs: ((ArticleBulkEditorCellConfig)[])[];
	articleExtraData: (ArticleBulkEditorRowExtraData)[];
	widgetState?: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigBulkEditor(arg: unknown) : arg is WidgetConfigBulkEditor;

WidgetConfigCalcParamEditor

Widget config

interface WidgetConfigCalcParamEditor {
	initialValue: WidgetResultCalcParamEditor;
	materialCostsPerPieceSuggestion?: number;
	setupTimeSuggestion?: number;
	unitTimePerPieceSuggestion?: number;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigCalcParamEditor(arg: unknown) : arg is WidgetConfigCalcParamEditor;

WidgetConfigCalcUserInputDialog

Widget config

interface WidgetConfigCalcUserInputDialog {
	configs: (CalcUserInputConfig)[];
	initialValues: ((AnyCalcUserInput)[])[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigCalcUserInputDialog(arg: unknown) : arg is WidgetConfigCalcUserInputDialog;

WidgetConfigErpStandardInterfaceConfigDialog

Widget config

interface WidgetConfigErpStandardInterfaceConfigDialog {
	initialValue?: AnyErpStandardInterfaceConfig;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigErpStandardInterfaceConfigDialog(arg: unknown) : arg is WidgetConfigErpStandardInterfaceConfigDialog;

WidgetConfigFileDialog

Widget config

interface WidgetConfigFileDialog {
	type: FileDialogType;
	title: string;
	defaultPath: string;
	filter: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigFileDialog(arg: unknown) : arg is WidgetConfigFileDialog;
Details

defaultPath and filter can be empty. filter has no effect for FileDialogType::directory.

WidgetConfigFormEditor

Widget config

interface WidgetConfigFormEditor {
	rows: (FormRowConfig)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigFormEditor(arg: unknown) : arg is WidgetConfigFormEditor;

WidgetConfigJoiningSequenceEditor

Widget config

interface WidgetConfigJoiningSequenceEditor {
	articleName: string;
	assemblyMap: (AssemblyMapEntry)[];
	initialValue: WidgetResultJoiningSequenceEditor;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigJoiningSequenceEditor(arg: unknown) : arg is WidgetConfigJoiningSequenceEditor;

WidgetConfigLayeredImportDialog

Widget config

interface WidgetConfigLayeredImportDialog {
	title: string;
	layered: Layered;
	initialThickness?: number;
	name: string;
	material: string;
	skipIfPossible: boolean;
	thicknessEditable: boolean;
	sheetThicknesses: (number)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigLayeredImportDialog(arg: unknown) : arg is WidgetConfigLayeredImportDialog;

WidgetConfigLstCreationDialog

Widget config

interface WidgetConfigLstCreationDialog {
	programName: string;
	sheetThickness: number;
	sheetTwoDimRep: TwoDimRepresentation;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigLstCreationDialog(arg: unknown) : arg is WidgetConfigLstCreationDialog;

WidgetConfigMessageBox

Widget config

interface WidgetConfigMessageBox {
	type: MessageBoxType;
	title: string;
	text: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigMessageBox(arg: unknown) : arg is WidgetConfigMessageBox;

WidgetConfigPartCreationDialog

Widget config

interface WidgetConfigPartCreationDialog {
	config: AnyPartCreationDialogConfig;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigPartCreationDialog(arg: unknown) : arg is WidgetConfigPartCreationDialog;

WidgetConfigProcessSelector

Widget config

interface WidgetConfigProcessSelector {
	useMultiSelect: boolean;
	processTable: (Process)[];
	supportedWorkStepTypes: WorkStepTypes;
	initialValue: WidgetResultProcessSelector;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigProcessSelector(arg: unknown) : arg is WidgetConfigProcessSelector;

WidgetConfigSheetMaterialEditor

Widget config

interface WidgetConfigSheetMaterialEditor {
	sheets: (Sheet)[];
	sheetMaterials: (SheetMaterial)[];
	cuttingProcesses: (SheetMaterialEditorCuttingProcess)[];
	parts: (SheetMaterialEditorPart)[];
	initialValues: (SheetMaterialEditorPartData)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigSheetMaterialEditor(arg: unknown) : arg is WidgetConfigSheetMaterialEditor;

WidgetConfigSheetTappingEditor

Widget config

interface WidgetConfigSheetTappingEditor {
	base64Scene: string;
	candidates: (SheetTappingEditorCandidate)[];
	initialValue: WidgetResultSheetTappingEditor;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigSheetTappingEditor(arg: unknown) : arg is WidgetConfigSheetTappingEditor;

WidgetConfigTubeFilterEditor

Widget config

interface WidgetConfigTubeFilterEditor {
	tubes: (Tube)[];
	initialStateHeterogenous: boolean;
	initialValue?: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigTubeFilterEditor(arg: unknown) : arg is WidgetConfigTubeFilterEditor;

WidgetResult

Widget result

interface WidgetResult {
	index: number;
	data: WidgetResultAssemblyView;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResult(arg: unknown) : arg is WidgetResult;

WidgetResultAssemblyView

Widget result

interface WidgetResultAssemblyView {
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultAssemblyView(arg: unknown) : arg is WidgetResultAssemblyView;

WidgetResultAttachmentEditor

Widget result

interface WidgetResultAttachmentEditor {
	attachments: (Attachment)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultAttachmentEditor(arg: unknown) : arg is WidgetResultAttachmentEditor;

WidgetResultBendingToolEditor

Widget result

interface WidgetResultBendingToolEditor {
	dieChoiceMap: (DieChoiceMapEntry)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultBendingToolEditor(arg: unknown) : arg is WidgetResultBendingToolEditor;

WidgetResultBulkEditor

Widget result

interface WidgetResultBulkEditor {
	rows?: (StringIndexedInterface)[];
	widgetState: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultBulkEditor(arg: unknown) : arg is WidgetResultBulkEditor;

WidgetResultCalcParamEditor

Widget result

interface WidgetResultCalcParamEditor {
	materialCostsPerPiece?: number;
	setupTime?: number;
	unitTimePerPiece?: number;
	userDefinedScalePrices: (UserDefinedScalePrice)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultCalcParamEditor(arg: unknown) : arg is WidgetResultCalcParamEditor;

WidgetResultCalcUserInputDialog

Widget result

interface WidgetResultCalcUserInputDialog {
	values: (AnyCalcUserInput)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultCalcUserInputDialog(arg: unknown) : arg is WidgetResultCalcUserInputDialog;

WidgetResultErpStandardInterfaceConfigDialog

Widget result

interface WidgetResultErpStandardInterfaceConfigDialog {
	config: AnyErpStandardInterfaceConfig;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultErpStandardInterfaceConfigDialog(arg: unknown) : arg is WidgetResultErpStandardInterfaceConfigDialog;

WidgetResultFileDialog

Widget result

interface WidgetResultFileDialog {
	paths: (string)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultFileDialog(arg: unknown) : arg is WidgetResultFileDialog;

WidgetResultFormEditor

Widget result

interface WidgetResultFormEditor {
	values: StringIndexedInterface;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultFormEditor(arg: unknown) : arg is WidgetResultFormEditor;

WidgetResultJoiningSequenceEditor

Widget result

interface WidgetResultJoiningSequenceEditor {
	joining: UiJoiningRepresentation;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultJoiningSequenceEditor(arg: unknown) : arg is WidgetResultJoiningSequenceEditor;

WidgetResultLayeredImportDialog

Widget result

interface WidgetResultLayeredImportDialog {
	twoDimRep: TwoDimRepresentation;
	thickness: number;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultLayeredImportDialog(arg: unknown) : arg is WidgetResultLayeredImportDialog;

WidgetResultLstCreationDialog

Widget result

interface WidgetResultLstCreationDialog {
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultLstCreationDialog(arg: unknown) : arg is WidgetResultLstCreationDialog;

WidgetResultMessageBox

Widget result

interface WidgetResultMessageBox {
	accepted: boolean;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultMessageBox(arg: unknown) : arg is WidgetResultMessageBox;
Details

Property accepted is only meaningful for type MessageBoxType::question

WidgetResultPartCreationDialog

Widget result

interface WidgetResultPartCreationDialog {
	result: AnyPartCreationDialogResult;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultPartCreationDialog(arg: unknown) : arg is WidgetResultPartCreationDialog;

WidgetResultProcessSelector

Widget result

interface WidgetResultProcessSelector {
	processIds: (string)[];
	forced: boolean;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultProcessSelector(arg: unknown) : arg is WidgetResultProcessSelector;

WidgetResultSheetMaterialEditor

Widget result

interface WidgetResultSheetMaterialEditor {
	updates: (SheetMaterialEditorPartData)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultSheetMaterialEditor(arg: unknown) : arg is WidgetResultSheetMaterialEditor;

WidgetResultSheetTappingEditor

Widget result

interface WidgetResultSheetTappingEditor {
	selection: (SheetTappingEditorSelectionEntry)[];
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultSheetTappingEditor(arg: unknown) : arg is WidgetResultSheetTappingEditor;

WidgetResultTubeFilterEditor

Widget result

interface WidgetResultTubeFilterEditor {
	tubeId?: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultTubeFilterEditor(arg: unknown) : arg is WidgetResultTubeFilterEditor;

WorkStepTypeChangeResult

Resulting pre-graph and the set of vertices that have been changed

interface WorkStepTypeChangeResult {
	success: boolean;
	preGraph: PreDocumentGraph;
	changedVertices: (SlVertex)[];
}

Defined in module lib/generated/typeguard.ts

function isWorkStepTypeChangeResult(arg: unknown) : arg is WorkStepTypeChangeResult;

Enums

Enums are string objects that can only hold certain predefined values.

AddResultStatus

List of possible statuses of adding data to graph

Possible values:

  • success: Successful adding

  • unsupportedFormat: Format of file not supported

  • versionMismatch: Wsi4 file too old

  • inconsistentGraph: Graph in wsi4 file was not consistent

  • undefinedError: Undefined error

  • unsupportedVersion: Version unsupported (probably newer than current version)

Defined in module lib/generated/typeguard.ts:

function isAddResultStatus(arg: unknown) : arg is AddResultStatus;

ArticleUserDataKey

Key of an article UserData entry

Possible values:

  • name: Article name

  • comment: Article specific comment

  • externalPartNumber: External part number (e.g. customer ERP number)

  • externalDrawingNumber: External drawing number (e.g. customer drawing number)

  • externalRevisionNumber: External revision number (e.g. customer revision number)

  • internalPartNumber: Internal part number (e.g. internal ERP number)

  • internalReferenceNumber: Internal reference number (e.g. internal reference number)

  • customUserData: Custom UserData

  • attachments: Attachments

Defined in module lib/generated/typeguard.ts:

function isArticleUserDataKey(arg: unknown) : arg is ArticleUserDataKey;

BendDieChoiceType

List of possible BendDieChoice types

Possible values:

  • database: Database value

  • neutralAxis: Neutral axis

Defined in module lib/generated/typeguard.ts:

function isBendDieChoiceType(arg: unknown) : arg is BendDieChoiceType;

BendLineEngravingMode

Bend line engraving mode

Possible values:

  • none: No bend line is engraved

  • upwardOnly: Only lines for upward bends are engraved

  • downwardOnly: Only lines for downward bends are engraved

  • all: All bend lines are engraved

Defined in module lib/generated/typeguard.ts:

function isBendLineEngravingMode(arg: unknown) : arg is BendLineEngravingMode;

BomComponentType

Types of BOM components

Details

A component is a regular article (i.e. not a semimanufactured article).

Possible values:

  • joining

  • sheetMetalPart

  • tubePart

  • purchasePart

Defined in module lib/generated/typeguard.ts:

function isBomComponentType(arg: unknown) : arg is BomComponentType;

BomExportFlag

Possible values:

  • bendDrawingHtml

  • dxf

  • geo

  • jobCardHtml

  • pngInputAssembly

  • pngGeneratedAssembly

  • stepInputAssembly

  • stepGeneratedAssembly

  • svg

  • undirectedConnectedComponentGraphs

  • attachments

  • gltfInputAssembly

  • gltfGeneratedAssembly

Defined in module lib/generated/typeguard.ts:

function isBomExportFlag(arg: unknown) : arg is BomExportFlag;

BomGeneratedFileType

Types of generated attachments

Possible values:

  • dxf: Plain text DXF file content

  • geo: Plain text GEO file content

  • svg: Plain text SVG file content

  • png: Base64-encoded PNG file content

  • step: Plain text STEP file content

  • bendDrawingHtml: Plain text HTML bend drawing (self-contained)

  • gltf: Base64-encoded GLTF file content

  • jobCardHtml: Plain text HTML job card (self-contained)

Defined in module lib/generated/typeguard.ts:

function isBomGeneratedFileType(arg: unknown) : arg is BomGeneratedFileType;

BomTubeProfileType

Possible values:

  • circular

  • rectangular

Defined in module lib/generated/typeguard.ts:

function isBomTubeProfileType(arg: unknown) : arg is BomTubeProfileType;

BomVersion

Version of the BOM interface

Possible values:

  • v0: Latest version

Defined in module lib/generated/typeguard.ts:

function isBomVersion(arg: unknown) : arg is BomVersion;

BomWorkStepType

BOM related work step types

Possible values:

  • generic

  • sheetCutting

  • sheetBending

  • tubeCutting

  • coating

  • sheetTapping

  • mechanicalDeburring

  • userDefinedCountersinking

  • userDefinedThreading

  • countersinking

Defined in module lib/generated/typeguard.ts:

function isBomWorkStepType(arg: unknown) : arg is BomWorkStepType;

CadFeatureType

CAD features

Possible values:

  • countersink: A countersink

  • throughHole: A through hole

Defined in module lib/generated/typeguard.ts:

function isCadFeatureType(arg: unknown) : arg is CadFeatureType;

CadMaterialFileType

CAD file types with material export support

Possible values:

  • dxf: DXF

  • geo: GEO

Defined in module lib/generated/typeguard.ts:

function isCadMaterialFileType(arg: unknown) : arg is CadMaterialFileType;

CalcUserInputType

Types of user input calc variable

Possible values:

  • number

  • enumeration

Defined in module lib/generated/typeguard.ts:

function isCalcUserInputType(arg: unknown) : arg is CalcUserInputType;

CamCoatingMode

List of available transform command types

Possible values:

  • allFaces: All faces

  • singlePartUpperSide: Upper side of a single part; the semantics of 'upper' depend on the underlying wscad::Part

  • singlePartLowerSide: Lower side of a single part; the semantics of 'upper' depend on the underlying wscad::Part

Defined in module lib/generated/typeguard.ts:

function isCamCoatingMode(arg: unknown) : arg is CamCoatingMode;

CamCommandType

List of available transform command types

Possible values:

  • setColor: Set color of geometry entities

  • setCoatingColor: Set color for a coating work step

  • applyCadFeatures: Apply CAD features

Defined in module lib/generated/typeguard.ts:

function isCamCommandType(arg: unknown) : arg is CamCommandType;

Color

Colors available for geometric output

Possible values:

  • black: black

  • white: white

  • green: green

  • yellow: yellow

  • cyan: cyan

  • blue: blue

  • magenta: magenta

  • none: none

  • red: red

  • lightgrey: lightgrey

  • lime: lime

  • turquoise: turquoise

  • violet: violet

  • saddlebrown: saddlebrown

  • darkorange: darkorange

  • sienna: sienna

  • closedContour: closedContour

  • closedInnerContour: closedInnerContour

  • closedOuterContour: closedOuterContour

  • openContour: openContour

  • engraving: engraving

  • bendLine: bendLine

  • bendLineUp: bendLineUp

  • bendLineDown: bendLineDown

  • darkGreen: darkGreen

Defined in module lib/generated/typeguard.ts:

function isColor(arg: unknown) : arg is Color;

CompletionTimeMode

Completion time mode

Possible values:

  • maximalPath: For each maximal path the manufacturing times and idle times are accumulated. The most expensive path defines the resulting time.

  • maximalNodeInclManufacturingTime: The node where the sum of manufacturing time and idle time is maximal defines the resulting time.

  • maximalNodeExclManufacturingTime: The node where idle time is maximal defines the resulting time.

Defined in module lib/generated/typeguard.ts:

function isCompletionTimeMode(arg: unknown) : arg is CompletionTimeMode;

DataSourceType

Type of a data source

Possible values:

  • filePath: Data source references a file on the file system

  • fileContent: Data source is the file content

Defined in module lib/generated/typeguard.ts:

function isDataSourceType(arg: unknown) : arg is DataSourceType;

DatabasePermission

Database permission

Possible values:

  • read: read

  • write: write

Defined in module lib/generated/typeguard.ts:

function isDatabasePermission(arg: unknown) : arg is DatabasePermission;

DatabaseType

List of possible database drivers

Details

A DatabaseType classifies different types of database drivers.

Possible values:

  • mssql: MSSQL driver

Defined in module lib/generated/typeguard.ts:

function isDatabaseType(arg: unknown) : arg is DatabaseType;

DocXImageType

Supported image types for DocX

Possible values:

  • png: A PNG image

Defined in module lib/generated/typeguard.ts:

function isDocXImageType(arg: unknown) : arg is DocXImageType;

DocXTableCellType

Item type of DocX document replacement

Possible values:

  • text: A text

  • image: An image

  • tables: A table cell with tables in it

Defined in module lib/generated/typeguard.ts:

function isDocXTableCellType(arg: unknown) : arg is DocXTableCellType;

DocumentAlignment

List of possible document content alignment types

Possible values:

  • left: Left alignment

  • center: Center alignment

  • right: Right alignment

Defined in module lib/generated/typeguard.ts:

function isDocumentAlignment(arg: unknown) : arg is DocumentAlignment;

DocumentImageType

List of possible document image types

Possible values:

  • png: Portable Network Graphics

  • svg: Scalable Vector Graphics

Defined in module lib/generated/typeguard.ts:

function isDocumentImageType(arg: unknown) : arg is DocumentImageType;

DocumentItemType

List of possible document item types

Possible values:

  • paragraph: A paragraph

  • heading: A heading

  • table: A table

  • image: An image

  • barcode: A barcode

  • separator: A Separator

  • pageBreak: A page break

Defined in module lib/generated/typeguard.ts:

function isDocumentItemType(arg: unknown) : arg is DocumentItemType;

DocumentOrientation

List of possible document orientations

Possible values:

  • portrait: Portrait

  • landscape: Landscape

Defined in module lib/generated/typeguard.ts:

function isDocumentOrientation(arg: unknown) : arg is DocumentOrientation;

ErpStandardInterfaceType

Version of the standard ERP interface

Possible values:

  • tsGraphRep: ts_lib’s JSON graph representation

  • bom: Built-in BOM

Defined in module lib/generated/typeguard.ts:

function isErpStandardInterfaceType(arg: unknown) : arg is ErpStandardInterfaceType;

Feature

List of available features

Possible values:

  • bendMeasurementScene: Generate bend measurement scenes

  • bomExport: Export bill of materials

  • graphRepExport: Export graph representation

  • unlimitedNumExports: Unlimited number of exports

  • httpServiceUnfold: Unfold http service

  • httpServiceNestor: Nestor http service

  • httpServiceAssemblyTree: Assembly tree http service

  • httpServiceClassifier: Classification http service

  • lstExport: Export lsts

  • erpInterfaceItBlech: IT-Blech ERP interface

  • erpInterfaceStandard: Standard ERP interface

  • tubeDetection: Tube detection

  • quotationExport: Export quotation

  • developmentAccount: Development account

  • coatingCalculation: Coating calculation

  • weldingCalculation: Welding calculation

  • machiningCalculation: Machining calculation

Defined in module lib/generated/typeguard.ts:

function isFeature(arg: unknown) : arg is Feature;

FileContentType

Type of a file content

Possible values:

  • plainText: File content is plain text

  • base64: File content is Base64 encoded binary data

Defined in module lib/generated/typeguard.ts:

function isFileContentType(arg: unknown) : arg is FileContentType;

FileDialogType

List of modes available for file dialog

Possible values:

  • openFile: Query existing file path

  • openFiles: Query existing file paths

  • saveFile: Query existing or non-existing file path

  • directory: Query directory path

Defined in module lib/generated/typeguard.ts:

function isFileDialogType(arg: unknown) : arg is FileDialogType;

FileSystemPathType

Different types of filesystem objects to query via dialog

Possible values:

  • directory: Select a directory

  • openFile: Select files to open

  • saveFile: Select a filename to save to

Defined in module lib/generated/typeguard.ts:

function isFileSystemPathType(arg: unknown) : arg is FileSystemPathType;

FileType

List of possible file types

Possible values:

  • svg: Scalable Vector Graphics

  • dxf: AutoCAD Drawing Exchange Format

  • step: Step AP214

  • png: Portable Network Graphics

  • geo: Trumpf GEO Format

Defined in module lib/generated/typeguard.ts:

function isFileType(arg: unknown) : arg is FileType;

FormWidgetType

List of widgets available for forms

Possible values:

  • checkBox: Check box

  • spinBox: Spin box

  • dropDown: Drop down

  • lineEdit: Line edit

  • textEdit: Text edit

  • label: Static text label

Defined in module lib/generated/typeguard.ts:

function isFormWidgetType(arg: unknown) : arg is FormWidgetType;

GeometryEntityType

Geometry entity types

Possible values:

  • edge: Edge

  • face: Face

Defined in module lib/generated/typeguard.ts:

function isGeometryEntityType(arg: unknown) : arg is GeometryEntityType;

GraphCreatorInputType

Input types for data used to create a PreDocumentGraph

Details

Experimental API

Possible values:

  • step: STEP file content

  • twoDimRep: 2D input

  • extrusion: Extrusion input

  • finalizedAssembly: Assembly (finalized) input

Defined in module lib/generated/typeguard.ts:

function isGraphCreatorInputType(arg: unknown) : arg is GraphCreatorInputType;

GraphNodeProcessingState

List of possible processing states

Possible values:

  • CreateWorkStep: Create workstep

  • UpdateWorkStep: Update workstep

  • CreateSources: Create sources

  • FillFromSources: Fill from sources

  • AfterFillFromSources: After Fill from sources

  • Finished: Finished

Defined in module lib/generated/typeguard.ts:

function isGraphNodeProcessingState(arg: unknown) : arg is GraphNodeProcessingState;

InputType

List of possible input types

Details

An InputType classifies different types of input. Unlike a FileType, an InputType differentiates the class of input by its logical type and how WSi4 can deal with it.

Possible values:

  • undefined: Undefined input that WSi4 cannot use

  • documentGraph: A complete WSi4 compatible project

  • assembly: A three-dimensional input representing an assembly

  • layered: Two-dimensional input, possibly in different layers

  • twoDimRep: Pre-processed two-dimensional input

Defined in module lib/generated/typeguard.ts:

function isInputType(arg: unknown) : arg is InputType;

LocaleType

List of available locale types

Possible values:

  • language: Language locale

  • csv: Locale used for exporting csv

Defined in module lib/generated/typeguard.ts:

function isLocaleType(arg: unknown) : arg is LocaleType;

MessageBoxType

List of message box types

Possible values:

  • info: Information message box

  • warning: Warning message box

  • error: Error message box

  • question: Question message box

Defined in module lib/generated/typeguard.ts:

function isMessageBoxType(arg: unknown) : arg is MessageBoxType;

NestingMode

Nesting modes

Possible values:

  • actualMixed: Compatible sheet metal parts are nested on the same sheet with their actual quantities

  • actualIndividual: Each component is nested individually with the actual quantity

  • virtualIndividual: Quantity independent consumption based on a single sheet nesting

Defined in module lib/generated/typeguard.ts:

function isNestingMode(arg: unknown) : arg is NestingMode;

NodeContextProperty

Properties of a context of a node

Possible values:

  • coatable: Coating can be applied (this requires finished sheetCutting / sheetBending / tubeCutting)

  • countersinkable: There are unhandled countersinks left

  • flat: Node has a flat sheet metal part geometry (i.e. is not bent (yet))

  • hasCuttingContour: Node as a defined cutting contour

  • hasMaterial: Node has a defined material; this can only be true for nodes of a component article (i.e. not joining)

  • hasThickness: Node has a thickness (i.e. is part of a sheet metal part article or a tube part)

  • sheetMetalPart: Node is part of a sheet metal part article

  • tubePart: Node is part of a tube part article

  • joining: Node is part of a joining article

Defined in module lib/generated/typeguard.ts:

function isNodeContextProperty(arg: unknown) : arg is NodeContextProperty;

NodeDatumType

Corresponds to certain node properties

Possible values:

  • processId: ID of the underlying Process

  • sheetMaterial: Method of sheet material definition (sheet ID / sheet material ID / sheet specification)

  • tubeMaterialId: ID of the underlying tube material

  • tubeSpecificationId: ID of the underlying tube specification

  • sheetTappingData: The underlying sheet tapping data

  • dieChoiceMap: The underlying die choice

  • coating: Coating related input

  • calcVariableInput: Input for a calculation variable

Defined in module lib/generated/typeguard.ts:

function isNodeDatumType(arg: unknown) : arg is NodeDatumType;

NodeIssueType

Types for issues that can occur for a node

Possible values:

  • bendDeductionApplicationFailed

  • cadFeatureUnhandled

  • geometryPartiallyUnclassified

  • nestingFailed

  • tubeUnfoldingInconsistent

  • twoDimRepresentationInvalid

  • unexpected: Fallback for unexpected issues (likely bugs)

  • unfoldingFailed

  • classificationEnforceable

  • datumInvalid

  • datumMissing

  • bendDeductionThicknessDeviation

  • bendDieChoiceFailed

  • bendFlangeTooShort

  • bendLineGrossLengthConstraintViolated

  • bendLineNetLengthConstraintViolated

  • bendRadiusDeviation

  • bendZoneAffectsContour

  • contourSizeConstraintViolated

  • dimensionConstraintViolated

  • featureNotLicensed

  • massConstraintViolated

  • materialIncompatible

  • sheetNotAvailable

  • tubeNotAvailable

  • sheetThicknessConstraintViolated

  • tubeProfileNotSupported

  • unfoldingNotSimple

Defined in module lib/generated/typeguard.ts:

function isNodeIssueType(arg: unknown) : arg is NodeIssueType;

NodeUserDataKey

Key of a node UserData entry

Possible values:

  • attachments: Attachments

  • bendLineEngravingMode: Bend line engraving mode

  • coatingId: Coating ID

  • comment: Comment

  • deburrDoubleSided: If deburring should be done double sided

  • fixedRotations: Fixed rotations of a sheet metal part’s 2D representation

  • numCountersinks: Number of user-defined countersinkings

  • numThreads: Number of user-defined threads

  • purchasePartMaterialId: ID of a purchase part material

  • sheetFilterSheetIds: IDs of a set of sheets

  • sheetSpec: Standard sheet specification

  • sheetMaterialId: ID of a sheet material

  • sheetTappingData: Sheet tapping data

  • testReportRequired: If a test report is required

  • tubeFilterTubeIds: IDs of a set of tubes

  • tubeMaterialId: ID of a tube material

  • tubeSpecificationId: ID of a tube specification

  • userDefinedMaterialCostsPerPiece: User-defined material costs per piece

  • userDefinedScalePrices: User-defined scale prices

  • userDefinedSetupTime: User-defined setup time

  • userDefinedUnitTimePerPiece: User-defined unit time per piece

  • screwThreadEngravingEnabled: If screw thread names should be engraved next to the holes

Defined in module lib/generated/typeguard.ts:

function isNodeUserDataKey(arg: unknown) : arg is NodeUserDataKey;

PartCreationDialogType

List of part creation dialog types

Possible values:

  • rectangularSheetMetalPart: Rectangular sheet metal part

  • lProfile: L-Profile

  • tube: Tube

  • uProfile: U-Profile

Defined in module lib/generated/typeguard.ts:

function isPartCreationDialogType(arg: unknown) : arg is PartCreationDialogType;

PrivateGuiDataType

Private API

Possible values:

  • graphRep

Defined in module lib/generated/typeguard.ts:

function isPrivateGuiDataType(arg: unknown) : arg is PrivateGuiDataType;

PrivateMainWindowMenuType

Private API

Possible values:

  • fileRun

  • fileExport

Defined in module lib/generated/typeguard.ts:

function isPrivateMainWindowMenuType(arg: unknown) : arg is PrivateMainWindowMenuType;

ProcessQueryIssue

Possible values:

  • calculationIncompatible: Calculation requires unavailable variables

  • dimensionConstraintViolated: Dimension constraint violated

  • massConstraintViolated: Mass constraint violated

  • materialIncompatible: Material is incompatible

  • nodeContextIncompatible: Node context is incompatible

  • processNotConfigured: Process not configured

Defined in module lib/generated/typeguard.ts:

function isProcessQueryIssue(arg: unknown) : arg is ProcessQueryIssue;

ProcessType

List of possible process types

Possible values:

  • undefined: undefined

  • manufacturing: manufacturing

  • semiManufactured: semiManufactured

  • sheetCutting: sheetCutting

  • laserSheetCutting: laserSheetCutting

  • joining: joining

  • externalPart: externalPart

  • sheet: sheet

  • userDefinedBaseType: userDefinedBaseType

  • assembling: assembling

  • forceFitting: forceFitting

  • joiningByWelding: joiningByWelding

  • joiningByBrazing: joiningByBrazing

  • bonding: bonding

  • autogenousWelding: autogenousWelding

  • arcWelding: arcWelding

  • gasShieldedWelding: gasShieldedWelding

  • migWelding: migWelding

  • magWelding: magWelding

  • tigWelding: tigWelding

  • plasmaWelding: plasmaWelding

  • laserWelding: laserWelding

  • weldingWithPressure: weldingWithPressure

  • resistanceWelding: resistanceWelding

  • studWelding: studWelding

  • forming: forming

  • bendForming: bendForming

  • bendingWithoutTool: bendingWithoutTool

  • dieBending: dieBending

  • sheetMetalFolding: sheetMetalFolding

  • cutting: cutting

  • removalOperation: removalOperation

  • plasmaSheetCutting: plasmaSheetCutting

  • waterJetSheetCutting: waterJetSheetCutting

  • machining: machining

  • milling: milling

  • turning: turning

  • drilling: drilling

  • threading: threading

  • mechanicalDeburring: mechanicalDeburring

  • cleaning: cleaning

  • coating: coating

  • sprayPainting: sprayPainting

  • powderCoating: powderCoating

  • sheetBending: sheetBending

  • transport: transport

  • packaging: packaging

  • automaticMechanicalDeburring: automaticMechanicalDeburring

  • manualMechanicalDeburring: manualMechanicalDeburring

  • userDefinedMachining: userDefinedMachining

  • userDefinedThreading: userDefinedThreading

  • userDefinedCountersinking: userDefinedCountersinking

  • slideGrinding: slideGrinding

  • sheetTapping: sheetTapping

  • userDefinedTube: userDefinedTube

  • tube: tube

  • tubeCutting: tubeCutting

  • countersinking: countersinking

  • hotDipGalvanizing: hotDipGalvanizing

  • electroGalvanizing: electroGalvanizing

  • cathodicDipPainting: cathodicDipPainting

  • anodizing: anodizing

  • nutSpotWelding: nutSpotWelding

  • spotWelding: spotWelding

  • singlePartWelding: singlePartWelding

  • singlePartMigWelding: singlePartMigWelding

  • singlePartMagWelding: singlePartMagWelding

  • singlePartTigWelding: singlePartTigWelding

  • singlePartGasShieldedWelding: singlePartGasShieldedWelding

  • sawing: sawing

  • laserSheetCuttingN2: laserSheetCuttingN2

  • laserSheetCuttingO2: laserSheetCuttingO2

Defined in module lib/generated/typeguard.ts:

function isProcessType(arg: unknown) : arg is ProcessType;

SceneElement

Elements of a Scene

Possible values:

  • cuttingContours: Cutting contours

  • engravings: Engravings

  • sheetBendingBendLineLabels: Labels for bend lines (sheetBending only)

  • sheetBendingBendLineRadii: Radii for bend lines (sheetBending only; only when labels are enabled too)

  • sheetBendingBendZones: Bend zones (sheetBending only)

  • sheetBendingDieAffectedSegments: Segments potentially affect by bend die (sheetBending only)

  • sheetBendingLowerDieAffectZones: Lower die affect zones (sheetBending only)

  • sheetBendingOverlappingAreas: Overlapping areas of the unfolding (sheetBending only)

  • sheetGuiExtraContent: Extra content (sheet modulus visualization, text labels)

  • tubeCuttingTubeContours: Contours of the unrolled tube (tubeCutting only)

  • tubeCuttingVirtualCuts: Virtual cuts of the unrolled tube (tubeCutting only)

  • violatingContoursColored: Colored contours violating the minimal contour area

Defined in module lib/generated/typeguard.ts:

function isSceneElement(arg: unknown) : arg is SceneElement;

SegmentType

List of available segment types

Possible values:

  • line: Line segment

  • arc: Arc segment

Defined in module lib/generated/typeguard.ts:

function isSegmentType(arg: unknown) : arg is SegmentType;

SettingsTableKey

Key of a settings table entry

Possible values:

  • bendFlangeSafetyDistance: Extra flange length for die bending parts

  • dieBendingSetupTimeDistributionEnabled: Whether the distribution of the die bending setup time among compatible nodes is enabled

  • dieChoiceRadiusFactorSoftLimit: Soft limit for the allowed deviation of constructed and resulting radius (if constructed is > resulting)

  • dieChoiceRadiusFactorHardLimit: Hard limit for the allowed deviation of constructed and resulting radius (if constructed is > resulting)

  • erpStandardInterfaceConfig: Configuration for the standard ERP interface

  • laserSheetCuttingAMax: Maximum acceleration for sheet cutting processes [m / s²]

  • laserSheetCuttingVMax: Maximum speed for sheet cutting processes [m / min]

  • manualMechanicalDeburringSpeed: Speed for manual mechanical deburring [m / min]

  • sheetNestingDistance: Nesting distance for sheets

  • sheetScrapAreaThreshold: Inner contour area threshold for scrap computation

  • sheetTestReportCosts: Cost for a sheet test report

  • sheetUpperSideStrategy: Sheet upper side strategy

  • tubeClampingLength: Length of tubes that cannot be used for nesting

  • tubeNestingDistance: Nesting distance for tubes

  • sheetTestReportEnabled: Whether sheet test report option is enabled

  • sheetCuttingFixedRotationsEnabled: Whether fixed rotations can be set for sheet cutting

  • tableMigrationVersion: Table migration version

  • sheetNestingMode: Sheet nesting mode

  • csvLocale: Locale used for csv import/export

  • thirdPartyErpInterfaceConfig: Configuration of athe third party erp interface

  • completionTimeMode: Mode to compute completion time

  • customArticleUserDataConfigJson: Article userdata config json

  • bendLineEngravingMode: Default bend line engraving mode

  • bendLineEngravingLength: Bend line engraving length

Defined in module lib/generated/typeguard.ts:

function isSettingsTableKey(arg: unknown) : arg is SettingsTableKey;

SheetSurfaceFlag

Types of sheet sides

Possible values:

  • lower

  • upper

Defined in module lib/generated/typeguard.ts:

function isSheetSurfaceFlag(arg: unknown) : arg is SheetSurfaceFlag;

SheetUpperSideStrategy

Strategy for the selection of the initial upper side

Possible values:

  • preferUpwardBends: Prefer upward bends

  • preferDownwardBends: Prefer downward bends

  • preferConvexity: Prefer convexity

  • preferConcavity: Prefer concavity

Defined in module lib/generated/typeguard.ts:

function isSheetUpperSideStrategy(arg: unknown) : arg is SheetUpperSideStrategy;

StrokeStyle

Line styles available for geometric output

Possible values:

  • continuous: continuous

  • dashed: dashed

Defined in module lib/generated/typeguard.ts:

function isStrokeStyle(arg: unknown) : arg is StrokeStyle;

TableErrorType

List of table error types

Possible values:

  • referringEntryMissing: Entry referring to the respective row is missing

  • referredEntryMissing: Entry referred by the respective row is missing

  • valueInvalid: Value for respective table cell is invalid

  • uniqueMemberCollision: Two rows of the same table have the same value for each unique member

  • tableInconsistent: Table consistency issue

Defined in module lib/generated/typeguard.ts:

function isTableErrorType(arg: unknown) : arg is TableErrorType;

TableMergeMode

Mode for merging input tables with the database

Possible values:

  • update: Update existing table rows

  • upsert: Update existing table rows or insert new rows

Defined in module lib/generated/typeguard.ts:

function isTableMergeMode(arg: unknown) : arg is TableMergeMode;

TableType

List of table types

Possible values:

  • sheetMaterial: Sheet material

  • sheetMaterialDensity: Material Density

  • sheetCuttingMaterialMapping: Sheet cutting material mapping

  • sheetBendingMaterialMapping: Sheet bending material mapping

  • bendTime: Bend time

  • bendTimeParameters: Bend time parameters

  • bendRateParameters: Bend rate parameters

  • bendLineConstraint: Bend line constraint

  • laserSheetCuttingGas: Laser sheet cutting gas

  • laserSheetCuttingSpeed: Laser sheet cutting speed

  • laserSheetCuttingPierceTime: Laser sheet cutting pierce time

  • laserSheetCuttingRate: Laser sheet cutting rate

  • laserSheetCuttingMinArea: Laser sheet cutting minimum contour area

  • laserSheetCuttingMaxThickness: Laser sheet cutting maximum sheet thickness

  • packaging: Packaging

  • transportationCosts: Transportation costs

  • surcharge: Surcharge

  • process: Process

  • processRate: Process rate

  • processSetupTimeFallback: Process setup time fallback

  • processUnitTimeFallback: Process unit time fallback

  • sheet: Sheet

  • sheetModulus: Sheet modulus

  • sheetPrice: Sheet prices

  • upperDieGroup: Upper die group

  • lowerDieGroup: Lower die group

  • bendDeduction: Bend deduction

  • setting: Account-wide settings

  • automaticMechanicalDeburringMaterial: Automatic mechanical deburring material mapping

  • automaticMechanicalDeburringParameters: Automatic mechanical deburring parameters

  • dimensionConstraints: Process specific dimension constraints

  • screwThread: Screw thread definitions

  • tappingTimeParameters: Tapping time parameters

  • tubeMaterial: Tube specific material

  • tubeMaterialDensity: Tube specific material density

  • tubeProfile: Tube profile

  • tubeSpecification: Tube specification

  • tube: Tube

  • upperDie: Upper die

  • lowerDie: Lower die

  • upperDieUnit: Upper die unit

  • lowerDieUnit: Lower die unit

  • processHandlingTime: Process handling time

  • sheetStock: Sheet stock

  • processIdlePeriod: Process idle period

  • sheetMaterialScrapValue: Sheet material scrap value

  • sheetPriority: Sheet priority

  • dieGroupPriority: Die group priority

  • sheetCuttingMaterial: Sheet cutting material

  • sheetBendingMaterial: Sheet bending material

  • tubeCuttingProcess: Tube cutting process

  • tubeCuttingProcessMapping: Tube cutting process mapping

  • tubeCuttingSpeed: Tube cutting speed

  • tubeCuttingPierceTime: Tube cutting pierce time

  • tubePrice: Tube price

  • tubeStock: Tube stock

  • tubeMaterialScrapValue: Tube material scrap value

  • sheetCuttingProcess: Sheet cutting process

  • sheetCuttingProcessMapping: Tube cutting process mapping

  • sheetCuttingMotionParameters: Sheet cutting motion parameters

  • sheetCuttingProcessToLaserCuttingGas: Sheet cutting process to legacy laser sheet cutting gas mapping

  • purchasePartMaterial: Material of purchase parts

  • processConstraintsSheetMaterial: Sheet material constraint for a process

  • processConstraintsTubeMaterial: Tube material constraint for a process

  • processConstraintsPurchasePartMaterial: Purchase part material constraint for a process

  • consumable: User-defined consumables

  • processConsumableRate: Consumable rate per process

  • sheetCuttingProcessConsumableRate: Consumable rate per sheet cutting process

  • tubeCuttingProcessConsumableRate: Consumable rate per tube cutting process

  • sheetCuttingThicknessConstraints: Sheet cutting thickness constraints

  • processCustomCalculation: Custom process calculation

  • coating: Coating

  • coatingProcessMapping: Maps a coating to a process

  • sheetMaterialExportAlias: Defines export aliases for sheet materials

  • materialGroup: Global material group

  • sheetMaterialToMaterialGroup: Maps sheet materials to material groups

  • tubeMaterialToMaterialGroup: Maps tube materials to material groups

  • purchasePartMaterialToMaterialGroup: Maps purchasePart materials to material groups

  • sheetIdlePeriod: Idle time for a sheet

  • sheetSetupTime: Setup time for a sheet

  • sheetUnitTime: Unit time for a sheet

  • tubeIdlePeriod: Idle time for a tube

  • tubeSetupTime: Setup time for a tube

  • tubeUnitTime: Unit time for a tube

  • tubePriority: Priority for a tube

  • processMassConstraint: Mass constraints for a process

Defined in module lib/generated/typeguard.ts:

function isTableType(arg: unknown) : arg is TableType;

TsGraphRepResourceType

Types of resources that can be exported in the ERP interface

Possible values:

  • bendDrawingHtml

  • dxf

  • dxfCompressed

  • geo

  • geoCompressed

  • svg

  • svgCompressed

  • stepInput

  • stepInputCompressed

  • stepGenerated

  • stepGeneratedCompressed

  • attachments

  • png

  • undirectedConnectedComponentGraphs

Defined in module lib/generated/typeguard.ts:

function isTsGraphRepResourceType(arg: unknown) : arg is TsGraphRepResourceType;

TsGraphRepVersion

Version of the ts_lib graph representation ERP interface

Possible values:

  • v0

  • v1

Defined in module lib/generated/typeguard.ts:

function isTsGraphRepVersion(arg: unknown) : arg is TsGraphRepVersion;

TubeProfileGeometryType

List of tube profile geometry types

Possible values:

  • rectangular: Rectangular tube profile geometry

  • circular: Circular tube profile geometry

Defined in module lib/generated/typeguard.ts:

function isTubeProfileGeometryType(arg: unknown) : arg is TubeProfileGeometryType;

TwoDimImportResultType

Result for a 2D geometry import

Possible values:

  • partInvalid: Part is invalid

  • engravingInvalid: Engraving is invalid

  • success: Success

Defined in module lib/generated/typeguard.ts:

function isTwoDimImportResultType(arg: unknown) : arg is TwoDimImportResultType;

UserDatumType

Type of a UserData entry

Possible values:

  • string: Entry of type string

  • number: Entry of type double

  • boolean: Entry of type boolean

  • enumeration: Entry of a set of pre-defined items

Defined in module lib/generated/typeguard.ts:

function isUserDatumType(arg: unknown) : arg is UserDatumType;

WidgetType

List of available widgets

Possible values:

  • assemblyView: Assembly view

  • attachmentEditor: Attachment editor

  • bendingToolEditor: Bending tool editor

  • articleBulkEditor: Tabular widget for bulk-editing

  • calcParamEditor: Calculatory parameter editor

  • calcUserInputDialog: Dialog for user-defined input for custom calculations

  • erpStandardInterfaceConfigDialog: Dialog for configuration of the ERP standard interface

  • fileDialog: File dialog

  • formEditor: Form editor

  • joiningSequenceEditor: Joining sequence editor

  • layeredImportDialog: Layered import dialog

  • messageBox: Message box

  • processSelector: Process selector

  • sheetMaterialEditor: Sheet filter editor

  • sheetTappingEditor: Sheet tapping editor

  • tubeFilterEditor: Tube filter editor

  • partCreationDialog: Part creation dialog

  • lstCreationDialog: LST creation dialog

Defined in module lib/generated/typeguard.ts:

function isWidgetType(arg: unknown) : arg is WidgetType;

WorkStepType

List of possible types of worksteps

Details

A WorkStepType classifies a workstep by the type relevant to algorithmic considerations. For example, the processes laser sheet cutting and plasma sheet cutting would both be of type sheetCutting.

Possible values:

  • undefined: An undefined type

  • sheet: A base workstep of sheet form

  • sheetCutting: Two-dimensional cutting done with a sheet

  • joining: Joining two or more assemblies

  • tubeCutting: Three-dimensional cutting done with a tube

  • sheetBending: Folding is material cut from sheets

  • userDefined: Arbitrary user defined workstep

  • userDefinedBase: Arbitrary user defined base workstep, usually a purchased part

  • packaging: Workstep where one or more assemblies are packaged and thus three-dimensionally nested into predefined containers

  • transform: Generic workstep

  • tube: Semimanufactured tube

Defined in module lib/generated/typeguard.ts:

function isWorkStepType(arg: unknown) : arg is WorkStepType;

API documentation

Top-level functions

isFeatureEnabled

Check if a given Feature is enabled

wsi4.isFeatureEnabled(feature: Feature): boolean

Input parameters:

  • feature The Feature to check

Return values:

  • boolean True if feature is enabled

quit

Quit application

wsi4.quit(): void

Return values:

setFeature

Enable or disable a Feature

wsi4.setFeature(feature: Feature, value: boolean): void

Enabling a Feature is only possible for development accounts!

Input parameters:

  • feature The Feature to enable or disable

  • value The value to set feature to

Return values:

throwError

Throw an exception and abort script execution

wsi4.throwError(message: string): never

Input parameters:

  • message String content of exception

Return values:

  • never

version

Get program version

wsi4.version(): ProgramVersion

Only meaningful in main script engine.

Return values:

  • ProgramVersion Program version

cad

CAD query functions

coreHoleDiameter

Get core hole diameter of a through hole or a countersink

wsi4.cad.coreHoleDiameter(descriptor: number, part: CadPart): number

If feature and part are inconsistent, an error is thrown.

Input parameters:

  • descriptor The descriptor

  • part The associated CadPart

Return values:

  • number Core hole radius of a feature

featureDescriptors

Get CadFeatureDescriptors for a CadPart

wsi4.cad.featureDescriptors(part: CadPart): (number)[]

Note: For now the Feature API is limited to sheet metal parts (i.e. not tubes). For an unsupported part the result will always be empty.

Input parameters:

  • part A CadPart

Return values:

  • (number)[] Descriptors for all features detected in part

featureDetails

Query details for a CAD feature

wsi4.cad.featureDetails(descriptor: number, part: CadPart): AnyCadFeatureDetails

Input parameters:

  • descriptor The descriptor

  • part The associated CadPart

Return values:

  • AnyCadFeatureDetails Details for associated feature

featureType

Query type of a feature

wsi4.cad.featureType(descriptor: number, part: CadPart): CadFeatureType

If descriptor and part are inconsistent, an error is thrown.

Input parameters:

  • descriptor The descriptor

  • part The associated CadPart

Return values:

  • CadFeatureType Type of the associated feature

groupFeatures

Query details for a CAD feature

wsi4.cad.groupFeatures(descriptors: (number)[], part: CadPart, considerSurfaceFlag: boolean): (CadFeatureGroup)[]

Input parameters:

  • descriptors Feature descriptors that should be grouped

  • part The CadPart

  • considerSurfaceFlag Ture if surface flag should be considered in grouping countersinks

Return values:

  • (CadFeatureGroup)[] Groups of close features

thickness

Wall thickness of the Part (if meaningful)

wsi4.cad.thickness(part: CadPart): number

For a sheet metal part, this is the sheet’s thickness. For a tube part, this is the tube’s wall thickness.

Input parameters:

  • part The CadPart

Return values:

  • number Thickness

calc

Private API

calcUserInputValues

Query values of calc user input of a vertex

wsi4.calc.calcUserInputValues(vertex: Vertex): (AnyCalcUserInputValue)[]

Input parameters:

  • vertex A vertex

Return values:

  • (AnyCalcUserInputValue)[] All calc user input values

consumableConsumptions

Consumable consumptions for a node

wsi4.calc.consumableConsumptions(vertex: Vertex, multiplicity: number): (ConsumableConsumption)[]

For regular nodes this function returns the consumable costs per part. For semimanufactured nodes this function returns the overall consumable costs.

Input parameters:

  • vertex A Vertex

  • multiplicity Multiplicity the consumables should be computed for

Return values:

  • (ConsumableConsumption)[] The consumable consumptions

customCalculations

Evaluate custom calculation entry points for a node

wsi4.calc.customCalculations(vertex: Vertex): (CustomCalculationResult)[]

Input parameters:

  • vertex A Vertex

Return values:

  • (CustomCalculationResult)[] Results of custom calculation entry points (if any)

defaultCalculationJsons

Query default calculation jsons for a process type

wsi4.calc.defaultCalculationJsons(processType: ProcessType): (DefaultCalcJson)[]

Input parameters:

  • processType A process type

Return values:

  • (DefaultCalcJson)[] Default calculation jsons for a process type

isMeaningfulProcess

Check if processType is meaningful in the provided context)

wsi4.calc.isMeaningfulProcess(processId: string, nodeContextProperties: NodeContext): undefined|boolean

Input parameters:

  • processId The process ID

  • nodeContextProperties Properties of the node context

Return values:

  • undefined If there is no information available for the process

  • boolean True if a node with processId is meaningful in the provided context

regularManufacturingCostComponents

Manufacturing cost components for a regular node

wsi4.calc.regularManufacturingCostComponents(regularVertex: Vertex): ManufacturingCostComponents|string

Regular nodes are non-semimanufactured nodes. This does not entail any cost share of an associated semimanufactured. I.e. for sheetCutting nodes this does not entail the sheet cost share. I.e. for tubeCutting nodes this does not entail the tube cost share. The resulting value does not entail any surcharge.

Input parameters:

  • regularVertex A Vertex

Return values:

  • ManufacturingCostComponents The manufacturing cost details [currency / part] (if successful)

  • string Error message if something went wrong

regularManufacturingCostPerPartPreview

Manufacturing cost preview if a node with processId would be appended to sourceVertex

wsi4.calc.regularManufacturingCostPerPartPreview(sourceVertex: Vertex, processId: string, nodeUserData: StringIndexedInterface, commands: (CamCommand)[]): number|undefined

Currently this is limited to process IDs where the associated ProcessType is userDefined or transform.

Only valid combinations of processId, userData and commands are expected. commands are only meaningful if processId references a Process with associated WST transform. userData must be meaningful for the tested ProcessType.

Input parameters:

  • sourceVertex A Vertex

  • processId Process ID

  • nodeUserData Node UserData (if meaningful)

  • commands Commands (if meaningful)

Return values:

  • number The Manufacturing cost (if available)

  • undefined In case the preview computation is not possible

regularUnitTime

Unit time (Te) per part for a regular node

wsi4.calc.regularUnitTime(vertex: Vertex): number|string

Regular nodes are non-semimanufactured nodes.

Input parameters:

  • vertex A Vertex

Return values:

  • number The resulting unit time per part (if successful)

  • string Error message if something went wrong

semimanufacturedManufacturingCostComponents

Overall manufacturing cost components for a semimanufactured node

wsi4.calc.semimanufacturedManufacturingCostComponents(semimanufacturedVertex: Vertex): ManufacturingCostComponents|string

The resulting value entails the entire underlying nesting. The resulting value does not entail any surcharge.

Input parameters:

  • semimanufacturedVertex A Vertex

Return values:

  • ManufacturingCostComponents The manufacturing cost details [currency] (if successful)

  • string Error message if something went wrong

semimanufacturedUnitTime

Unit time (Te) for a semimanufactured node

wsi4.calc.semimanufacturedUnitTime(vertex: Vertex): number|string

The time entails all associated target node’s multiplicities.

Input parameters:

  • vertex A Vertex

Return values:

  • number The resulting unit time (if successful)

  • string Error message if something went wrong

setupTime

Setup time (Tr) for a regular node

wsi4.calc.setupTime(vertex: Vertex): number|string

Regular nodes are non-semimanufactured nodes.

Input parameters:

  • vertex A Vertex

Return values:

  • number The resulting setup time (if successful)

  • string Error message if something went wrong

userInputConfigs

Query configurations for user-input based variables

wsi4.calc.userInputConfigs(vertex: Vertex): (CalcUserInputConfig)[]

Input parameters:

  • vertex A Vertex

Return values:

  • (CalcUserInputConfig)[] Configurations for user-input based variables

cam.bend

Bend related functions

affectedSegments

Contour that is inside of any die’s affect distance (if any)

wsi4.cam.bend.affectedSegments(twoDimRep: TwoDimRepresentation, bendDieAffectDistances: readonly Readonly<BendDieAffectDistanceEntry>[]): (Segment)[]

Input parameters:

  • twoDimRep The TwoDimRepresentation

  • bendDieAffectDistances Bend die affect distance for each bend

Return values:

  • (Segment)[] Contour that is inside of any die’s affect distance (if any)

dieAffectDistanceMap

Computes a map that contains the die affect distance for each bend

wsi4.cam.bend.dieAffectDistanceMap(dieChoiceMap: (DieChoiceMapEntry)[], bendLineDataMap: (BendLineData)[], thickness: number): (BendDieAffectDistanceEntry)[]

Input parameters:

  • dieChoiceMap The die choice map

  • bendLineDataMap The bend line data map

  • thickness The sheet thickness

Return values:

  • (BendDieAffectDistanceEntry)[] Maps a die affect distance to each bend

dieChoicesClose

Check closeness of two BendDieChoices

wsi4.cam.bend.dieChoicesClose(lhs: BendDieChoice, rhs: BendDieChoice): boolean

Input parameters:

  • lhs lhs

  • rhs rhs

Return values:

  • boolean True if lhs and rhs are close

dieSharingPartitions

Partition a set of die bending vertices so that for each partition the die setup can be shared

wsi4.cam.bend.dieSharingPartitions(vertices: (Vertex)[]): ((Vertex)[])[]

Dies can only be shared if the global option is enabled and for vertices that are nested on the same sheet.

Input parameters:

  • vertices The vertices to partition

Return values:

  • ((Vertex)[])[] Partitions with compatible die setup

extractBendZones

Get bend zones of a TwoDimRepresentation corresponding to a bend node

wsi4.cam.bend.extractBendZones(twoDimRep: TwoDimRepresentation): (InnerOuterPolygon)[]

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • (InnerOuterPolygon)[] Bend zone Polygons

maxLowerDieOpeningWidth

Compute the maximum opening width of the lower bend die

wsi4.cam.bend.maxLowerDieOpeningWidth(bendLineData: BendLineData, flangeLength: BendLineFlangeLength, extraFlangeLength: number): number

Input parameters:

  • bendLineData The BendLineData

  • flangeLength The BendLineFlangeLength

  • extraFlangeLength Additional flange length to consider

Return values:

  • number The maximum opening width for the lower bend die

selectDieGroups

Select die group combinations for a single bend

wsi4.cam.bend.selectDieGroups(query: DieSelectorQuery, innerRadius: number, sheetBendingMaterialId: string|undefined): (BendDieChoice)[]

Select valid die group combinations based on options and constrained by query so the resulting radius matches the constructed innerRadius as well as possible.

Input parameters:

  • query Constraints for die group selector

  • innerRadius Constructed inner radius of the bend the die groups should be selected for

  • sheetBendingMaterialId Sheet bending material ID (if available)

Return values:

  • (BendDieChoice)[] Array of die-combinations ordered by how well they match the constructed inner radius. The array can be empty if no viable option has been found.

cam.nest2

2D nestor

addNestingToScene

Number of instances of the nesting

wsi4.cam.nest2.addNestingToScene(scene: Scene, twoDimRep: TwoDimRepresentation, nestingDescriptor: number, partStyle: SceneStyle): Scene

Note: A twoDimRep without underlying nesting is considered an error. Note: An ouf-of-bounds nestingDescriptor is considered an error.

Input parameters:

  • scene The Scene to add to

  • twoDimRep The nesting TwoDimRepresentation

  • nestingDescriptor The nesting’s descriptor

  • partStyle Part SceneStyle

Return values:

  • Scene New scene with added nesting

asyncNest

Async. 2D nesting computation

wsi4.cam.nest2.asyncNest(nestorInput: CamNestorInput, nestorConfig: CamNestorConfig): TwoDimRepOptionalFuture

Note: experimental API; interface has not been stabilized yet.

Input parameters:

  • nestorInput 2D nestor input

  • nestorConfig 2D nestor config

Return values:

  • TwoDimRepOptionalFuture TwoDimRepresentation Future

nesting

Nesting that corresponds to nestingDescriptor

wsi4.cam.nest2.nesting(twoDimRep: TwoDimRepresentation, nestingDescriptor: number): (Nest2PartInstance)[]

Note: A twoDimRep without underlying nesting is considered an error. Note: An ouf-of-bounds nestingDescriptor is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • nestingDescriptor The nesting’s descriptor

Return values:

  • (Nest2PartInstance)[] The nesting

nestingBoundingBox

Axis aligned bounding box of all nested parts

wsi4.cam.nest2.nestingBoundingBox(twoDimRep: TwoDimRepresentation, nestingDescriptor: number): Box2

Note: The bounding box does not include an outer offset covering the nesting distance. Note: A twoDimRep without underlying nesting is considered an error. Note: An ouf-of-bounds nestingDescriptor is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • nestingDescriptor The nesting’s descriptor

Return values:

  • Box2 Bounding box of all nested parts

nestingDescriptors

Descriptor for each nesting

wsi4.cam.nest2.nestingDescriptors(twoDimRep: TwoDimRepresentation): (number)[]

Note: A twoDimRep without underlying nesting is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

Return values:

  • (number)[] Descriptor for each nesting

nestingMultiplicity

Number of instances of the nesting

wsi4.cam.nest2.nestingMultiplicity(twoDimRep: TwoDimRepresentation, nestingDescriptor: number): number

Note: A twoDimRep without underlying nesting is considered an error. Note: An ouf-of-bounds nestingDescriptor is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • nestingDescriptor The nesting’s descriptor

Return values:

  • number Number of instances of the nesting

nestingTargetBoundary

Part descriptor for an input geometry

wsi4.cam.nest2.nestingTargetBoundary(twoDimRep: TwoDimRepresentation, nestingDescriptor: number): Polygon

Note: A twoDimRep without underlying nesting is considered an error. Note: An ouf-of-bounds nestingDescriptor is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • nestingDescriptor The nesting’s descriptor

Return values:

  • Polygon Target boundary of the associated nesting

partDescriptorFromIop

Part descriptor for an input geometry (if any)

wsi4.cam.nest2.partDescriptorFromIop(twoDimRep: TwoDimRepresentation, iop: InnerOuterPolygon): number|undefined

Note: A twoDimRep without underlying nesting is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • iop The InnerOuterPolygon

Return values:

  • number Part descriptor that corresponds to iop (if available)

  • undefined If iop is not part of the nesting

partDescriptorFromTwoDimRep

Part descriptor for an input geometry (if any)

wsi4.cam.nest2.partDescriptorFromTwoDimRep(nestingTwoDimRep: TwoDimRepresentation, partTwoDimRep: TwoDimRepresentation): number|undefined

Note: A twoDimRep without underlying nesting is considered an error.

Input parameters:

  • nestingTwoDimRep The nesting TwoDimRepresentation

  • partTwoDimRep The part’s TwoDimRepresentation

Return values:

  • number Part descriptor that corresponds to partTwoDimRep (if available)

  • undefined If partTwoDimRep is not part of the nesting

partDescriptors

Descriptor for each input part

wsi4.cam.nest2.partDescriptors(twoDimRep: TwoDimRepresentation): (number)[]

Note: A twoDimRep without underlying nesting is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

Return values:

  • (number)[] Descriptor for each input part

partIop

InnerOuterPolygon of the associated input part

wsi4.cam.nest2.partIop(twoDimRep: TwoDimRepresentation, partDescriptor: number): InnerOuterPolygon

Note: A twoDimRep without underlying nesting is considered an error. Note: An ouf-of-bounds partDescriptor is considered an error.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • partDescriptor The part’s descriptor

Return values:

  • InnerOuterPolygon InnerOuterPolygon of the input part

cam.nest3

Nesting in 3D related functions

asyncNest

Nest assemblies into bin

wsi4.cam.nest3.asyncNest(bin: Nest3InputBin, parts: readonly Readonly<Nest3Part>[], timeout: CamNestorTimeout): Nest3ResultFuture

All prism body assemblies are first nested via 2D and the result is nested with the remaining parts with Binpacking

Input parameters:

  • bin Bin to nest into

  • parts Parts to nest into bin

  • timeout Timeout for prism nesting

Return values:

  • Nest3ResultFuture Future to resulting boxes

cam.util

CAM related utility functions

addInnerOuterPolygonsToScene

Add all InnerOuterPolygons contained in twoDimRep to scene with style style and return the newly created Scene

wsi4.cam.util.addInnerOuterPolygonsToScene(scene: Scene, twoDimRep: TwoDimRepresentation, style: SceneStyle): Scene

Precondition: TwoDimRepresentation does correspond to a sheet metal part.

Input parameters:

  • scene The scene to add to

  • twoDimRep TwoDimRep holding the InnerOuterPolygons to add to scene

  • style Style for the InnerOuterPolygons

Return values:

  • Scene The new Scene containing scene as well as innerOuterPolygons

boundingBox2

Compute 2D bouding box of underlying geometry

wsi4.cam.util.boundingBox2(twoDimRep: TwoDimRepresentation): Box2

Pre-condition: TwoDimRepresentation does not correspond to a sheet node.

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • Box2 Volume of the 2D geometry

cuttingContourCount

Counts all cutting contours that are part of the TwoDimRepresentation

wsi4.cam.util.cuttingContourCount(twoDimRep: TwoDimRepresentation): number

Precondition: TwoDimRepresentation does correspond to a sheet metal part.

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • number Number of cutting contours

cuttingContourLength

Computes the length of all cutting contours

wsi4.cam.util.cuttingContourLength(twoDimRep: TwoDimRepresentation): number

Precondition: TwoDimRepresentation does correspond to a sheet metal part.

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • number Length of all cutting contours

extractEngravings

Get engraving data from a TwoDimRepresentation

wsi4.cam.util.extractEngravings(twoDimRep: TwoDimRepresentation): Scene

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • Scene Engraving data as scenes

extractInnerOuterPolygons

Get InnerOuterPolygons from a TwoDimRepresentation

wsi4.cam.util.extractInnerOuterPolygons(twoDimRep: TwoDimRepresentation): (InnerOuterPolygon)[]

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • (InnerOuterPolygon)[] The extracted InnerOuterPolygons

extractOverlappingAreas

Get InnerOuterPolygons representing overlapping areas from a TwoDimRepresentation

wsi4.cam.util.extractOverlappingAreas(twoDimRep: TwoDimRepresentation): (InnerOuterPolygon)[]

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • (InnerOuterPolygon)[] The extracted InnerOuterPolygons

twoDimRepFromInnerOuterPolygon

Create TwoDimRepresentation from an InnerOuterPolygon

wsi4.cam.util.twoDimRepFromInnerOuterPolygon(innerOuterPolygon: InnerOuterPolygon): TwoDimRepresentation

Input parameters:

  • innerOuterPolygon The InnerOuterPolygon

Return values:

  • TwoDimRepresentation The generated TwoDimRepresentation

twoDimRepFromLayered

Create TwoDimRepresentation from a Layered

wsi4.cam.util.twoDimRepFromLayered(layered: Layered, cuttingLayers: readonly Readonly<number>[], engravingLayers: readonly Readonly<number>[], tolerance: number, scaleFactor: number): TwoDimImportResult

Input parameters:

  • layered Layered to separate

  • cuttingLayers Layer descriptors that should be considered cutting contours

  • engravingLayers Layer descriptors that should be considered engraving contours

  • tolerance Tolerance for closed contour detection

  • scaleFactor Scale factor for creating TwoDimRepresentation

Return values:

  • TwoDimImportResult Conversion result

twoDimRepVolume

Compute 2D volume of underlying geometry

wsi4.cam.util.twoDimRepVolume(twoDimRep: TwoDimRepresentation): number

Pre-condition: TwoDimRepresentation does not correspond to a sheet node.

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • number Volume of the 2D geometry

classifier

Classification of file types

classify

Classify content

wsi4.classifier.classify(data: ArrayBuffer): InputType

This function is used to determine the content type of byte streams like input files.

Input parameters:

  • data Data to classify

Return values:

  • InputType Value of enum InputType

documentCreator

Functions for generating documents

addRow

Add row to document

wsi4.documentCreator.addRow(row: (DocumentItem)[]): void

Input parameters:

  • row Document-Items to add

Return values:

clear

Clear current document

wsi4.documentCreator.clear(): void

Return values:

generateDocX

Replace table rows and entries in input docx file by placeholders

wsi4.documentCreator.generateDocX(input: ArrayBuffer, tables: (((DocXTableCell)[])[])[]): ArrayBuffer

If a placeholder is not found in input, we do not replace it. If placeholders are inside structures not representing a table, we return empty content.

Input parameters:

  • input Docx template where to replace entries

  • tables Tables to replace (rows are replaced with same style)

Return values:

  • ArrayBuffer Docx file

pdf

Generate PDF out of underlying document

wsi4.documentCreator.pdf(): ArrayBuffer

Return values:

  • ArrayBuffer PDF file content

renderIntoHtml

Render rows into HTML

wsi4.documentCreator.renderIntoHtml(rows: ((DocumentItem)[])[], format: DocumentFormat): string

The return value combines the resulting HTML content and a container holding the resources of the HTML content. resourcePath defines the location of resources relative to the HTML. E. g. this is the location where the resulting resource map should be written to on file system.

Input parameters:

  • rows Item rows forming the document

  • format Document format properties

Return values:

  • string HTML content and resource data

renderIntoPdf

Create PDF document from rows

wsi4.documentCreator.renderIntoPdf(rows: ((DocumentItem)[])[], format: DocumentFormat): ArrayBuffer

Input parameters:

  • rows Item rows forming the document

  • format Document format properties

Return values:

  • ArrayBuffer PDF file content

geo.assembly

Query information related to assemblies

asyncRenderIntoPng

Asynchronously create PNG representation of an Assembly

wsi4.geo.assembly.asyncRenderIntoPng(assembly: Assembly, camera: Camera3, resolution: Resolution): ArrayBufferFuture

Input parameters:

  • assembly Assembly PNG file content should be created for

  • camera Defines the view to render

  • resolution Resolution of png

Return values:

  • ArrayBufferFuture Future for PNG output representing assembly

brep

Get an Assembly's underlying Brep

wsi4.geo.assembly.brep(assembly: Assembly): Brep|undefined

Input parameters:

  • assembly Object of type Assembly

Return values:

  • Brep Underlying Brep (if any)

  • undefined If there is no underlying Brep

computeDefaultCamera

Compute default camera for given assembly

wsi4.geo.assembly.computeDefaultCamera(assembly: Assembly): Camera3

Input parameters:

  • assembly The Assembly Object

Return values:

  • Camera3 Default camera

computePath

Compute path from root to target

wsi4.geo.assembly.computePath(root: Assembly, target: Assembly): AssemblyPath|undefined

Input parameters:

  • root Root Assembly

  • target Target Assembly

Return values:

  • AssemblyPath AssemblyPath from root to target

  • undefined If there is no valid path between root and target

coordinateSystem

Get an Assembly's coordinate system

wsi4.geo.assembly.coordinateSystem(assembly: Assembly): CoordinateSystem3

Input parameters:

  • assembly An Assembly

Return values:

  • CoordinateSystem3 CoordinateSystem3

createFileContent

Create file content of given type of assembly

wsi4.geo.assembly.createFileContent(assembly: Assembly, fileType: FileType): ArrayBuffer

Note: This function is deprecated. Consider using createStep() and renderIntoPng() respectively.

Input parameters:

  • assembly Assembly Object file content should be created for

  • fileType Defines file type [step, png]

Return values:

  • ArrayBuffer File-content for given fileType

createStep

Create file content of given type of assembly

wsi4.geo.assembly.createStep(assembly: Assembly): ArrayBuffer

Input parameters:

  • assembly Assembly Object file content should be created for

Return values:

  • ArrayBuffer File-content for given fileType

fromIop

Create Assembly from an InnerOuterPolygon and a defined depth

wsi4.geo.assembly.fromIop(iop: InnerOuterPolygon, depth: number, name: string): Assembly

Input parameters:

  • iop The InnerOuterPolygon

  • depth Extrude depth

  • name Name of the assembly

Return values:

  • Assembly Assembly resulting from extrusion of iop by depth

gltf

Create glTF representation of an Assembly

wsi4.geo.assembly.gltf(assembly: Assembly, dracoRepresentation: DracoRepresentation, globalVendorData: StringIndexedInterface, nodeVendorDatas: readonly Readonly<GltfNodeVendorData>[]): ArrayBuffer

This function generates a binary glTF representation (.glb) of an Assembly. The generated output requires the KHR_draco_mesh_compression and KHR_mesh_quantization glTF extensions.

Note that it is legal for dracoRepresentation to not contain Breps that occur (recursively) in assembly. An ideal call avoids this though and generates a complete DracoRepresentation well in advance to maximize parallelization.

Input parameters:

  • assembly Assembly glTF representation should be generated for

  • dracoRepresentation DracoRepresentation created for the Breps recursively contained in assembly

  • globalVendorData Globally accessible vendor-specific data to be included in the generated glTF representation

  • nodeVendorDatas Vendor-specific data to be associated with each node

Return values:

  • ArrayBuffer assembly in glTF binary (.glb) representation

name

Get an Assembly's name

wsi4.geo.assembly.name(assembly: Assembly): string

Input parameters:

  • assembly An Assembly

Return values:

  • string Name of assembly

recursiveSubAssemblies

Get an Assemblys underlying sub-Assemblys recursively

wsi4.geo.assembly.recursiveSubAssemblies(assembly: Assembly): (Assembly)[]

Input parameters:

  • assembly Object of type Assembly

Return values:

  • (Assembly)[] Array of all recursively collected Assembly-Objects

renderIntoPng

Create PNG representation of an Assembly

wsi4.geo.assembly.renderIntoPng(assembly: Assembly, camera: Camera3, resolution: Resolution): ArrayBuffer

Input parameters:

  • assembly Assembly PNG file content should be created for

  • camera Defines the view to render

  • resolution Resolution of png

Return values:

  • ArrayBuffer PNG output representing assembly

resolvePath

Resolve path relative to root

wsi4.geo.assembly.resolvePath(root: Assembly, path: AssemblyPath): Assembly|undefined

Input parameters:

  • root Root Assembly

  • path The AssemblyPath

Return values:

  • Assembly Assembly referenced by path

  • undefined If path is invalid

setCoordinateSystem

Creates new Assembly and sets the provided CoordinateSystem3d

wsi4.geo.assembly.setCoordinateSystem(assembly: Assembly, coordinateSystem: CoordinateSystem3): Assembly

Input parameters:

  • assembly The Assembly

  • coordinateSystem The CoordinateSystem3d

Return values:

  • Assembly New Assembly with updated coorinate system

setEntityColors

Set color of geometry entities.

wsi4.geo.assembly.setEntityColors(assembly: Assembly, entities: (GeometryEntity)[], color: Vector3): Assembly

The input Assembly is cloned. The changes are applied to the cloned Assembly. The input Assembly remains unchanged. Note: For now only face colors can be changed. Note: This feature is experimental and the API might be subject to change in the future.

Input parameters:

  • assembly Input Assembly

  • entities The entities

  • color The color

Return values:

  • Assembly New Assembly with updated geometry entity colors

subAssemblies

Get an Assemblys underlying sub-Assemblys

wsi4.geo.assembly.subAssemblies(assembly: Assembly): (Assembly)[]

Input parameters:

  • assembly Object of type Assembly

Return values:

  • (Assembly)[] Array of Assembly-Objects

worldCoordinateSystem

Get an Assembly's world coordinate system

wsi4.geo.assembly.worldCoordinateSystem(assembly: Assembly): CoordinateSystem3

Input parameters:

  • assembly Object of type Assembly

Return values:

  • CoordinateSystem3 World-CoordinateSystem3

geo.brep

Query information related to breps

area

Compute area for a given Brep and FaceDescriptor

wsi4.geo.brep.area(brep: Brep): number

Throws an error if fd is invalid.

Input parameters:

  • brep The Brep

Return values:

  • number Area of brep

dracoRepresentation

Generate a DracoRepresentation for a given set of Breps

wsi4.geo.brep.dracoRepresentation(breps: (Brep)[]): DracoRepresentation

Since a DracoRepresentation contains futures, it makes sense to call this as early as possible before the return value is used.

Input parameters:

  • breps The Breps for which to generate a DracoRepresentation

Return values:

  • DracoRepresentation Generated DracoRepresentation containing futures for all supplied elements of breps

entityColor

Query an entity’s color

wsi4.geo.brep.entityColor(brep: Brep, descriptor: GeometryEntityDescriptor): Vector3

Input parameters:

  • brep The root Brep

  • descriptor Descriptor of the entity

Return values:

  • Vector3 Color of the entity

faceArea

Compute area for a given Brep and FaceDescriptor

wsi4.geo.brep.faceArea(brep: Brep, fd: number): number

Throws an error if fd is invalid.

Input parameters:

  • brep The Brep

  • fd The face descriptor

Return values:

  • number Area of associated face

faces

Collects all GeometryEntitys that correspond to the Brep's faces

wsi4.geo.brep.faces(brep: Brep): (GeometryEntityDescriptor)[]

Input parameters:

  • brep The Brep

Return values:

  • (GeometryEntityDescriptor)[] GeometryEntitys corresponding to all faces of the Brep

toPolyJson

Create polygonal representation of a Brep in JSON format

wsi4.geo.brep.toPolyJson(brep: Brep): string

This function is deprecated. Using wsi4.geo.assembly.toGltf is preferred.

Input parameters:

  • brep The Brep

Return values:

  • string Polygonal representation of brep

geo.util

Geometry related utility functions

addInnerOuterPolygonsToScene

Add innerOuterPolygons to scene with style style and return the newly created Scene

wsi4.geo.util.addInnerOuterPolygonsToScene(scene: Scene, innerOuterPolygons: readonly Readonly<InnerOuterPolygon>[], style: SceneStyle): Scene

Input parameters:

  • scene The scene to add to

  • innerOuterPolygons The InnerOuterPolygons to add to scene

  • style Style of innerOuterPolygons

Return values:

  • Scene The new Scene containing scene as well as innerOuterPolygons

addLabelsToScene

Add labels to scene and return the newly created Scene

wsi4.geo.util.addLabelsToScene(scene: Scene, labels: readonly Readonly<SceneLabel>[]): Scene

Input parameters:

  • scene The scene to add to

  • labels The labels to add to scene

Return values:

  • Scene The new Scene containing scene as well as the submitted labels

addLayersToScene

Render content of selected layers into Scene

wsi4.geo.util.addLayersToScene(scene: Scene, layered: Layered, layerDescriptors: readonly Readonly<number>[], sceneStyle: SceneStyle): Scene

Input parameters:

  • scene The scene to add to

  • layered The Layered

  • layerDescriptors Descriptors of layers to render

  • sceneStyle Style applied to the Scene items

Return values:

  • Scene Scene created from submitted layers

addPolygonsToScene

Add polygons to scene with style style and return the newly created Scene

wsi4.geo.util.addPolygonsToScene(scene: Scene, polygons: readonly Readonly<Polygon>[], style: SceneStyle): Scene

Input parameters:

  • scene The scene to add to

  • polygons The Polygons to add to scene

  • style Style of polygons

Return values:

  • Scene The new Scene containing scene as well as innerOuterPolygons

addSegmentsToScene

Add segments to scene and return the newly created Scene

wsi4.geo.util.addSegmentsToScene(scene: Scene, segments: readonly Readonly<Segment>[], style: SceneStyle): Scene

Input parameters:

  • scene The scene to add to

  • segments The Segments to add to scene

  • style The style to use for segments

Return values:

  • Scene The new Scene containing scene as well as segments

applyCoordinateSystem

Interpret childCs in parentCs

wsi4.geo.util.applyCoordinateSystem(parentCs: CoordinateSystem3, childCs: CoordinateSystem3): CoordinateSystem3

Input parameters:

  • parentCs Parent CoordinateSystem

  • childCs Child CoordinateSystem

Return values:

  • CoordinateSystem3 Resulting CoordinateSystem

boundingBox2d

Get axis-aligned bounding box of a two-dimensional geometric object

wsi4.geo.util.boundingBox2d(geometricObject: Polygon|InnerOuterPolygon|Layered|readonly Readonly<InnerOuterPolygon>[]): Box2

Input parameters:

  • geometricObject Two-dimensional geometric object

Return values:

  • Box2 Axis-aligned bounding box

boundingBox3d

Get axis-aligned bounding box of three-dimensional geometric object

wsi4.geo.util.boundingBox3d(geometricObject: Assembly): Box3

Input parameters:

  • geometricObject Three-dimensional geometric object

Return values:

  • Box3 Axis-aligned bounding box

centroid

Compute centroid

wsi4.geo.util.centroid(polygon: Polygon): Point2

Input parameters:

  • polygon The Polygon

Return values:

  • Point2 Centroid of polygon

circleCenter

Compute circle radius

wsi4.geo.util.circleCenter(polygon: Polygon): Point2

An error is thrown if polygon is not a circle.

Input parameters:

  • polygon The Polygon

Return values:

  • Point2 Center of the circle

circleRadius

Compute circle radius

wsi4.geo.util.circleRadius(polygon: Polygon): number

An error is thrown if polygon is not a circle.

Input parameters:

  • polygon The Polygon

Return values:

  • number Diameter of the circle

circumference

Get circumference of geometric object

wsi4.geo.util.circumference(geometricObject: Polygon): number

Input parameters:

  • geometricObject Geometric object

Return values:

  • number Circumference of object

combineScenes

Create new scene that holds the content of all scenes

wsi4.geo.util.combineScenes(scenes: readonly Readonly<Scene>[]): Scene

Input parameters:

  • scenes The scenes to combine

Return values:

  • Scene New scene that consists of all scenes

createCoordinateSystem

Create CoordinateSystem at origin with x-axis and y-axis

wsi4.geo.util.createCoordinateSystem(origin: Vector3, xAxis: Vector3, yAxis: Vector3): CoordinateSystem3

z-axis is computed from x-axis and y-axis so the resulting coordinate system is orthonormal. x-axis and y-axis are expected to be linearly independent.

Input parameters:

  • origin CoordinateSystem origin

  • xAxis CoordinateSystem x-axis

  • yAxis CoordinateSystem y-axis

Return values:

  • CoordinateSystem3 Resulting CoordinateSystem

createIop

Create InnerOuterPolygon from a list of segments

wsi4.geo.util.createIop(segments: readonly Readonly<Segment>[]): InnerOuterPolygon|undefined

If segments is empty, the result is undefined. If at least one element of segments is invalid, the result is undefined.

Input parameters:

  • segments List of Segments

Return values:

  • InnerOuterPolygon The computed InnerOuterPolygon

  • undefined If segments does not form a valid InnerOuterPolygon

createLayered

Create Layered from binary representation

wsi4.geo.util.createLayered(inputData: ArrayBuffer): Layered|undefined

Input parameters:

  • inputData Binary input taken, for example, from reading a DXF file

Return values:

  • Layered Layered created from inputData

  • undefined In case of an error

createLayeredExtraData

Create LayeredExtraData from binary input data

wsi4.geo.util.createLayeredExtraData(inputData: ArrayBuffer): LayeredExtraData

Input parameters:

  • inputData Binary input taken, for example, from reading a GEO file

Return values:

  • LayeredExtraData The generated LayeredExtraData

createScene

Create an empty Scene

wsi4.geo.util.createScene(sceneData: SceneSceneData): Scene

Input parameters:

  • sceneData The scene wide meta data

Return values:

  • Scene Empty Scene object with given meta data

dump

Dump innerOuterPolygon

wsi4.geo.util.dump(innerOuterPolygon: InnerOuterPolygon): void

This function can only be used in debug mode

Input parameters:

  • innerOuterPolygon The InnerOuterPolygon

Return values:

extractInnerOuterPolygon

Create an InnerOuterPolygon from a Layered

wsi4.geo.util.extractInnerOuterPolygon(layered: Layered): InnerOuterPolygon|undefined

Input parameters:

  • layered Layered to turn into InnerOuterPolygon

Return values:

  • InnerOuterPolygon The InnerOuterPolygon representing layered

  • undefined In case of an error

innerPolygons

Get inner polygons of InnerOuterPolygon

wsi4.geo.util.innerPolygons(iop: InnerOuterPolygon): (Polygon)[]

Input parameters:

  • iop An InnerOuterPolygon

Return values:

  • (Polygon)[] The inner Polygons of iop

invertCoordinateSystem

Invert coordinateSystem

wsi4.geo.util.invertCoordinateSystem(coordinateSystem: CoordinateSystem3): CoordinateSystem3

Note: An error is thrown if the underlying rotation matrix is not invertible.

Input parameters:

  • coordinateSystem The CoordinateSystem

Return values:

  • CoordinateSystem3 Inverted CoordinateSystem

isCircle

Check if polygon is a circle

wsi4.geo.util.isCircle(polygon: Polygon): boolean

Input parameters:

  • polygon The Polygon

Return values:

  • boolean True if polygon is a circle

isIsomorphic

Check if two Assemblys are isomorphic

wsi4.geo.util.isIsomorphic(first: Assembly, second: Assembly): boolean

Input parameters:

  • first An Assembly

  • second An Assembly

Return values:

  • boolean True if first and second are isomorphic

isLayerEmpty

Check if layer is empty

wsi4.geo.util.isLayerEmpty(layered: Layered, layerDescriptor: number): boolean

Input parameters:

  • layered The Layered

  • layerDescriptor Descriptor of layer to check

Return values:

  • boolean True if layer belonging to layerDescriptor is empty in layered

layerBoundingBox

Get axis-aligned bounding box of a layer

wsi4.geo.util.layerBoundingBox(layered: Layered, layerDescriptor: number): Box2

Input parameters:

  • layered The Layered of layer

  • layerDescriptor Descriptor of the layer

Return values:

  • Box2 The axis-aligned bounding box fo the layer

layerDescriptorWithNumber

Get descriptor for layer with layerNumber (if available)

wsi4.geo.util.layerDescriptorWithNumber(layered: Layered, layerNumber: number): number|undefined

Input parameters:

  • layered The Layered

  • layerNumber Number of the layer

Return values:

  • number Descriptor of the layer with layerNumber (if any)

  • undefined If there is no layer with layerNumber

layerPaths

Extract paths of the respective layer

wsi4.geo.util.layerPaths(layered: Layered, layerDescriptor: number): ((Segment)[])[]

Input parameters:

  • layered Layered to turn into InnerOuterPolygon

  • layerDescriptor Descriptor of the layer

Return values:

  • ((Segment)[])[] The paths contained in the layer

layers

Get descriptors for each layer

wsi4.geo.util.layers(layered: Layered): (Layer)[]

Input parameters:

  • layered The Layered

Return values:

  • (Layer)[] Layers of layered

layersToScene

Render content of selected layers into Scene

wsi4.geo.util.layersToScene(layered: Layered, layerDescriptors: readonly Readonly<number>[], sceneStyle: SceneStyle): Scene

Input parameters:

  • layered The Layered

  • layerDescriptors Descriptors of layers to render

  • sceneStyle Style applied to the Scene items

Return values:

  • Scene Scene created from submitted layers

outerPolygon

Get outer polygon of InnerOuterPolygon

wsi4.geo.util.outerPolygon(iop: InnerOuterPolygon): Polygon

Input parameters:

  • iop An InnerOuterPolygon

Return values:

  • Polygon The outer Polygon of iop

partiallyContained

Check if a path is partially contained in a polygon

wsi4.geo.util.partiallyContained(path: (Segment)[], polygon: Polygon): boolean

A path is partially contained in a polygon if at least one segment of the path is partially contained in a polygon. A segment is partially contained in a polygon if from or to are contained or it intersects the boundary proper. The path must be a continuous set of segments.

Input parameters:

  • path A path

  • polygon A polygon

Return values:

  • boolean True if path is partially contained in polygon

pathLength

Compute length of a path

wsi4.geo.util.pathLength(path: readonly Readonly<Segment>[]): number

Input parameters:

  • path The path

Return values:

  • number Length of the path

pathsIsomorphic

Check if two sets of paths are isomorphic

wsi4.geo.util.pathsIsomorphic(lhs: ((Segment)[])[], rhs: ((Segment)[])[], tol: number): boolean

Each path must be a continuous set of segments. This function can be expensive.

Input parameters:

  • lhs The first path

  • rhs The second path

  • tol The tolerance

Return values:

  • boolean True if the paths are isomorphic

polygonSegments

Extract the Polygon’s segments

wsi4.geo.util.polygonSegments(polygon: Polygon): (Segment)[]

Input parameters:

  • polygon The Polygon

Return values:

  • (Segment)[] Segments contained in the path

renderScene

Create DXF, SVG, or GEO from a Scene

wsi4.geo.util.renderScene(scene: Scene, fileType: FileType, renderSettings: RenderSceneSettings): ArrayBuffer

The viewBox of the settings is not used for DXF or GEO as of now

Input parameters:

  • scene The Scene to render

  • fileType Target FileType

  • renderSettings Settings for rendering scene

Return values:

  • ArrayBuffer Rendered Scene

rotationMatrix

For two unit vectors u and v, this function returns a rotation matrix A such that v = A u.

wsi4.geo.util.rotationMatrix(u: Vector3, v: Vector3): Matrix3

Input parameters:

  • u Original vector

  • v Resulting vector

Return values:

  • Matrix3 RotationMatrix

sceneBoundingBox

Get axis-aligned bounding box of Scene

wsi4.geo.util.sceneBoundingBox(scene: Scene): Box2

Input parameters:

  • scene The Scene

Return values:

  • Box2 Axis-aligned bounding box

sceneSegments

Extract all scene objects that are segments

wsi4.geo.util.sceneSegments(scene: Scene): (Segment)[]

Input parameters:

  • scene The scene

Return values:

  • (Segment)[] Segments contained in the scene

sceneSegmentsWithStyle

Extract all segments of the scene that match styleFilter

wsi4.geo.util.sceneSegmentsWithStyle(scene: Scene, styleFilter: SceneStyle): (Segment)[]

Unset properties of styleFilter are not considered.

Input parameters:

  • scene The scene

  • styleFilter The filter

Return values:

  • (Segment)[] Segments contained in the scene with matching style

serializeScene

Serialize Scene

wsi4.geo.util.serializeScene(scene: Scene): ArrayBuffer

Input parameters:

  • scene The scene that should be serialized

Return values:

  • ArrayBuffer Serialization of scene

toProjectiveTransformationMatrix

Create projective transformation matrix from coordinate system

wsi4.geo.util.toProjectiveTransformationMatrix(coordinateSystem: CoordinateSystem3): Matrix4

Input parameters:

  • coordinateSystem CoordinateSystem the matrix should be computed for

Return values:

  • Matrix4 The projective transformation matrix for coordinateSystem

transformIop

Apply coordinate system to InnerOuterPolygon

wsi4.geo.util.transformIop(iop: InnerOuterPolygon, transformation: CoordinateSystem2): InnerOuterPolygon

The resulting IOP will be normalized w.r.t. the orientation of each polygon.

Input parameters:

  • iop The InnerOuterPolygon

  • transformation The transformation

Return values:

  • InnerOuterPolygon Canonized InnerOuterPolygon

tsp

Solve the Travelling Salesman Problem for a list of points

wsi4.geo.util.tsp(points: readonly Readonly<Point2>[]): (number)[]

Generate a round-trip through all supplied points with minimum travel distance. The implementation is based on an Advanced Random Insertion iterative heuristic algorithm.

Input parameters:

  • points List of Point2ds to traverse

Return values:

  • (number)[] Indices of points indicating the order in which to visit them

volume

Get volume of geometric object

wsi4.geo.util.volume(object: Polygon|InnerOuterPolygon|Assembly): number

Input parameters:

  • object Geometric object

Return values:

  • number Volume of the geometric object

graph

Read operations on the current graph

article

Get all vertices of an article

wsi4.graph.article(vertex: Vertex): (Vertex)[]

An article is a maximal component of the graph where all but the first and last vertex have exactly one source and one target..

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (Vertex)[] All Vertexs of the article that vertex belongs to

articles

Get all articles

wsi4.graph.articles(): ((Vertex)[])[]

An article is a connected component of the graph such that all its vertices have exactly one source and one target, except for the first and the last, which only have exactly one target and source respectively. This function returns an array of all articles.

Return values:

  • ((Vertex)[])[] Every vertex in every article

currentUuid

Get UUID of current graph

wsi4.graph.currentUuid(): string

UUID changes when docugraph is modified

Return values:

  • string UUID of the current graph

get

Get current graph

wsi4.graph.get(): DocumentGraph

Return values:

  • DocumentGraph The current DocumentGraph

isDeletableArticle

Check if the associated article can be deleted

wsi4.graph.isDeletableArticle(vertex: Vertex): boolean

Input parameters:

  • vertex A Vertex of the article

Return values:

  • boolean If the associated article can be deleted

nodeContext

Common node context for a set of vertices

wsi4.graph.nodeContext(vertices: (Vertex)[]): NodeContext

Input parameters:

  • vertices A set ofVertexs

Return values:

  • NodeContext The common context for vertices

reachable

Get reachable Vertexs of a given Vertex

wsi4.graph.reachable(vertex: Vertex): (Vertex)[]

A vertex w is reachable from a vertex v if there exists a path from v to w.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (Vertex)[] Vertexs of all reachable nodes of vertex's associated node

reaching

Get target Vertexs of vertex

wsi4.graph.reaching(vertex: Vertex): (Vertex)[]

Input parameters:

  • vertex ``Vertex the targets should be returned for

Return values:

  • (Vertex)[] Vertexs of all reaching-nodes of vertex's associated node

semimanufacturedSourceShare

Compute the approximate share of a base component article that has a semimanufactured source article

wsi4.graph.semimanufacturedSourceShare(vertex: Vertex): number

Calling this function for an article that has no semimanufactured source is an error.

Input parameters:

  • vertex Vertex of a base component article that has a semimanufactured source

Return values:

  • number The approximate share of the associated article

serialize

Get serialization of graph

wsi4.graph.serialize(): ArrayBuffer

Return values:

  • ArrayBuffer Serialized version of current graph

serializeSubgraph

Creates serialization of the subgraph formed by vertex’s article and all reaching vertices.

wsi4.graph.serializeSubgraph(vertex: Vertex, userData: StringIndexedInterface): ArrayBuffer

Pre-condition: vertex’s article must provide an input Assembly. The resulting subgraph’s import node’s multiplicity is set to 1. In case a semimanufactured node reaches beyond the subgraph, it will be replaced by an empty node of the same type in the serialization.

Input parameters:

  • vertex A Vertex of the graph

  • userData UserData for the resulting subgraph

Return values:

  • ArrayBuffer Serialization of the resulting subgraph

serializeUndirectedConnectedComponent

Creates serialization of the subgraph formed by the associated undirected connected component

wsi4.graph.serializeUndirectedConnectedComponent(vertex: Vertex, userData: StringIndexedInterface): ArrayBuffer

The subgraph consists of all Vertexs that are (possibly indirectly) connected with vertex.

Input parameters:

  • vertex A Vertex of the undirected connected component

  • userData UserData for the resulting sub graph

Return values:

  • ArrayBuffer Serialization of the resulting subgraph

sourceMultiplicity

Get multiplicity of sourceVertex in targetVertex

wsi4.graph.sourceMultiplicity(sourceVertex: Vertex, targetVertex: Vertex): number

If sourceVertex is not a source of targetVertex an error is thrown.

Input parameters:

  • sourceVertex A Vertex of the current graph

  • targetVertex A Vertex of the current graph

Return values:

  • number Vertexs of all reachable nodes of vertex's associated node

sourceNodeContext

Common node context for a set of vertices

wsi4.graph.sourceNodeContext(vertices: (Vertex)[]): NodeContext

Input parameters:

  • vertices A set ofVertexs

Return values:

  • NodeContext The common context for virtual sources of vertices

sources

Get source Vertexs of vertex

wsi4.graph.sources(vertex: Vertex): (Vertex)[]

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (Vertex)[] Vertexs of all source nodes of vertex's associated node

targetNodeContext

Common node context for a set of vertices

wsi4.graph.targetNodeContext(vertices: (Vertex)[]): NodeContext

Input parameters:

  • vertices A set ofVertexs

Return values:

  • NodeContext The common context for virtual targets of vertices

targets

Get target Vertexs of vertex

wsi4.graph.targets(vertex: Vertex): (Vertex)[]

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (Vertex)[] Vertexs of all target nodes of vertex's associated node

undirectedConnectedComponents

Get vertices of all underlying undirected connected components of the graph

wsi4.graph.undirectedConnectedComponents(): ((Vertex)[])[]

An undirected connected component consists of a set of all vertices that are directly or indirectly connected regardless of the direction.

Return values:

  • ((Vertex)[])[] Every vertex in every sub graph

userData

Get userData of current graph

wsi4.graph.userData(): StringIndexedInterface

Return values:

  • StringIndexedInterface UserData of current graph

vertices

Get vertices of current graph

wsi4.graph.vertices(): (Vertex)[]

Return values:

  • (Vertex)[] Vertexs the current graph consists of

graphManipulator

Functions for manipulating the current graph

appendNode

Add a node by appending to an existing node

wsi4.graphManipulator.appendNode(source: Vertex, params: NewNodeParams): Vertex

The NodeUpdate’s type must be userDefined or transform, otherwise an error is thrown. The NodeUpdate’s articleUserData has no effect. If it is impossible to append a node at the submitted position, an error is thrown.

Input parameters:

  • source Source of the new Vertex

  • params Parameters for the new node

Return values:

  • Vertex The created vertex

applyUpdates
wsi4.graphManipulator.applyUpdates(nodeUpdates: (NodeUpdate)[], articleUpdates: (ArticleUpdate)[], config: GraphUpdateConfig): void

Input parameters:

  • nodeUpdates Node update data

  • articleUpdates Article update data

  • config Config for the graph updater

Return values:

changeGraphUserData

Change user data of graph

wsi4.graphManipulator.changeGraphUserData(userData: StringIndexedInterface): void

Input parameters:

  • userData New UserData of graph

Return values:

changeImportMultiplicities

Change multiplicities of associated import nodes

wsi4.graphManipulator.changeImportMultiplicities(vertexData: readonly Readonly<VertexWithMultiplicity>[], sheetNestorTimeout: CamNestorTimeout): void

If any of the submitted nodes is not an import node, an error is thrown. If semimanufactured update info is missing for at least one associated node, an error is thrown.

Input parameters:

  • vertexData An array of data needed to change multiplicities of nodes

  • sheetNestorTimeout Timeout for sheet nestor

Return values:

changeJoining

Set Joining of associated node to joining

wsi4.graphManipulator.changeJoining(vertex: Vertex, joining: Joining): void

This function is only successful if the node has WorkStepType joining.

Input parameters:

  • vertex A Vertex of the current graph

  • joining New Joining

Return values:

changeWorkStepTypes

Change WorkStepTypes for a set of nodes

wsi4.graphManipulator.changeWorkStepTypes(vertexData: readonly Readonly<VertexWithWorkStepType>[]): WorkStepTypeChangeResult

The result needs to be finalized. Typical use-cases are conversions to and from userDefinedBase. This function does not alter the underlying DocumentGraph regardless of the success of the operation .Available WorkStepTypes need to be queried in advance. A WorkStepType that cannot be applied is considered an error. In case changing of a WorkStepType fails unexpectedly (e.g. failed boolean operations) the result will be empty.

Input parameters:

  • vertexData An array of data needed to change WorkStepTypes

Return values:

  • WorkStepTypeChangeResult result

clear

Clear underlying graph

wsi4.graphManipulator.clear(): void

Return values:

clearUndoHistory

Clear the current undo history

wsi4.graphManipulator.clearUndoHistory(): boolean

Return values:

  • boolean true iff UndoHistory was cleared

createUserDefinedBaseNode
wsi4.graphManipulator.createUserDefinedBaseNode(processId: string, nodeUserData: StringIndexedInterface, articleUserData: StringIndexedInterface): Vertex

Input parameters:

  • processId ProcessId for the new node

  • nodeUserData Node UserData

  • articleUserData Article UserData

Return values:

  • Vertex Vertex of the new node

deleteArticles

Delete articles associated with vertices

wsi4.graphManipulator.deleteArticles(vertices: readonly Readonly<Vertex>[], sheetNestorTimeout: CamNestorTimeout): boolean

If deletion of an article would result in an invalid graph, deletion is aborted.

Input parameters:

  • vertices An array of Vertex of the current graph

  • sheetNestorTimeout Timeout for sheet nestor

Return values:

  • boolean True if all articles have been deleted

deleteNodes

Delete nodes associated with vertices

wsi4.graphManipulator.deleteNodes(vertices: readonly Readonly<Vertex>[]): void

Only nodes of type userDefined and transform can be deleted individually. All other non-semimanufactured nodes can only be removed by removing the entire article.

Input parameters:

  • vertices An array of Vertex of the current graph

Return values:

maxHistorySize

Query the current undo history limit

wsi4.graphManipulator.maxHistorySize(): number

Return values:

  • number Upper limit for redo/undo history

merge

Merge the submitted graph into the current graph

wsi4.graphManipulator.merge(graph: DocumentGraph): void

Input parameters:

  • graph The Graph to merge

Return values:

prependNode

Add a node by prepending to an existing node

wsi4.graphManipulator.prependNode(target: Vertex, params: NewNodeParams): Vertex

The NodeUpdate’s type must be userDefined or transform, otherwise an error is thrown. If it is impossible to append a node at the submitted position, an error is thrown.

Input parameters:

  • target Target of the new Vertex

  • params Parameters for the new node

Return values:

  • Vertex The created vertex

redo

Redo the last manipulation of graph

wsi4.graphManipulator.redo(): boolean

Return values:

  • boolean true if redo was successful

set

Replace current graph with submitted graph

wsi4.graphManipulator.set(graph: DocumentGraph): void

Input parameters:

  • graph The Graph to set

Return values:

setCommands

Set transform commands

wsi4.graphManipulator.setCommands(vertex: Vertex, commands: readonly Readonly<CamCommand>[]): void

Note: Associated node must be of type transform. Note: Existing commands are overwritten.

Input parameters:

  • vertex A Vertex of the current graph

  • commands Transform commands

Return values:

setMaxHistorySize

Set an upper limit for the undo history. 0 = no limit

wsi4.graphManipulator.setMaxHistorySize(maxSize: number): boolean

Input parameters:

  • maxSize Max size of undo history

Return values:

  • boolean true if successful

undo

Undo the last manipulation of graph

wsi4.graphManipulator.undo(): boolean

Return values:

  • boolean true if undo was successful

i18n

Locale dependent utility functions

currencyPerKgToString

Convert value from currency / kg to current unit system and get string

wsi4.i18n.currencyPerKgToString(value: number, digits: number): string

Input parameters:

  • value The value (in currency / kg) to convert

  • digits Number of decimal digits to use

Return values:

  • string value converted to type string in current unit system

kgToString

Convert value from kg to current unit system and get string

wsi4.i18n.kgToString(value: number, digits: number): string

Input parameters:

  • value The value (in kg) to convert

  • digits Number of decimal digits to use

Return values:

  • string value converted to type string in current unit system

mmSquaredToStringAdjusted

Convert value from mm² to current unit system (and adjust if needed to m² or ft²) and get string

wsi4.i18n.mmSquaredToStringAdjusted(value: number, digits: number): string

Input parameters:

  • value The value (in mm²) to convert

  • digits Number of decimal digits to use

Return values:

  • string value converted to type string in current unit system

mmToString

Convert value from mm to current unit system and get string

wsi4.i18n.mmToString(value: number, digits: number): string

Input parameters:

  • value The value (in mm) to convert

  • digits Number of decimal digits to use

Return values:

  • string value converted to type string in current unit system

quotationDocxTemplate

Get content of quotation docx matching current locale

wsi4.i18n.quotationDocxTemplate(): ArrayBuffer|undefined

Note: Default locale is en_EN

Return values:

  • ArrayBuffer Content of quotation docx matching current locale

  • undefined In case of an error

toCurrencyString

Convert number to string with currency symbol

wsi4.i18n.toCurrencyString(value: number, digits: number): string

Input parameters:

  • value The value to convert

  • digits Number of digits to use

Return values:

  • string String representing value with digits decimal places after decimal point and currency symbol based on locale

toNumberString

Convert number to string

wsi4.i18n.toNumberString(value: number, digits: number): string

Input parameters:

  • value The value to convert

  • digits Number of decimal digits to use

Return values:

  • string value converted to type string

translate

Get translation of key

wsi4.i18n.translate(key: string): string

Input parameters:

  • key Key to look up in translation table

Return values:

  • string String representing translation for key if lookup is successful; key itself if lookup is unsuccessful

translateProcessType

Get translation of key

wsi4.i18n.translateProcessType(key: ProcessType): string

Input parameters:

  • key Key to look up in translation table

Return values:

  • string String representing translation for key

internal

articleCostAnalysisDocument

Internal API

wsi4.internal.articleCostAnalysisDocument(vertex: Vertex): ((DocumentItem)[])[]

Input parameters:

  • vertex Any article vertex

Return values:

  • ((DocumentItem)[])[] Article cost analysis document

defaultNodeUserData

Internal API; should not be used in third-party scripts.

wsi4.internal.defaultNodeUserData(key: NodeUserDataKey): number|string|boolean|BendLineEngravingMode|(number)[]|(string)[]|(Attachment)[]|(SheetTappingDataEntry)[]|(UserDefinedScalePrice)[]

Input parameters:

  • key NodeUserData key

Return values:

  • number

  • string

  • boolean

  • BendLineEngravingMode

  • (number)[]

  • (string)[]

  • (Attachment)[]

  • (SheetTappingDataEntry)[]

  • (UserDefinedScalePrice)[]

dummyCalcUserInputs

Internal API; can only be used by development accounts

wsi4.internal.dummyCalcUserInputs(json: string): (AnyCalcUserInput)[]

Input parameters:

  • json Calc config json

Return values:

  • (AnyCalcUserInput)[] The default user input variables belonging to the calc config

emitGuiData

Internal API; should not be used in third-party scripts.

wsi4.internal.emitGuiData(guiData: PrivateGuiData): void

Input parameters:

  • guiData Gui data

Return values:

isCompatibleToNodeUserDatum

Internal API; should not be used in third-party scripts.

wsi4.internal.isCompatibleToNodeUserDatum(key: NodeUserDataKey, wst: WorkStepType, pt: ProcessType, isInitial: boolean): boolean

Input parameters:

  • key Key of a node UserData entry

  • wst The WorkStepType

  • pt The ProcessType

  • isInitial If the associated node is initial

Return values:

  • boolean

projectCostAnalysisDocument

Internal API

wsi4.internal.projectCostAnalysisDocument(): ((DocumentItem)[])[]

Return values:

  • ((DocumentItem)[])[] Project cost analysis document

settingsTableValueToString

Internal API; should not be used in third-party scripts.

wsi4.internal.settingsTableValueToString(value: AnyErpStandardInterfaceConfig): string

Input parameters:

  • value The value to stringify

Return values:

  • string

io.fs

Filesystem based input and output

baseName

Extract base name from file path

wsi4.io.fs.baseName(path: string): string

Example: path = "/tmp/file.step.xz"; baseName = "file"

Input parameters:

  • path The input file path

Return values:

  • string The base name

canonicalFilePath

Canonize a file path

wsi4.io.fs.canonicalFilePath(path: string): string

Note: The resulting path does include the path’s file name. Note: If the file path does not exist, the resulting path is empty.

Input parameters:

  • path The path to canonize

Return values:

  • string Canonical version of path

canonicalPath

Canonize a file path

wsi4.io.fs.canonicalPath(path: string): string

Note: The resulting path does not include the path’s file name. Note: If the file path does not exist, the resulting path is empty.

Input parameters:

  • path The path to canonize

Return values:

  • string Canonical version of path

cleanAbsoluteDirPath

Remove illegal characters from path

wsi4.io.fs.cleanAbsoluteDirPath(path: string, replacement: string): string

Deprecated. Consider using the ts_lib counterpart in util.ts.

Input parameters:

  • path Path that sould be cleaned

  • replacement Replacement for illegal characters

Return values:

  • string path where all illegal characters have been replaced by replacement

cleanFileName

Replace illegal characters from name by replacement

wsi4.io.fs.cleanFileName(name: string, replacement: string): string

Deprecated. Consider using the ts_lib counterpart in util.ts.

Input parameters:

  • name Name that should be cleaned

  • replacement Replacement for illegal characters

Return values:

  • string name where all illegal characters have been replaced by replacement

cleanRelativeDirPath

Remove illegal characters from path

wsi4.io.fs.cleanRelativeDirPath(path: string, replacement: string): string

Deprecated. Consider using the ts_lib counterpart in util.ts.

Input parameters:

  • path Path that should be cleaned

  • replacement Replacement for illegal characters

Return values:

  • string path where all illegal characters have been replaced by replacement

completeBaseName

Extract complete base name from file path

wsi4.io.fs.completeBaseName(path: string): string

Example: path = "/tmp/file.step.xz"; completeBaseName = "file.step"

Input parameters:

  • path The input file path

Return values:

  • string The complete base name

createTmpDir

Create temporary directory

wsi4.io.fs.createTmpDir(): string

Return values:

  • string Path to temporary directory

exists

Check, if path already exists

wsi4.io.fs.exists(path: string): boolean

Input parameters:

  • path Path of directory

Return values:

  • boolean True if path already exists

mkpath

Create missing sub-directories in path

wsi4.io.fs.mkpath(path: string): boolean

Note: Path separator is /

Input parameters:

  • path Path to create

Return values:

  • boolean True if successful

readFile

Read file from file system

wsi4.io.fs.readFile(path: string): ArrayBuffer|undefined

Note: Path separator is /

Input parameters:

  • path Path to file that should be read

Return values:

  • ArrayBuffer Content of read file

  • undefined In case of an error

rm

Remove path

wsi4.io.fs.rm(path: string): boolean

Description: Note: If path is a directory it will be removed recursively.

Note: Path separator is /

Input parameters:

  • path The path to remove

Return values:

  • boolean True if path does not exists (any more)

Create symboblic link

wsi4.io.fs.symlink(targetPath: string, linkPath: string): boolean

Note: Path separator is /

Input parameters:

  • targetPath Path of the file the link should point to

  • linkPath Path to link that should be created

Return values:

  • boolean True if successful

writeFile

Write file to file system

wsi4.io.fs.writeFile(path: string, content: ArrayBuffer): boolean

Note: Directory the file should be written to must exist.

Note: Path separator is /

Input parameters:

  • path Path of file to write

  • content File content

Return values:

  • boolean True if successful

writeFileSync

Write file to file system sync safe

wsi4.io.fs.writeFileSync(path: string, content: ArrayBuffer): boolean

The file is first written to filename.tmp and the moved.

Note: Directory the file should be written to must exist.

Note: Path separator is /

Input parameters:

  • path Path of file to write

  • content File content

Return values:

  • boolean True if successful

io.net.http

Network access via HTTP

del

HTTP DELETE request

wsi4.io.net.http.del(url: string): HttpReply

Input parameters:

  • url Request-URL

Return values:

  • HttpReply Result of the request

get

HTTP GET request

wsi4.io.net.http.get(url: string): HttpReply

Input parameters:

  • url Request-URL

Return values:

  • HttpReply Result of the request

post

HTTP POST request

wsi4.io.net.http.post(url: string, mimeType: string, data: ArrayBuffer): HttpReply

Input parameters:

  • url Request-URL

  • mimeType Request-Body MIME type

  • data Request body

Return values:

  • HttpReply Result of the request

put

HTTP PUT request

wsi4.io.net.http.put(url: string, mimeType: string, data: ArrayBuffer): HttpReply

Input parameters:

  • url Request-URL

  • mimeType Request-Body MIME type

  • data Request body

Return values:

  • HttpReply Result of the request

io.settings

Access to persistent storage

read

Read value from persistent settings storage

wsi4.io.settings.read(key: string): string|undefined

key is case-insensitive

Input parameters:

  • key

Return values:

  • string The value for given key if successful

  • undefined Else

remove

Remove value from persistent settings storage

wsi4.io.settings.remove(key: string): void

key is case-insensitive

Input parameters:

  • key Key for the value in persistent settings storage

Return values:

write

Write value to persistent settings storage.

wsi4.io.settings.write(key: string, value: string): void

key is case-insensitive

Input parameters:

  • key Key for the value in persistent settings storage

  • value Value that should be written

Return values:

locale

Locale utility functions

decimalPoint

Get character of decimal point in respective locale

wsi4.locale.decimalPoint(locale: string): string

Input parameters:

  • locale Locale to use

Return values:

  • string Get character of decimal point in respective locale

floatToString

Convert number to string in the respective locale

wsi4.locale.floatToString(value: number, locale: string, precision: number): string

Input parameters:

  • value The value to convert

  • locale Locale to use

  • precision Precision to use

Return values:

  • string value converted to type string in the respective locale

system

Get system locale

wsi4.locale.system(): string

Return values:

  • string System locale

node

Read operations for a node in the graph

allowedProcessIds

Deprecated. Will be removed in a future version.

wsi4.node.allowedProcessIds(vertex: Vertex): (string)[]

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (string)[] strings representing all process identifiers the node associated with vertex can be set to

articleUserData

Get UserData for the associated article

wsi4.node.articleUserData(vertex: Vertex): StringIndexedInterface

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • StringIndexedInterface UserData for associated article

articleUuid

Get UUID for the associated article

wsi4.node.articleUuid(vertex: Vertex): string

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • string UUID for associated article

assembly

Get the Assembly for a Vertex

wsi4.node.assembly(vertex: Vertex): Assembly|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • Assembly The Assembly of the node associated with vertex

  • undefined In case the node associated with vertex does not provide an Assembly

asyncBendMeasurementScenes

Get scenes displaying the technical drawings of bends for a Vertex asynchronously

wsi4.node.asyncBendMeasurementScenes(vertex: Vertex, fontSize: number, resolution: Resolution): MeasurementScenesFuture

Input parameters:

  • vertex A Vertex of the current graph

  • fontSize Size of measurements in px

  • resolution Resolution of techincal drawings

Return values:

  • MeasurementScenesFuture Future for an array of all possible technical drawings for the bends of the node associated with vertex

asyncProfileShadow

If part is a prism body (all bends are parallel) get the shadow of the profile

wsi4.node.asyncProfileShadow(vertex: Vertex): ProfileShadowFuture

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • ProfileShadowFuture Future that returns the profile shadow (if any)

asyncScene

Async. computation of the 2D Scene

wsi4.node.asyncScene(vertex: Vertex, config: SceneConfig): SceneFuture

Input parameters:

  • vertex A Vertex of the graph

  • config Config for the Scene creation

Return values:

  • SceneFuture Future for the resulting Scene

bendCorrection

Return true, if correction of bends of part is done

wsi4.node.bendCorrection(vertex: Vertex): boolean|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean Boolean indicating automatic correction of bends if vertex is associated with a node that is of WorkStepType sheetBending

  • undefined If vertex is associated with a node which is not of WorkStepType sheetBending

bendLineSegmentsMap

Segments for each bend line (if any)

wsi4.node.bendLineSegmentsMap(vertex: Vertex): (BendLineSegmentsMapEntry)[]

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (BendLineSegmentsMapEntry)[] Maps a BendDescriptor to an Array of segments

bendMeasurementScenes

Get scenes displaying the technical drawings of bends for a Vertex

wsi4.node.bendMeasurementScenes(vertex: Vertex, fontSize: number, resolution: Resolution): (MeasurementScene)[]

Input parameters:

  • vertex A Vertex of the current graph

  • fontSize Size of measurements in px

  • resolution Resolution of techincal drawings

Return values:

  • (MeasurementScene)[] An array of all possible technical drawings for the bends of the node associated with vertex

calcUserInputs

Query user-defined inputs for user-input based variables

wsi4.node.calcUserInputs(vertex: Vertex): (AnyCalcUserInput)[]

Input parameters:

  • vertex A Vertex

Return values:

  • (AnyCalcUserInput)[] Configurations for user-input based variables

checkWorkStepAvailability

Check if a node can be set to certain WorkStepTypes

wsi4.node.checkWorkStepAvailability(vertex: Vertex, workStepTypes: WorkStepTypes): WorkStepTypes

Input parameters:

  • vertex A Vertex of the current graph

  • workStepTypes WorkStepTypes to check; if empty, all WorkStepTypes are checked

Return values:

  • WorkStepTypes An array of all WorkStepTypes that the node associated with vertex can be changed to

coatingArea

Coating area of a node

wsi4.node.coatingArea(vertex: Vertex): number

Only meaningful for nodes of ProcessType coating.

Input parameters:

  • vertex A Vertex

Return values:

  • number Net mass for the associated node

commands

Get commands for a node of WorkStepType transform

wsi4.node.commands(vertex: Vertex): (CamCommand)[]

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (CamCommand)[] Commands

computeBendLineData

Get BendLineDatas for the node associated to a Vertex

wsi4.node.computeBendLineData(vertex: Vertex): (BendLineData)[]|undefined

BendLineData is available for both sheetBending nodes and sheetCoutting source nodes of sheetBending nodes.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (BendLineData)[] One BendLineData for each bend line present

  • undefined In case bend line data are not available for the assocated node

computeBendLineFlangeLengths

Get BendLineFlangeLength for the node associated to a vertex

wsi4.node.computeBendLineFlangeLengths(vertex: Vertex): (BendLineFlangeLength)[]|undefined

This function can be used to check how long the flanges of each bend are. If they are too short, specific die choices can be eliminated to make sure parts can actually be manufactured.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (BendLineFlangeLength)[] One BendLineFlangLength for each bend line present

  • undefined In case the node associated with vertex is not of WorkStepType sheetBending

deducedData

Get deduced data for a Vertex

wsi4.node.deducedData(vertex: Vertex): StringIndexedInterface

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • StringIndexedInterface Deduced data for associated node

defaultCamera

Compute default camera for given node

wsi4.node.defaultCamera(vertex: Vertex): Camera3|undefined

Note: This function compute camera for initial node of article if possible.

Input parameters:

  • vertex A Vertex

Return values:

  • Camera3 Default camera for the associated node

  • undefined In case of inconsistent node

dieChoiceAlternatives

For each bend a list of BendDieChoices sorted according how well the die combination fits the constructed bend is computed

wsi4.node.dieChoiceAlternatives(vertex: Vertex, sheetMaterialIdOverride: string|undefined): (DieChoiceAlternativesEntry)[]

By default the node’s underlying sheetMaterialId is used (if any). Precondition: Associated node is of type sheetCutting.

Input parameters:

  • vertex A Vertex of the graph

  • sheetMaterialIdOverride Override for sheetMaterialId

Return values:

  • (DieChoiceAlternativesEntry)[] BendDieChoice alternatives for each bend

dieChoiceMap

Return the DieChoiceMap of a vertex

wsi4.node.dieChoiceMap(vertex: Vertex): (DieChoiceMapEntry)[]|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (DieChoiceMapEntry)[] A vector of DieChoiceMapEntry, if vertex is associated with a node of WorkStepType sheetBending

  • undefined If vertex is not associated with a node whose WorkStepType is sheetBending

dump

Not part of the official API

wsi4.node.dump(vertex: Vertex): string

Calling this function in a non-debug-build will throw an error.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • string The dumped GraphNode

effectiveSheetMaterialId

The effective sheet material ID

wsi4.node.effectiveSheetMaterialId(vertex: Vertex): string|undefined

Input parameters:

  • vertex Sheet related Vertex

Return values:

  • string The effective sheetMaterialId

  • undefined If the effective sheetMaterialId is undefined

findAssociatedSheet

Find a database sheet that matches the underlying nesting

wsi4.node.findAssociatedSheet(vertex: Vertex): Sheet|undefined

Precondition: Node is of type sheet. The lookup considers the nesting, sheetMaterial, sheet stock (if any), sheet priority (if any), and sheet filters (if any).

Input parameters:

  • vertex Vertex of a sheet node

Return values:

  • Sheet True if associated node is based on 2D input

  • undefined If there is no matching sheet in the database

findAssociatedTube

Find a database tube that matches the underlying nesting

wsi4.node.findAssociatedTube(vertex: Vertex): Tube|undefined

Precondition: Node is of type tube. The lookup considers the nesting, tubeMaterial, tubeSpecification, tube stock (if any), and clamping length (if any).

Input parameters:

  • vertex Vertex of a tube node

Return values:

  • Tube True if associated node is based on 2D input

  • undefined If there is no matching tube in the database

flipSide

Return true, if flip side of part is used

wsi4.node.flipSide(vertex: Vertex): boolean|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean Boolean indicating flip side usage if vertex is associated with a node that is initial

  • undefined If vertex is associated with a node which is not initial

forcedProcessType

Check, if ProcessType of a Vertex was forced

wsi4.node.forcedProcessType(vertex: Vertex): boolean

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean True, if ProcessType of vertex was forced

hasProblematicGeometries

Check if there are problematic geometries in the underlying input geometry

wsi4.node.hasProblematicGeometries(vertex: Vertex): boolean

Note: Experimental API. Might be subject to change in a future version.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean True if there are problematic geometries

hasTwoDimInput

Check if a node is based on 2D input

wsi4.node.hasTwoDimInput(vertex: Vertex): boolean

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean True if associated node is based on 2D input

importMultiplicity

Get multiplicity for a Vertex

wsi4.node.importMultiplicity(vertex: Vertex): number|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • number Multiplicity of an import node

  • undefined In case associated node is no import node

importUuid

Internal UUID associated with terminal nodes

wsi4.node.importUuid(vertex: Vertex): string|undefined

This datum should only be utilized by internal code and not be part of any public interface.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • string The import UUID

  • undefined For non-import nodes

inputAssembly

Get the input-Assembly for a Vertex

wsi4.node.inputAssembly(vertex: Vertex): Assembly|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • Assembly The input-Assembly of the node associated with vertex

  • undefined In case the associated node does not provide an input-Assembly

inputFilePath

Path of the associated input file for an import node

wsi4.node.inputFilePath(importVertex: Vertex): string|undefined

There is no guarantee for this datum to be unique or non-empty in any context.

Input parameters:

  • importVertex An import Vertex of the current graph

Return values:

  • string Path of the associated input file (if any)

  • undefined For non-import nodes

isImport

Check if vertex is associated with the import assembly

wsi4.node.isImport(vertex: Vertex): boolean

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean True, if vertex is an import node

isInitial

Check if a Vertex is initial

wsi4.node.isInitial(vertex: Vertex): boolean

Being initial for a Vertex means that it is the right-most automatically generated Vertex whose inputAssembly contains a single Brep.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • boolean If the node associated with vertex is initial

issues
wsi4.node.issues(vertex: Vertex): (AnyNodeIssue)[]

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (AnyNodeIssue)[] List of issues

joining

Return the joining sequence of joining node

wsi4.node.joining(vertex: Vertex): Joining|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • Joining A Joining, if vertex is associated with a node of WorkStepType joining

  • undefined If vertex is not associated with a node whose WorkStepType is joining

layered

Associated node’s layered (if any)

wsi4.node.layered(vertex: Vertex): Layered|undefined

Input parameters:

  • vertex A profile Vertex of the current graph

Return values:

  • Layered The layered (if any)

  • undefined In case there is no layered for the associated node

mass

Net mass of a node

wsi4.node.mass(vertex: Vertex): number|undefined

The net mass entails the mass derived from the actual volume and the associated density. The net mass does not entail any scrap. For semimanufactureds the net mass is defined as the sum of the net masses of all targets. In case of any component with unknown density the result is undefined.

Input parameters:

  • vertex A Vertex

Return values:

  • number Net mass for the associated node

  • undefined In case of an unknown density

materialName

Material name e.g. for GUI visualization

wsi4.node.materialName(vertex: Vertex): string|undefined

This function tries to find a meaningful name for the associated material (if any). For joinings the result is always undefined. For sheet metal parts the name is computed via sheet spec (1st prio) or the underlying sheetMaterialId (2nd prio). For tube parts the name is computed via the underlying tubeMaterialId (if any). For purchase parts the name is computed via the underlying purchasePartMaterialId (if any).

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • string A name for the underlying material

  • undefined If there is no name

multiplicity

Get multiplicity of a Vertex

wsi4.node.multiplicity(vertex: Vertex): number

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • number Multiplicity for the node associated with vertex

nodeId

Get the GraphNodeId for a Vertex

wsi4.node.nodeId(vertex: Vertex): GraphNodeId

The GraphNodeId of a Vertex is its unique permanent identifier. Whenever a document graph is recomputed, its changed nodes have unique new GraphNodeIds.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • GraphNodeId GraphNodeId for given vertex

packagingContainerWeights

Return the containers used in a packaging node

wsi4.node.packagingContainerWeights(vertex: Vertex): (number)[]|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • (number)[] An array listing the weights of all containers produced if vertex is associated with a node of WorkStepType packaging

  • undefined If vertex is not associated with a node whose WorkStepType is packaging

part

Associated node’s layered (if any)

wsi4.node.part(vertex: Vertex): undefined|CadPart

Input parameters:

  • vertex A profile Vertex of the current graph

Return values:

  • undefined If there is no Part for the associated node

  • CadPart The Part (if any)

problematicGeometryAssembly

Computes an Assembly where problematic geometries are highlighted

wsi4.node.problematicGeometryAssembly(vertex: Vertex): Assembly

Precondition: Associated node has problematic geometries.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • Assembly Assembly where problematic geometries are highlighted

processId

Get process id for a Vertex

wsi4.node.processId(vertex: Vertex): string

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • string Process identifier for the node with vertex

processType

Get process type for a Vertex

wsi4.node.processType(vertex: Vertex): ProcessType

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • ProcessType Process type for associated node

profileExtrusionLength

Extrusion length of a tube cutting node

wsi4.node.profileExtrusionLength(vertex: Vertex): number

Pre-condition: An extrusion length must be defined for the associated graph node. As of now this only holds for nodes of type tubeCutting. In this context 'profile' is considered the 2D cross section of the tube. Throws an error if called for a vertex without associated extrusion length.

Input parameters:

  • vertex A tube cutting Vertex of the current graph

Return values:

  • number Extrusion length of the associated profile geometry

rootId

Get the RootId of a Vertex

wsi4.node.rootId(vertex: Vertex): GraphNodeRootId

The RootId of a node is an id that persists as long as the node exists. Invalidation of a RootId happens only if the vertex is deleted or changing the attributes of a target vertex leads to recreation of its sources.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • GraphNodeRootId root id for given vertex.

semimanufacturedCount

Number of affected semimanufactureds regardless of the individual consumption

wsi4.node.semimanufacturedCount(semimanufacturedVertex: Vertex): number|undefined

Note that this is potentially different from both gross and net consumption. For sheet nodes (actual nesting) this returns the number of sum of the quantities of all nestings (natural number). For sheet nodes (virtual nesting) this returns the virtual number of sheets required (rational number). For tube nodes this returns the number of affected tubes.

Input parameters:

  • semimanufacturedVertex Vertex of a semimanufactured node

Return values:

  • number Number of affected semimanufactureds

  • undefined If the multiplicity cannot be computed

semimanufacturedGrossConsumption

Gross consumption of a semimanufactured [piece]

wsi4.node.semimanufacturedGrossConsumption(semimanufacturedVertex: Vertex): number|undefined

Calling this function for a non-semimanufactured (i.e. neither sheet nor tube) is an error. The result cannot be computed e.g. if there is no associated table entry for a matching semimanufactured.

Input parameters:

  • semimanufacturedVertex Vertex of a semimanufactured node

Return values:

  • number Gross consumption

  • undefined If the consumption cannot be computed

semimanufacturedNetConsumption

Net consumption of a semimanufactured [piece]

wsi4.node.semimanufacturedNetConsumption(semimanufacturedVertex: Vertex): number|undefined

Calling this function for a non-semimanufactured (i.e. neither sheet nor tube) is an error. The result cannot be computed e.g. if there is no associated table entry for a matching semimanufactured.

Input parameters:

  • semimanufacturedVertex Vertex of a semimanufactured node

Return values:

  • number Net consumption

  • undefined If the consumption cannot be computed

sheetCuttingGrossDimensions2

2D bounding box dimensions for a sheetCutting node considering possible rotations

wsi4.node.sheetCuttingGrossDimensions2(sheetCuttingVertex: Vertex): (Vector2)[]

The resulting dimensions entail the nesting distance (once). The resulting dimensions can be used to query matching sheets.

Input parameters:

  • sheetCuttingVertex Vertex of a sheetCutting node

Return values:

  • (Vector2)[] The dimensions for possible rotations

sheetCuttingNestingMode

Nesting mode override for a sheetCutting node

wsi4.node.sheetCuttingNestingMode(sheetCuttingVertex: Vertex): NestingMode|undefined

By default this value is undefined and the default values applies. Calling this function for a non-sheetCutting node is an error.

Input parameters:

  • sheetCuttingVertex Vertex of a sheetCutting node

Return values:

  • NestingMode The current nesting mode (if any)

  • undefined Otherwise

sheetThickness

Get thickness of sheet for a Vertex

wsi4.node.sheetThickness(vertex: Vertex): number|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • number Sheet thickness for associated node

  • undefined In case the associated node does not provide a sheet thickness

tubeNestingResult

Tube nesting of associated node (if any)

wsi4.node.tubeNestingResult(vertex: Vertex): CamTubeNestingResult|undefined

Input parameters:

  • vertex A tube Vertex of the current graph

Return values:

  • CamTubeNestingResult A tube nesting result

  • undefined In case no nesting result is available

tubeProfileGeometry

Return the associated node’s tube profile geometry

wsi4.node.tubeProfileGeometry(vertex: Vertex): TubeProfileGeometry|undefined

Calling this function is only meaningful for tube-related nodes.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • TubeProfileGeometry The associated tube profile geometry (if any)

  • undefined If no tube profile geometry is available

twoDimProjection

Project feature onto the current 2D representation

wsi4.node.twoDimProjection(vertex: Vertex, featureDescriptor: number): (Segment)[]

Currently this is limited to throughHoles.

Input parameters:

  • vertex A profile Vertex of the current graph

  • featureDescriptor A feature descriptor of part

Return values:

  • (Segment)[] The projection of the feature

twoDimRep

Get TwoDimRepresentation for a Vertex

wsi4.node.twoDimRep(vertex: Vertex): TwoDimRepresentation|undefined

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • TwoDimRepresentation The TwoDimRepresentation of the node associated with vertex

  • undefined In case the node associated with vertex does not provide a TwoDimRepresentation

twoDimRepTransformation

The returned CoordinateSystem3d places the TwoDimRep's 2d coordinates into the Brep's coordinate system

wsi4.node.twoDimRepTransformation(vertex: Vertex): CoordinateSystem3|undefined

Note: The transformation is relative to the underlying Brep. Depending on the use-case additional Assembly-related transformations need to be applied.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • CoordinateSystem3 The transformation (if any)

  • undefined If no transformation is available

userData

Get UserData for a Vertex

wsi4.node.userData(vertex: Vertex): StringIndexedInterface

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • StringIndexedInterface UserData for associated node

userImportId

Get the user-defined import ID for an import node

wsi4.node.userImportId(vertex: Vertex): string|undefined

There is no guarantee for this datum to be unique or non-empty in any context. This datum should not be utilized by internal code at all besides exporting in e.g. the ERP interface.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • string The user-defined import ID

  • undefined If there is no importId

vertexFromNodeId

Get Vertex corresponding to a GraphNodeId

wsi4.node.vertexFromNodeId(nodeId: GraphNodeId): Vertex|undefined

Input parameters:

  • nodeId A number

Return values:

  • Vertex Vertex with given nodeId

  • undefined If no Vertex with given nodeId exists

vertexFromRootId

Get Vertex corresponding to a RootId

wsi4.node.vertexFromRootId(rootId: GraphNodeRootId): Vertex|undefined

Input parameters:

  • rootId A number

Return values:

  • Vertex Vertex with given rootId

  • undefined If no Vertex with given rootId exists

volume

Net volume of the 3D geometry for a node

wsi4.node.volume(vertex: Vertex): number

In general the volume can be different from the associated Brep’s volume. In case of tubeCutting the net volume corresponds to a 3D geometry with corrected radii. In case of sheet the net volume corresponds to the sum of the net volumes of all target nodes (incl. multiplicity). In case of tube the net volume corresponds to the sum of the net volumes of all target nodes (incl. multiplicity). In case of userDefinedBase the net volume is empty if there is no associated assembly (i.e. if it is manually created).

Input parameters:

  • vertex A Vertex

Return values:

  • number Net volume of the tube

workStepType

Get WorkStepType for a Vertex

wsi4.node.workStepType(vertex: Vertex): WorkStepType

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • WorkStepType WorkStepType for the node associated with vertex

sharedData

Read / write data that is submitted to script hooks

erpExportConfig

ERP export config that has passed via JSON AppInput (if any)

wsi4.sharedData.erpExportConfig(): undefined|AnyErpStandardExportConfig

Return values:

  • undefined If JSON AppInput has not been set or erpExportConfig is undefined

  • AnyErpStandardExportConfig ERP export config

inputFileEntries

InputFileEntries that have been passed via JSON AppInput (if any)

wsi4.sharedData.inputFileEntries(): undefined|(InputFileEntry)[]

Return values:

  • undefined If JSON AppInput has not been set or inputFileEntries is undefined

  • (InputFileEntry)[] Input file entries

positionalArguments

Return positional arguments

wsi4.sharedData.positionalArguments(): (string)[]

Return values:

  • (string)[] Strings submitted as positional command line arguments

projectUserData

User-defined project data that have been passed via JSON AppInput (if any)

wsi4.sharedData.projectUserData(): undefined|StringIndexedInterface

Return values:

  • undefined If JSON AppInput has not been set or projectUserData is undefined

  • StringIndexedInterface Project user data

read

Return current data object

wsi4.sharedData.read(): StringIndexedInterface

Return values:

  • StringIndexedInterface Shared data Object

scriptArgs

Return values submitted via --script-arg command-line option

wsi4.sharedData.scriptArgs(): (string)[]

Return values:

  • (string)[] Strings submitted via --script-arg command-line option

write

Write shared data Object

wsi4.sharedData.write(data: StringIndexedInterface): void

Input parameters:

  • data An Object

Return values:

sl.graph

Stateless graph API

article
wsi4.sl.graph.article(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (SlVertex)[]

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (SlVertex)[] vertex's article

articles
wsi4.sl.graph.articles(graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): ((SlVertex)[])[]

Input parameters:

  • graph A graph

Return values:

  • ((SlVertex)[])[] Articles the graph consists of

create
wsi4.sl.graph.create(input: readonly Readonly<GraphCreatorInput>[], config: CadImportConfig): PreDocumentGraph

Input parameters:

  • input Input for a new PreDocumentGraph

  • config Configuration for the underlying DocumentGraphCreator

Return values:

  • PreDocumentGraph The resulting pre-graph

deserialize
wsi4.sl.graph.deserialize(data: ArrayBuffer, importAttributes: GraphImportAttributes): GraphDeserializationResult

Input parameters:

  • data A serialized DocumentGraph

  • importAttributes Additional input attributes

Return values:

  • GraphDeserializationResult The imported graph

dump

Dump the submitted graph

wsi4.sl.graph.dump(graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): string

Debug-only

Input parameters:

  • graph A graph

Return values:

  • string The dumped graph

finalizePreGraph
wsi4.sl.graph.finalizePreGraph(graph: PreDocumentGraph, nodeUpdates: (SlNodeUpdate)[], articleUpdates: (SlArticleUpdate)[], config: GraphUpdateConfig): DocumentGraph

Input parameters:

  • graph A pre-graph

  • nodeUpdates Node update data

  • articleUpdates Article update data

  • config Config for the graph updater

Return values:

  • DocumentGraph The updated graph

mergePreGraph
wsi4.sl.graph.mergePreGraph(graphToMergeInto: PreDocumentGraph|DocumentGraph, preGraph: PreDocumentGraph): PreDocumentGraph

Input parameters:

  • graphToMergeInto The graph to merge into

  • preGraph A pre-graph

Return values:

  • PreDocumentGraph The resulting pre-graph

reachable
wsi4.sl.graph.reachable(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (SlVertex)[]

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (SlVertex)[] Reachable vertices w.r.t. vertex

reaching
wsi4.sl.graph.reaching(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (SlVertex)[]

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (SlVertex)[] Reaching vertices w.r.t. vertex

sources
wsi4.sl.graph.sources(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (SlVertex)[]

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (SlVertex)[] Sources of vertex

targets
wsi4.sl.graph.targets(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (SlVertex)[]

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (SlVertex)[] Targets of vertex

vertices
wsi4.sl.graph.vertices(graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (SlVertex)[]

Input parameters:

  • graph A graph

Return values:

  • (SlVertex)[] Vertexs the graph consists of

sl.node

Stateless graph API

articleUserData

Query an article’s UserData

wsi4.sl.node.articleUserData(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): StringIndexedInterface

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • StringIndexedInterface The associated node’s UserData

articleUuid

UUID for the associated article

wsi4.sl.node.articleUuid(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): string

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • string UUID for associated article

assembly
wsi4.sl.node.assembly(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): Assembly|undefined

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • Assembly The generated Assembly

  • undefined If there is no generated Assembly

bendLineData

Compute BendLineDatas for the associated node

wsi4.sl.node.bendLineData(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (BendLineData)[]

BendLineData is available for both sheetBending nodes and sheetCoutting source nodes of sheetBending nodes.

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (BendLineData)[] One BendLineData for each bend line present

bendLineFlangeLengths

Get BendLineFlangeLength for the node associated to a vertex

wsi4.sl.node.bendLineFlangeLengths(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (BendLineFlangeLength)[]

This function can be used to check how long the flanges of each bend are. If they are too short, specific die choices can be eliminated to make sure parts can actually be manufactured.

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • (BendLineFlangeLength)[] One BendLineFlangeLength for each bend line present

dieChoiceAlternatives

For each bend a list of BendDieChoices sorted according how well the die combination fits the constructed bend is computed

wsi4.sl.node.dieChoiceAlternatives(vertex: SlVertex, sheetMaterialIdOverride: string|undefined, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): (DieChoiceAlternativesEntry)[]

By default the node’s underlying sheetMaterialId is used (if any). Precondition: Associated node is of type sheetCutting.

Input parameters:

  • vertex A Vertex of the graph

  • sheetMaterialIdOverride Override for sheetMaterialId

  • graph A graph

Return values:

  • (DieChoiceAlternativesEntry)[] BendDieChoice alternatives for each bend

dump

Dump the submitted graph

wsi4.sl.node.dump(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): string

Debug-only

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • string The dumped graph

importUuid

Get the internal import UUID fo