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

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.25.0)",
	"version": "v0",
	"projectName": "Flat part",
	"userData": {},
	"components": [
		{
			"componentDescriptor": "c0",
			"name": "Flat part",
			"quantity": 1,
			"isImportComponent": true,
			"sourceComponents": [],
			"targetComponentDescriptors": [],
			"dimensions3": {
				"x": 115.0004,
				"y": 115.0004,
				"z": 2.000400000000014
			},
			"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.578528991195,
					"dimensions2": {
						"x": 184.75574379481225,
						"y": 181.72188256199777
					},
					"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.25.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.71
				}
			],
			"details": {
				"type": "joining",
				"content": {}
			},
			"workSteps": [
				{
					"processType": "joining",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "generic",
						"content": {}
					},
					"costCenter": "3200",
					"comment": "user-defined-comment-0",
					"setupTime": 0,
					"unitTimePerPart": 0,
					"materialCostPerPart": 0,
					"setupCost": 0,
					"unitCostPerPart": 0
				},
				{
					"processType": "powderCoating",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "coating",
						"content": {
							"coatingId": "coating"
						}
					},
					"costCenter": "4700",
					"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.9232907554842344,
			"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.359999999999999
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 4,
					"area2": 25567.546513370617,
					"dimensions2": {
						"x": 184.75574379481225,
						"y": 180.68962680515145
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000.0x1500.0-1.0038-4.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.005681677002971248,
						"grossConsumptionSheetsPerPart": 0.008249209088492858,
						"netConsumptionMassPerPart": 0.8028209605198374,
						"grossConsumptionMassPerPart": 1.1656132442040408,
						"materialCostPerPart": 1.031563596516032,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCutting",
					"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": "2800",
					"comment": "user-defined-comment-7",
					"setupTime": 60,
					"unitTimePerPart": 15.542068880415453,
					"materialCostPerPart": 0,
					"setupCost": 1.0083333333333333,
					"unitCostPerPart": 0.26119310201809304
				},
				{
					"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.65
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 6,
					"area2": 66252.01263194048,
					"dimensions2": {
						"x": 466.75348972741995,
						"y": 302.61105614785447
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000.0x1500.0-1.0038-6.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.01472266947376455,
						"grossConsumptionSheetsPerPart": 0.031570912470984355,
						"netConsumptionMassPerPart": 3.1204697949643965,
						"grossConsumptionMassPerPart": 6.6914548982251345,
						"materialCostPerPart": 5.921913906744891,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCutting",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 2221.838902483619,
							"contourCount": 5,
							"fixedRotations": [
								90,
								270
							]
						}
					},
					"costCenter": "1100",
					"setupTime": 540,
					"unitTimePerPart": 47.80618715776047,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 1.8405382055737785
				},
				{
					"processType": "automaticMechanicalDeburring",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "mechanicalDeburring",
						"content": {
							"doubleSided": false
						}
					},
					"costCenter": "2800",
					"comment": "user-defined-comment-8",
					"setupTime": 60,
					"unitTimePerPart": 17.72349950533069,
					"materialCostPerPart": 0,
					"setupCost": 1.0083333333333333,
					"unitCostPerPart": 0.29785325557569636
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999998,
									"resultingInnerRadius": 4
								},
								{
									"bendDescriptor": 1,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999998,
									"resultingInnerRadius": 4
								},
								{
									"bendDescriptor": 2,
									"bendAngle": -1.5707963267948966,
									"constructedInnerRadius": 0.7999999999999705,
									"resultingInnerRadius": 4
								},
								{
									"bendDescriptor": 3,
									"bendAngle": -1.0078996598309615,
									"constructedInnerRadius": 0.7999999999998977,
									"resultingInnerRadius": 6.735226648790253
								},
								{
									"bendDescriptor": 4,
									"bendAngle": -1.4912289756594594,
									"constructedInnerRadius": 0.7999999999998861,
									"resultingInnerRadius": 4.156079446075509
								}
							]
						}
					},
					"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.120469794964397,
			"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.25.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": 41
				}
			],
			"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.56
				}
			],
			"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.88
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 3,
					"area2": 33949.22520919161,
					"dimensions2": {
						"x": 500,
						"y": 110.40488830633481
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000.0x1500.0-1.0038-3.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.007544272268709247,
						"grossConsumptionSheetsPerPart": 0.013633392024850411,
						"netConsumptionMassPerPart": 0.7995042536764625,
						"grossConsumptionMassPerPart": 1.4447987198335224,
						"materialCostPerPart": 1.273188397720718,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCutting",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 1531.3552539903528,
							"contourCount": 6
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 19.217959283421127,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 0.7398914324117134
				},
				{
					"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": 2.881175695984332
								}
							]
						}
					},
					"setupTime": 576,
					"unitTimePerPart": 24,
					"materialCostPerPart": 0,
					"setupCost": 11.968000000000002,
					"unitCostPerPart": 0.4986666666666667
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"mass": 0.7995042536764624
		},
		{
			"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.79
				}
			],
			"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.6799999999999997
				}
			],
			"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.63
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 6,
					"area2": 35486.07408230866,
					"dimensions2": {
						"x": 305.04176018446583,
						"y": 120.00000000000006
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000.0x1500.0-1.0038-6.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.007885794240513038,
						"grossConsumptionSheetsPerPart": 0.009100350619988014,
						"netConsumptionMassPerPart": 1.6713940892767385,
						"grossConsumptionMassPerPart": 1.9288193139064598,
						"materialCostPerPart": 1.7069982675442519,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCutting",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetCutting",
						"content": {
							"contourLength": 1167.1808317826817,
							"contourCount": 11
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 30.843761336609873,
					"materialCostPerPart": 0,
					"setupCost": 20.790000000000003,
					"unitCostPerPart": 1.1874848114594803
				},
				{
					"processType": "dieBending",
					"generatedFiles": [],
					"attachments": [],
					"details": {
						"type": "sheetBending",
						"content": {
							"bendLines": [
								{
									"bendDescriptor": 0,
									"bendAngle": -1.4835298641951764,
									"constructedInnerRadius": 2,
									"resultingInnerRadius": 4.183600713012492
								}
							]
						}
					},
					"setupTime": 540,
					"unitTimePerPart": 18,
					"materialCostPerPart": 0,
					"setupCost": 11.22,
					"unitCostPerPart": 0.374
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"mass": 1.6713940892767383
		},
		{
			"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.31
				}
			],
			"details": {
				"type": "sheetMetalPart",
				"content": {
					"thickness": 4,
					"area2": 20182.130673876014,
					"dimensions2": {
						"x": 262.02016365312363,
						"y": 85.17441740408194
					},
					"millTestReportRequired": false,
					"sheetMaterialId": "1.0038",
					"sheetConsumption": {
						"sheetId": "3000.0x1500.0-1.0038-4.0",
						"sheetDimensions": {
							"x": 3000,
							"y": 1500
						},
						"netConsumptionSheetsPerPart": 0.0044849179275280055,
						"grossConsumptionSheetsPerPart": 0.005743371490772437,
						"netConsumptionMassPerPart": 0.6337189031597072,
						"grossConsumptionMassPerPart": 0.8115383916461454,
						"materialCostPerPart": 0.7182086049210934,
						"setupCost": 0,
						"unitCostPerPart": 0
					}
				}
			},
			"workSteps": [
				{
					"processType": "laserSheetCutting",
					"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.4986666666666667
				}
			],
			"userData": {},
			"generatedFiles": [],
			"attachments": [],
			"mass": 0.6337189031597068
		}
	],
	"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

Graph JSON

The reference documentation for the interface can be found here.

Examples

Minimal example
JSON
{
	"creator": "WSi4cli (1.25.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.54386090577503,
												-49.92918692272977
											]
										},
										"to": {
											"entries": [
												-42.377871897406095,
												-49.92918692272981
											]
										}
									},
									"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.54386090577503,
												-49.92918692272977
											]
										},
										"to": {
											"entries": [
												-42.377871897406095,
												-49.92918692272981
											]
										}
									},
									"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.489362133643475
											]
										},
										"to": {
											"entries": [
												-157.4926443363829,
												-52.48936213364345
											]
										}
									},
									"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.489362133643475
											]
										},
										"to": {
											"entries": [
												-157.4926443363829,
												-52.48936213364345
											]
										}
									},
									"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.37787189740611,
								-136.97632351769116
							]
						},
						"upper": {
							"entries": [
								92.37787189740615,
								44.745559044306624
							]
						}
					},
					"sheetThickness": 4,
					"fixedRotations": []
				}
			},
			"processRep": {
				"type": "sheetCutting",
				"content": {
					"contourLength": 984.0058819823421,
					"contourCount": 5,
					"boundingBox": {
						"lower": {
							"entries": [
								-92.37787189740611,
								-136.97632351769116
							]
						},
						"upper": {
							"entries": [
								92.37787189740615,
								44.745559044306624
							]
						}
					},
					"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": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": []
		},
		{
			"vertexKeys": [
				"v6"
			],
			"name": "Sheet_1",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": []
		},
		{
			"vertexKeys": [
				"v8"
			],
			"name": "Sheet_2",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"comment": "",
			"multiplicity": 1,
			"scaleData": [],
			"attachments": []
		},
		{
			"vertexKeys": [
				"v7",
				"v4"
			],
			"name": "Teil2",
			"externalPartNumber": "",
			"externalDrawingNumber": "",
			"externalRevisionNumber": "",
			"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": "",
			"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": "",
			"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": "",
			"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;

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;

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.

ArticleUpdate

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

Defined in module lib/generated/typeguard.ts

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

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;
	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;

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;
}

Defined in module lib/generated/typeguard.ts

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

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.

BulkEditorCellConfig

Bulk editor cell configuration

interface BulkEditorCellConfig {
	index: number;
	data: BulkEditorCheckBoxConfig;
}

Defined in module lib/generated/typeguard.ts

function isBulkEditorCellConfig(arg: unknown) : arg is BulkEditorCellConfig;

BulkEditorCheckBoxConfig

Check box configuration

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

Defined in module lib/generated/typeguard.ts

function isBulkEditorCheckBoxConfig(arg: unknown) : arg is BulkEditorCheckBoxConfig;

BulkEditorColumnConfig

Bulk editor column configuration

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

Defined in module lib/generated/typeguard.ts

function isBulkEditorColumnConfig(arg: unknown) : arg is BulkEditorColumnConfig;

BulkEditorDropDownConfig

Drop down configuration

interface BulkEditorDropDownConfig {
	initialValue?: string;
	items: (BulkEditorDropDownItem)[];
	isOptional: boolean;
}

Defined in module lib/generated/typeguard.ts

function isBulkEditorDropDownConfig(arg: unknown) : arg is BulkEditorDropDownConfig;

BulkEditorDropDownItem

Drop down item

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

Defined in module lib/generated/typeguard.ts

function isBulkEditorDropDownItem(arg: unknown) : arg is BulkEditorDropDownItem;

BulkEditorLabelConfig

Label configuration

interface BulkEditorLabelConfig {
	initialValue?: string;
}

Defined in module lib/generated/typeguard.ts

function isBulkEditorLabelConfig(arg: unknown) : arg is BulkEditorLabelConfig;

BulkEditorLineEditConfig

Line edit configuration

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

Defined in module lib/generated/typeguard.ts

function isBulkEditorLineEditConfig(arg: unknown) : arg is BulkEditorLineEditConfig;

BulkEditorSpinBoxConfig

Spin box configuration

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

Defined in module lib/generated/typeguard.ts

function isBulkEditorSpinBoxConfig(arg: unknown) : arg is BulkEditorSpinBoxConfig;

BulkEditorTextEditConfig

Text edit configuration

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

Defined in module lib/generated/typeguard.ts

function isBulkEditorTextEditConfig(arg: unknown) : arg is BulkEditorTextEditConfig;

CadFeatureDetailsCountersink

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

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;

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: number;
	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;

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;

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;
	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;
}

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;
}

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

GraphCreatorInputStep

STEP file content

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

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;
}

Defined in module lib/generated/typeguard.ts

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

Experimental API

GraphDeserializationResult

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

Defined in module lib/generated/typeguard.ts

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

GuiSheetExtraData

Sheet extra data for GUI

interface GuiSheetExtraData {
	extraText: string;
	nestingDissections: (NestingDissection)[];
}

Defined in module lib/generated/typeguard.ts

function isGuiSheetExtraData(arg: unknown) : arg is GuiSheetExtraData;

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;
}

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;

LstCreationParameters

Parameters for lst creation

interface LstCreationParameters {
	programName: string;
	lttIdentifier: string;
	sheetThickness: number;
	sheetMaterial: string;
	measureSheet: boolean;
	loadingSystem: TrumpfLoadingSystem;
	evaporate: LstEvaporateMode;
	measuringCorner: SheetCorner;
	sheetMetalStop: SheetCorner;
}

Defined in module lib/generated/typeguard.ts

function isLstCreationParameters(arg: unknown) : arg is LstCreationParameters;

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;

NestingDissection

Private API

interface NestingDissection {
	nestingDescriptor: number;
	xDissection?: number;
	yDissection?: number;
}

Defined in module lib/generated/typeguard.ts

function isNestingDissection(arg: unknown) : arg is NestingDissection;

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 {
	flangeLenghtIssues: (NodeIssueDieChoiceFailedFlangeLengthIssue)[];
	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;

NodeIssueBendLineLengthConstraintViolated

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

Defined in module lib/generated/typeguard.ts

function isNodeIssueBendLineLengthConstraintViolated(arg: unknown) : arg is NodeIssueBendLineLengthConstraintViolated;

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;

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;

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;

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;

NodeIssueSemimanufacturedNotAvailable

interface NodeIssueSemimanufacturedNotAvailable {
}

Defined in module lib/generated/typeguard.ts

function isNodeIssueSemimanufacturedNotAvailable(arg: unknown) : arg is NodeIssueSemimanufacturedNotAvailable;

NodeIssueSheetThicknessConstraintViolated

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

Defined in module lib/generated/typeguard.ts

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

NodeIssueTubeProfileNotSupported

interface NodeIssueTubeProfileNotSupported {
}

Defined in module lib/generated/typeguard.ts

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

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)[];
}

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 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)[];
	sheetMaterialId: string;
	sheetTappingData: (SheetTappingDataEntry)[];
	testReportRequired: boolean;
	tubeFilterTubeIds: (string)[];
	tubeMaterialId: string;
	tubeSpecificationId: string;
	userDefinedMaterialCostsPerPiece: number;
	userDefinedScalePrices: (UserDefinedScalePrice)[];
	userDefinedSetupTime: number;
	userDefinedUnitTimePerPiece: number;
}

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.

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;

PrivateArticleRepresentation

Private API

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

Defined in module lib/generated/typeguard.ts

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

PrivateArticleSignatureNodeResourceEntry

Private API

interface PrivateArticleSignatureNodeResourceEntry {
	nodeId: GraphNodeId;
	material: string;
	mass?: number;
	sheetThickness?: number;
}

Defined in module lib/generated/typeguard.ts

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

PrivateArticleTextResourceEntry

Private API

interface PrivateArticleTextResourceEntry {
	nodeId: GraphNodeId;
	details: string;
}

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;
}

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;

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)[];
}

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;

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;

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;
}

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)[];
	sheetBendingBendLineMaxEngravingLength?: number;
	guiSheetExtraData?: GuiSheetExtraData;
	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;

SettingsTableDataBase

Maps a settings table key to a type

interface SettingsTableDataBase {
	bendFlangeSafetyDistance: number;
	dieBendingSetupTimeDistributionEnabled: boolean;
	dieChoiceRadiusFactorSoftLimit: number;
	dieChoiceRadiusFactorHardLimit: number;
	erpStandardInterfaceConfig: AnyErpStandardInterfaceConfig;
	sheetNestingDistance: number;
	tubeClampingLength: number;
	tubeNestingDistance: number;
}

Defined in module lib/generated/typeguard.ts

function isSettingsTableDataBase(arg: unknown) : arg is SettingsTableDataBase;

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;
	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;

SheetFilter

Parameters to filter a set of Sheets

interface SheetFilter {
	ids: (string)[];
}

Defined in module lib/generated/typeguard.ts

function isSheetFilter(arg: unknown) : arg is SheetFilter;

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.

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.

SheetNestingPrePartition

interface SheetNestingPrePartition {
	compatibleTargets: (SheetNestingTarget)[];
	nestorConfig: CamNestorConfig;
	nestingDistance: number;
	sheetMaterialId?: string;
	sheetProcessId?: string;
}

Defined in module lib/generated/typeguard.ts

function isSheetNestingPrePartition(arg: unknown) : arg is SheetNestingPrePartition;

SheetNestingTarget

interface SheetNestingTarget {
	vertex: Vertex;
}

Defined in module lib/generated/typeguard.ts

function isSheetNestingTarget(arg: unknown) : arg is SheetNestingTarget;

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;

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;

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)[];
}

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;

SlSheetNestingPrePartition

interface SlSheetNestingPrePartition {
	compatibleTargets: (SlSheetNestingTarget)[];
	nestorConfig: CamNestorConfig;
	nestingDistance: number;
	sheetMaterialId?: string;
	sheetProcessId?: string;
}

Defined in module lib/generated/typeguard.ts

function isSlSheetNestingPrePartition(arg: unknown) : arg is SlSheetNestingPrePartition;

SlSheetNestingTarget

interface SlSheetNestingTarget {
	vertex: SlVertex;
}

Defined in module lib/generated/typeguard.ts

function isSlSheetNestingTarget(arg: unknown) : arg is SlSheetNestingTarget;

SlTubeNestingPrePartition

interface SlTubeNestingPrePartition {
	targetVertex: SlVertex;
	targetLength: number;
	nestingDistance: number;
	tubeProcessId?: string;
}

Defined in module lib/generated/typeguard.ts

function isSlTubeNestingPrePartition(arg: unknown) : arg is SlTubeNestingPrePartition;

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;

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;

TubeNestingPrePartition

interface TubeNestingPrePartition {
	targetVertex: Vertex;
	targetLength: number;
	nestingDistance: number;
	tubeProcessId?: string;
}

Defined in module lib/generated/typeguard.ts

function isTubeNestingPrePartition(arg: unknown) : arg is TubeNestingPrePartition;

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;

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;
	tubeFilterTubeIds?: (string)[];
	stockRequired?: boolean;
}

Defined in module lib/generated/typeguard.ts

function isTubeSelectionFilter(arg: unknown) : arg is TubeSelectionFilter;

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;

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: (BulkEditorColumnConfig)[];
	rowConfigs: ((BulkEditorCellConfig)[])[];
	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;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigLayeredImportDialog(arg: unknown) : arg is WidgetConfigLayeredImportDialog;

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;

WidgetConfigProcessSelector

Widget config

interface WidgetConfigProcessSelector {
	processTable: (Process)[];
	supportedWorkStepTypes: (WorkStepType)[];
	initialValue: WidgetResultProcessSelector;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigProcessSelector(arg: unknown) : arg is WidgetConfigProcessSelector;

WidgetConfigSheetFilterEditor

Widget config

interface WidgetConfigSheetFilterEditor {
	sheets: (Sheet)[];
	initialStateHeterogenous: boolean;
	initialValue?: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigSheetFilterEditor(arg: unknown) : arg is WidgetConfigSheetFilterEditor;

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;

WidgetConfigUserDataConfigEditor

Widget config

interface WidgetConfigUserDataConfigEditor {
	initialValue: WidgetResultUserDataConfigEditor;
}

Defined in module lib/generated/typeguard.ts

function isWidgetConfigUserDataConfigEditor(arg: unknown) : arg is WidgetConfigUserDataConfigEditor;

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;

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

WidgetResultProcessSelector

Widget result

interface WidgetResultProcessSelector {
	processId: string;
	forced: boolean;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultProcessSelector(arg: unknown) : arg is WidgetResultProcessSelector;

WidgetResultSheetFilterEditor

Widget result

interface WidgetResultSheetFilterEditor {
	sheetId?: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultSheetFilterEditor(arg: unknown) : arg is WidgetResultSheetFilterEditor;

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;

WidgetResultUserDataConfigEditor

Widget result

interface WidgetResultUserDataConfigEditor {
	configJson: string;
}

Defined in module lib/generated/typeguard.ts

function isWidgetResultUserDataConfigEditor(arg: unknown) : arg is WidgetResultUserDataConfigEditor;

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;

contourSizeConstraintViolated

interface contourSizeConstraintViolated {
}

Defined in module lib/generated/typeguard.ts

function iscontourSizeConstraintViolated(arg: unknown) : arg is contourSizeConstraintViolated;

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;

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

  • pngInputAssembly

  • pngGeneratedAssembly

  • stepInputAssembly

  • stepGeneratedAssembly

  • svg

  • undirectedConnectedComponentGraphs

  • attachments

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)

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

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;

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;

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

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

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;

LstEvaporateMode

List of all possible evaporate modes

Possible values:

  • none: No evaporating

  • early: Evaporate whole sheet before cutting

  • beforeEachPart: Evaporate part before cutting

Defined in module lib/generated/typeguard.ts:

function isLstEvaporateMode(arg: unknown) : arg is LstEvaporateMode;

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;

NodeDatumType

Corresponds to certain node properties

Possible values:

  • processId: ID of the underlying Process

  • sheetMaterialId: ID of the underlying sheet material

  • 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

  • twoDimRepresentationInvalid

  • unexpected: Fallback for unexpected issues (likely bugs)

  • unfoldingFailed

  • classificationEnforceable

  • datumInvalid

  • datumMissing

  • bendDeductionThicknessDeviation

  • bendDieChoiceFailed

  • bendFlangeTooShort

  • bendLineLengthConstraintViolated

  • bendRadiusDeviation

  • bendZoneAffectsContour

  • contourSizeConstraintViolated

  • dimensionConstraintViolated

  • featureNotLicensed

  • materialIncompatible

  • semimanufacturedNotAvailable

  • 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

  • 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

Defined in module lib/generated/typeguard.ts:

function isNodeUserDataKey(arg: unknown) : arg is NodeUserDataKey;

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;

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

Defined in module lib/generated/typeguard.ts:

function isProcessType(arg: unknown) : arg is ProcessType;

SceneElement

Elements of a Scene

Possible values:

  • countersinkingLabels: Annotations for countersinking

  • 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)

  • tubeCuttingTubeContours: Contours of the unrolled tube (tubeCutting only)

  • tubeCuttingVirtualCuts: Virtual cuts of the unrolled tube (tubeCutting only)

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

  • sheetNestingDistance: Nesting distance for sheets

  • tubeClampingLength: Length of tubes that cannot be used for nesting

  • tubeNestingDistance: Nesting distance for tubes

Defined in module lib/generated/typeguard.ts:

function isSettingsTableKey(arg: unknown) : arg is SettingsTableKey;

SheetCorner

Possible sheet corners (in direction in how the sheet lies inside machine)

Possible values:

  • lowerLeft: Lower left corner

  • upperLeft: Upper left corner

  • lowerRight: Lower right corner

  • upperRight: Upper right corner

Defined in module lib/generated/typeguard.ts:

function isSheetCorner(arg: unknown) : arg is SheetCorner;

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

Defined in module lib/generated/typeguard.ts:

function isTableType(arg: unknown) : arg is TableType;

TrumpfLoadingSystem

List of all possible loading systems

Possible values:

  • manual: Manual without palette changer

  • paletteChange: Palette changer

  • paletteChangeLiftMaster: Palette changer / LiftMaster

  • onePalette: One palette operation

  • paletteChangeLiftMasterSort: Palette changer / LiftMaster Sort

  • paletteChangeLiftMasterSortPullingDevice: Palette changer / LiftMaster Sort with pulling device

Defined in module lib/generated/typeguard.ts:

function isTrumpfLoadingSystem(arg: unknown) : arg is TrumpfLoadingSystem;

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

  • bulkEditor: 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

  • sheetFilterEditor: Sheet filter editor

  • sheetTappingEditor: Sheet tapping editor

  • tubeFilterEditor: Tube filter editor

  • userDataConfigEditor: UserData config editor

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 in debug builds!

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

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 through hole 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): (CadFeatureGroup)[]

Input parameters:

  • descriptors Feature descriptors that should be grouped

  • part The CadPart

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

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)

customMaterialCosts

Check if a node’s unit time (Te) calculation is defined by a custom formula

wsi4.calc.customMaterialCosts(vertex: Vertex): number|undefined

Not to be confused with the UserData material-costs override.

Input parameters:

  • vertex A Vertex

Return values:

  • number The resulting material costs (if successful)

  • undefined In case of an error

customSetupTime

Check if a node’s unit time (Te) calculation is defined by a custom formula

wsi4.calc.customSetupTime(vertex: Vertex): number|undefined

Not to be confused with the UserData setup-time override.

Input parameters:

  • vertex A Vertex

Return values:

  • number The resulting setup time (if successful)

  • undefined In case of an error

customUnitTime

Check if a node’s unit time (Te) calculation is defined by a custom formula

wsi4.calc.customUnitTime(vertex: Vertex): number|undefined

Not to be confused with the UserData unit-time override.

Input parameters:

  • vertex A Vertex

Return values:

  • number The resulting unit time (if successful)

  • undefined In case of an error

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

hasCustomMaterialCosts

Check if a node’s unit time (Te) calculation is defined by a custom formula

wsi4.calc.hasCustomMaterialCosts(vertex: Vertex): boolean

Not to be confused with the UserData material-costs override.

Input parameters:

  • vertex A Vertex

Return values:

  • boolean True if the node’s material costs calculation is user-defined

hasCustomSetupTime

Check if a node’s unit time (Te) calculation is defined by a custom formula

wsi4.calc.hasCustomSetupTime(vertex: Vertex): boolean

Not to be confused with the UserData setup-time override.

Input parameters:

  • vertex A Vertex

Return values:

  • boolean True if the node’s setup time calculation is user-defined

hasCustomUnitTime

Check if a node’s unit time (Te) calculation is defined by a custom formula

wsi4.calc.hasCustomUnitTime(vertex: Vertex): boolean

Not to be confused with the UserData unit-time override.

Input parameters:

  • vertex A Vertex

Return values:

  • boolean True if the node’s unit time calculation is user-defined

sheetCuttingUnitTimePerPiece

Compute sheet cutting unit time via a virtual 2D cutting machine

wsi4.calc.sheetCuttingUnitTimePerPiece(vertex: Vertex, params: SheetCuttingCalcParams): number|undefined

Both cutting and engraving is considered. Travel times are estimated via a TSP optimization. Pre-condition: Associated node is of type sheetCutting.

Input parameters:

  • vertex Vertex of a sheetCutting node

  • params Additional parameters for the calculation

Return values:

  • number The unit time per piece [s]

  • undefined If the time cannot be computed

tubeCuttingUnitTimePerPiece

Compute sheet cutting unit time via a virtual 2D cutting machine

wsi4.calc.tubeCuttingUnitTimePerPiece(vertex: Vertex, params: TubeCuttingCalcParams): number|undefined

For now only cutting is considered, i.e. no engraving. Travel times are estimated via a TSP optimization. Pre-condition: Associated node is of type tubeCutting.

Input parameters:

  • vertex Vertex of a tubeCutting node

  • params Additional parameters for the calculation

Return values:

  • number The unit time per piece [s]

  • undefined If the time cannot be computed

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

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

netVolumeNestedParts

Net area of all nested parts

wsi4.cam.nest2.netVolumeNestedParts(twoDimRep: TwoDimRepresentation, nestingDescriptor: number, innerContourAreaThreshold: number): number

innerContourAreaThreshold defines the minimum area for inner contours to be considered. In case an inner contour is considered, its volume will be subtracted from the resulting area. If innerContourAreaThreshold is > 0., then parts that are nested into inner contours of another parts can be considered twice. However, there is an guarantee for the result to be not larger than the combined volume of all nesting bounding boxes.

Input parameters:

  • twoDimRep The nesting TwoDimRepresentation

  • nestingDescriptor The nesting’s descriptor

  • innerContourAreaThreshold Threshold area for inner contours

Return values:

  • number Net area of all nested parts

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>[], timeLimitInMilliseconds: number): 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

  • timeLimitInMilliseconds Time limit 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

computeNestingBoundingBoxes

Get axis-aligned bounding boxes of nesting

wsi4.cam.util.computeNestingBoundingBoxes(twoDimRep: TwoDimRepresentation): (Box2)[]

Deprecated - use wsi4.cam.nest2 API instead The array-indices match the indices of CamNesting's sheets property.

Input parameters:

  • twoDimRep TwoDimRepresentation containing a nesting for which the bounding boxes should be computed

Return values:

  • (Box2)[] Array of Box2s of the nesting contained in twoDimRep

createLst

Create a lst based on the nesting in TwoDimRepresentation

wsi4.cam.util.createLst(twoDimRep: TwoDimRepresentation, parameters: LstCreationParameters): string

Pre-condition: TwoDimRepresentation does correspond to a sheet node.

Input parameters:

  • twoDimRep The TwoDimRepresentation

  • parameters Parameters for lst creation

Return values:

  • string Lst of nesting in twoDimRep

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

extractNesting

Get CamNesting from a TwoDimRepresentation

wsi4.cam.util.extractNesting(twoDimRep: TwoDimRepresentation): CamNesting|undefined

Deprecated - use wsi4.cam.nest2 API instead The array-indices of CamNesting match the indices of computeNestingBoundingBoxes()' resulting array.

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • CamNesting The underlying nesting

  • undefined If TwoDimRepresentation does not provide a nesting

extractNestingParts

Get CamNestedParts from a TwoDimRepresentation

wsi4.cam.util.extractNestingParts(twoDimRep: TwoDimRepresentation): ((CamNestedPart)[])[]|undefined

Deprecated - use wsi4.cam.nest2 API instead The array-indices of CamNestedParts match the indices of CamNesting's sheets.

Input parameters:

  • twoDimRep The TwoDimRepresentation

Return values:

  • ((CamNestedPart)[])[] The nested parts

  • undefined If TwoDimRepresentation does not provide a nesting

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

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

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

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)[], sheetNestingPrePartitions: (SheetNestingPrePartition)[], tubeNestingPrePartition: (TubeNestingPrePartition)[]): void

Input parameters:

  • nodeUpdates Node update data

  • articleUpdates Article update data

  • sheetNestingPrePartitions Sheet nesting input

  • tubeNestingPrePartition Tube nesting input

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: number): 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 [ms] (0 disables timeout)

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: number): 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 [ms] (0 disables timeout)

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

internal

defaultSettingsTableValue

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

wsi4.internal.defaultSettingsTableValue(key: SettingsTableKey): number|string|boolean|AnyErpStandardInterfaceConfig

Input parameters:

  • key Settings table key

Return values:

  • number

  • string

  • boolean

  • AnyErpStandardInterfaceConfig

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

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:

io.sql

SQL database access

connect

Connect to a database using provided connection properties

wsi4.io.sql.connect(properties: ConnectionProperties): boolean

Experimental feature

Input parameters:

  • properties Object holding connection data

Return values:

  • boolean True if connection could be established; false otherwise.

execQuery

Execute a SQL query using given connection

wsi4.io.sql.execQuery(connection: string, queryString: string): (StringIndexedInterface)[]|undefined

Experimental feature

Possible values for connection are defined when calling connect().

Example for queryString: SELECT name, salary FROM employees;

Input parameters:

  • connection Identifier for the connection to use

  • queryString The SQL query that should be executed

Return values:

  • (StringIndexedInterface)[] For SELECT queries an Array of objects is returned where each object represents one table row

  • undefined In case of an error such as wrong connection

listDrivers

Get list of drivers

wsi4.io.sql.listDrivers(): (string)[]

Experimental feature

Return values:

  • (string)[] List of drivers

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: (WorkStepType)[]): (WorkStepType)[]

Input parameters:

  • vertex A Vertex of the current graph

  • workStepTypes WorkStepTypes to check; if empty, all WorkStepTypes are checked

Return values:

  • (WorkStepType)[] 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

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

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

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.

sheetFilter

Return the associated node’s SheetFilter

wsi4.node.sheetFilter(vertex: Vertex): SheetFilter|undefined

Note: This function is deprecated and will be removed in a future version. Use lib/graph_utils~s sheetFilter instead.

Input parameters:

  • vertex A Vertex of the current graph

Return values:

  • SheetFilter Filter on possible sheets, if vertex is associated with a node of WorkStepType sheet

  • undefined If vertex is not associated with a node whose WorkStepType is sheet

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

tubeCuttingNetVolume3

Net volume of a tubeCutting node

wsi4.node.tubeCuttingNetVolume3(vertex: Vertex): number

The net volume corresponds to a 3D geometry with corrected radii. I. e. in general the volume can be different from the associated Brep’s volume.

Input parameters:

  • vertex Vertex of a tubeCutting node

Return values:

  • number Net volume of the tube

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

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): GraphDeserializationResult

Input parameters:

  • data A serialized DocumentGraph

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

finalizeImportedGraph
wsi4.sl.graph.finalizeImportedGraph(graph: ImportedDocumentGraph, nodeUpdates: (SlNodeUpdate)[], articleUpdates: (SlArticleUpdate)[], sheetNestingPrePartition: (SlSheetNestingPrePartition)[], tubeNestingPrePartition: (SlTubeNestingPrePartition)[], importUuid: string, userImportId: string): DocumentGraph

Input parameters:

  • graph An imported graph

  • nodeUpdates Node update data

  • articleUpdates Article update data

  • sheetNestingPrePartition Sheet nesting input

  • tubeNestingPrePartition Tube nesting input

  • importUuid Import UUID to apply to the imported graph

  • userImportId User-defined import ID to apply to the imported graph

Return values:

  • DocumentGraph The updated graph

finalizePreGraph
wsi4.sl.graph.finalizePreGraph(graph: PreDocumentGraph, nodeUpdates: (SlNodeUpdate)[], articleUpdates: (SlArticleUpdate)[], sheetNestingPrePartition: (SlSheetNestingPrePartition)[], tubeNestingPrePartition: (SlTubeNestingPrePartition)[]): DocumentGraph

Input parameters:

  • graph A pre-graph

  • nodeUpdates Node update data

  • articleUpdates Article update data

  • sheetNestingPrePartition Sheet nesting input

  • tubeNestingPrePartition Tube nesting input

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 for an import node

wsi4.sl.node.importUuid(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): string|undefined

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • string The import UUID

  • undefined If there is no import UUID

inputAssembly
wsi4.sl.node.inputAssembly(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): Assembly|undefined

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • Assembly The input Assembly

  • undefined If there is no input Assembly

multiplicity
wsi4.sl.node.multiplicity(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): number

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • number Multiplicity of the associated node

nodeUserData

Query a node’s UserData

wsi4.sl.node.nodeUserData(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

part
wsi4.sl.node.part(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): CadPart

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • CadPart The associated Part

pickInitialSheet

Pick an initial sheet for vertex given the initial sheet filter

wsi4.sl.node.pickInitialSheet(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph, initialSheetFilter: InitialSheetFilter): undefined|Sheet

Input parameters:

  • vertex A sheetCutting Vertex of the graph

  • graph A graph

  • initialSheetFilter The sheet filter to use

Return values:

  • undefined If there is no matching sheet

  • Sheet The picked sheet (if any)

pickInitialTube

Pick an initial tube for a sheetCutting vertex given the initial tube filter

wsi4.sl.node.pickInitialTube(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph, initialTubeFilter: InitialTubeFilter): undefined|Tube

Input parameters:

  • vertex A tubeCutting Vertex of the graph

  • graph A graph

  • initialTubeFilter The tube filter to use

Return values:

  • undefined If there is no matching tube

  • Tube The picked tube (if any)

processId

Query an article’s Process ID

wsi4.sl.node.processId(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): string

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • string The associated node’s Process ID

processType

Query an article’s ProcessType

wsi4.sl.node.processType(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): ProcessType

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • ProcessType The associated node’s ProcessType

profileExtrusionLength

Extrusion length of a tube cutting node

wsi4.sl.node.profileExtrusionLength(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): 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 Vertex of the graph

  • graph A graph

Return values:

  • number Extrusion length of the associated profile geometry

rootId
wsi4.sl.node.rootId(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): GraphNodeRootId

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • GraphNodeRootId Root ID of the associated node

tubeProfileGeometry

Return the associated node’s tube profile geometry

wsi4.sl.node.tubeProfileGeometry(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): TubeProfileGeometry|undefined

Calling this function is only meaningful for tube-related nodes.

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • TubeProfileGeometry The associated tube profile geometry (if any)

  • undefined If no tube profile geometry is available

twoDimRep
wsi4.sl.node.twoDimRep(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): undefined|TwoDimRepresentation

In case of a pre-graph the TwoDimRep does not entail any bend deductions.

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • undefined If there is no TwoDimRep

  • TwoDimRepresentation The TwoDimRepresentation

userImportId

Get the user-defined import ID for an import node

wsi4.sl.node.userImportId(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): string|undefined

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • string The import ID

  • undefined If there is no user-defined import ID

vertexFromNodeId
wsi4.sl.node.vertexFromNodeId(nodeId: GraphNodeId, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): SlVertex|undefined

Input parameters:

  • nodeId A Node ID of the graph

  • graph A graph

Return values:

  • SlVertex Vertex of the associated node

  • undefined If there is no node with this ID

vertexFromRootId
wsi4.sl.node.vertexFromRootId(rootId: GraphNodeRootId, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): SlVertex|undefined

Input parameters:

  • rootId A Root ID of the graph

  • graph A graph

Return values:

  • SlVertex Vertex of the associated node

  • undefined If there is no node with this ID

workStepType
wsi4.sl.node.workStepType(vertex: SlVertex, graph: PreDocumentGraph|ImportedDocumentGraph|DocumentGraph): WorkStepType

Input parameters:

  • vertex A Vertex of the graph

  • graph A graph

Return values:

  • WorkStepType WorkStepType of the associated node

tables

Read operation on the user tables

commit

Write internal tables to database

wsi4.tables.commit(): void

Note: If internal tables are unchanged, the database is not updated.

Return values:

deserialize

Returns deserialized tables

wsi4.tables.deserialize(data: ArrayBuffer): undefined|(AnyTable)[]

Input parameters:

  • data Serialized tables

Return values:

  • undefined

  • (AnyTable)[]

effectiveSortedTubes

Effective tubes with the filter applied

wsi4.tables.effectiveSortedTubes(filter: TubeSelectionFilter): (Tube)[]

Input parameters:

  • filter filter

Return values:

  • (Tube)[]

findErrors

Find errors in current tables

wsi4.tables.findErrors(): (TableError)[]

Return values:

  • (TableError)[]

fromCsv

Load table from CSV string

wsi4.tables.fromCsv(tableType: TableType, csv: string, separator: string, locale: string): undefined|AnyTable

If successful, then the result’s type is guaranteed to be consistent with the input type. Separator must be of length 1. Supported locales are 'en_US' and 'de_DE'.

Input parameters:

  • tableType The table type

  • csv The CSV

  • separator The CSV separator

  • locale Locale for floating point number conversion

Return values:

  • undefined

  • AnyTable

fromJson

Load table from JSON string

wsi4.tables.fromJson(tableType: TableType, json: string): undefined|AnyTable

If successful, then the result’s type is guaranteed to be consistent with the input type. This function utilizes QVariantInputArchive’s archive versioning.

Input parameters:

  • tableType The table type

  • json The JSON to parse

Return values:

  • undefined

  • AnyTable

get

Get table with given identifier

wsi4.tables.get(identifier: TableType): AnyTable

Input parameters:

  • identifier Identifier of the table that should be returned

Return values:

  • AnyTable Requested table

getDefault

Get default for table with given identifier

wsi4.tables.getDefault(identifier: TableType): AnyTable

If there is no default table an empty table will be returned.

Input parameters:

  • identifier Identifier of the table the default should be returned

Return values:

  • AnyTable Requested table

isExternalTable

Returns true if table is set as external table

wsi4.tables.isExternalTable(type: TableType): boolean

Input parameters:

  • type Table type

Return values:

  • boolean

isInternalTable

Returns true if table is set as internal table

wsi4.tables.isInternalTable(type: TableType): boolean

Input parameters:

  • type Table type

Return values:

  • boolean

mergeIntoInternalTables

Merge a set of tables into internal tables

wsi4.tables.mergeIntoInternalTables(anyTables: (AnyTable)[], mergeMode: TableMergeMode): void

The tables submitted must conform to the associated UserTable’s interface.

All unmatched existing table rows are preserved. In 'update' mode all unmatched input table rows are discarded.

Postcondition: All tables are set as 'internal' regardless of the previous state.

Input parameters:

  • anyTables The tables to merge

  • mergeMode The merge mode

Return values:

name

Return translated table name for the submitted type

wsi4.tables.name(tableType: TableType): string

Input parameters:

  • tableType The table type

Return values:

  • string

permissions

Database permissions for currently active license and account

wsi4.tables.permissions(): DatabasePermissions

Return values:

  • DatabasePermissions

serialize

Create versioned serialization of internal tables

wsi4.tables.serialize(tableTypes: readonly Readonly<TableType>[]): ArrayBuffer

Resulting serialization is versioned to make it more robust with respect to API changes.

Input parameters:

  • tableTypes Tables to serialize

Return values:

  • ArrayBuffer

setExternalTable

Override table for given identifier

wsi4.tables.setExternalTable(anyTable: AnyTable): void

The table submitted must conform to the associated UserTable’s interface.

Tables set via this function are not editable via the Gui’s table widget.

Tables set via this function take precedence over internal (built-in) tables.

Tables set via this function are not persistent.

Postcondition: The table is set as 'external' regardless of the previous state.

Input parameters:

  • anyTable Table to set

Return values:

setInternalTable

Set internal table

wsi4.tables.setInternalTable(anyTable: AnyTable): void

The table submitted must conform to the associated UserTable’s interface.

Tables set via this function are editable via the Gui’s table widget.

Tables set via this function are persistent and available among all clients using the same WSi4 account.

Postcondition: The table is set as 'internal' regardless of the previous state.

Input parameters:

  • anyTable Table to set

Return values:

toJson

Create (versioned) JSON serialization

wsi4.tables.toJson(tableType: TableType): string

This function utilizes QVariantOutputArchive’s archive versioning.

Input parameters:

  • tableType The table type

Return values:

  • string

ui

Request data via ui

openFile

Open local file

wsi4.ui.openFile(filePath: string): void

Input parameters:

  • filePath Local file path

Return values:

openUrl

Open url

wsi4.ui.openUrl(url: string): void

Input parameters:

  • url Url to open

Return values:

show

Show user input widget defined by config

wsi4.ui.show(config: WidgetConfig): undefined|WidgetResult

Input parameters:

  • config Widget configuration

Return values:

  • undefined User canceled

  • WidgetResult Widget result

util

General purpose utility functions

arrayBufferToString

Convert ArrayBuffer to string

wsi4.util.arrayBufferToString(data: ArrayBuffer): string

Input parameters:

  • data Data to convert as ArrayBuffer

Return values:

  • string data converted to string

compress

Compress ArrayBuffer with zlib/Deflate

wsi4.util.compress(data: ArrayBuffer): ArrayBuffer

Input parameters:

  • data Bytes to compress

Return values:

  • ArrayBuffer Compressed bytes

createFileContentFromScene

Create file content from a Scene

wsi4.util.createFileContentFromScene(scene: Scene, fileType: FileType): string|undefined

Note: This function is deprecated. Consider using wsi4.geo.utils.renderScene() instead.

Input parameters:

  • scene A Scene

  • fileType Requested FileType; currently svg is supported

Return values:

  • string string with file contents for text formats, currently used for dxf and svg

  • undefined In case of error such as unsupported fileType

createUuid

Generate a UUID

wsi4.util.createUuid(): string

Return values:

  • string The generated UUID

deserializeUserDataConfig

Deserialize UserDataConfig

wsi4.util.deserializeUserDataConfig(data: string): UserDataConfig|undefined

Input parameters:

  • data Serialized UserDataConfig

Return values:

  • UserDataConfig The UserDataConfig (if successful)

  • undefined If deserialization fails

error

Print error message

wsi4.util.error(message: string): void

Input parameters:

  • message Message to show

Return values:

fromBase64

Decode ArrayBuffer from base64

wsi4.util.fromBase64(data: ArrayBuffer): ArrayBuffer

To create a decoded ArrayBuffer from a base64 encoded string, convert the string value with stringToArrayBuffer() first.

Input parameters:

  • data Bytes to decode

Return values:

  • ArrayBuffer Decoded bytes

getFutureResult

Access result of a future

wsi4.util.getFutureResult(future: ArrayBufferFuture|MeasurementScenesFuture|BooleanFuture|PolygonFuture|Nest3ResultFuture|TwoDimRepOptionalFuture|ProfileShadowFuture|SceneFuture): ArrayBuffer|(MeasurementScene)[]|boolean|Polygon|(Nest3ResultBox)[]|TwoDimRepresentation|ProfileShadow|Scene

The future’s wrapped type is guaranteed to be the result union’s type.

Input parameters:

  • future The future

Return values:

  • ArrayBuffer Result of a ArrayBuffer future

  • (MeasurementScene)[] Result of a MeasurementScene future

  • boolean Result of a Boolean future

  • Polygon Result of a Polygon future

  • (Nest3ResultBox)[] Result of a Nest3Result future

  • TwoDimRepresentation Result of a TwoDimRepOptional future

  • ProfileShadow Result of a ProfileShadow future

  • Scene Result of a Scene future

info

Print info message

wsi4.util.info(message: string): void

Input parameters:

  • message Message to show

Return values:

isDebug

Get debug mode

wsi4.util.isDebug(): boolean

Return values:

  • boolean True if debug mode is on

parseCsv

Parse CSV string

wsi4.util.parseCsv(input: string, delimiter: string): undefined|((string)[])[]

Note: CSV separator is ','

Input parameters:

  • input CSV string

  • delimiter Delimiter character of CSV

Return values:

  • undefined If unsuccessful

  • ((string)[])[] Parsed CSV where each row is represented by an Array of Strings

programInfo

Get program information

wsi4.util.programInfo(): string

Return values:

  • string Name and current version

setDebug

Set debug mode

wsi4.util.setDebug(debugOn: boolean): void

Input parameters:

  • debugOn True if debug mode should be on

Return values:

stringToArrayBuffer

Convert string to ArrayBuffer

wsi4.util.stringToArrayBuffer(data: string): ArrayBuffer

Input parameters:

  • data Data to convert as string

Return values:

  • ArrayBuffer data converted to ArrayBuffer

stringToLatin1

Convert string to Latin-1 encodedArrayBuffer

wsi4.util.stringToLatin1(data: string): ArrayBuffer

Note: "The returned byte array is undefined if the string contains non-Latin1 characters. Those characters may be suppressed or replaced with a question mark." (Qt docs)

Input parameters:

  • data Data to convert as string

Return values:

  • ArrayBuffer Latin-1 representation of data converted to ArrayBuffer

telemetry

Send telemetry message

wsi4.util.telemetry(message: string, keyValues: readonly Readonly<KeyValue>[]): void

The supplied argument message is logged as a string and contain arbitrary information.

Care should be taken with keyValues however. Its keys and values must not contain dynamically changing values like counters or user input.

Input parameters:

  • message The telemetry message to send

  • keyValues Array of KeyValues to be sent with the telemetry message

Return values:

toBase64

Encode ArrayBuffer with base64

wsi4.util.toBase64(data: ArrayBuffer): ArrayBuffer

To create a base64 string value, the result of this function can be converted using arrayBufferToString().

Input parameters:

  • data Bytes to encode

Return values:

  • ArrayBuffer Base64 encoded bytes

toCurrencyString

Convert number to string with currency symbol

wsi4.util.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

toKey

Get key (string representation) for object

wsi4.util.toKey(object: Vertex|GraphNodeId|GraphNodeRootId|Assembly|Brep|TwoDimRepresentation): string

Input parameters:

  • object An object

Return values:

  • string string representing object

toNumber

Get numerical representation for object

wsi4.util.toNumber(object: Vertex|GraphNodeId|GraphNodeRootId): number

Note: The numerical representation provides the least runtime security as compared to the opaque objects and the result of toKey() so use with care.

Input parameters:

  • object An object

Return values:

  • number number representing object

toNumberString

Convert number to string

wsi4.util.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

toXml

Convert JSON to XML

wsi4.util.toXml(json: string): string

Conversion support is limited due to incompatibilities between the two formats.

Input parameters:

  • json JSON string to convert to XML

Return values:

  • string The string converted to XML

translate

Get translation of key

wsi4.util.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

uncompress

Extract zlib/Deflate compressed ArrayBuffer

wsi4.util.uncompress(data: ArrayBuffer): ArrayBuffer

Input parameters:

  • data Bytes to uncompress

Return values:

  • ArrayBuffer Uncompressed bytes

warn

Print warning message

wsi4.util.warn(message: string): void

Input parameters:

  • message Message to show

Return values:

Table Documentation

Automatic deburring - Material

Table type:

automaticMechanicalDeburringMaterial

Data interface:

AutomaticMechanicalDeburringMaterial

Meta data:
Column key Header Unique Referred table / column

sheetMaterialId

Sheet - Material

true

sheetMaterial / identifier

automaticMechanicalDeburringMaterialId

Automatic deburring - Material

false

-

Referring tables:
Referring table Referring column

automaticMechanicalDeburringParameters

automaticMechanicalDeburringMaterialId

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 1

Example:
[
    {
        "automaticMechanicalDeburringMaterialId": "1.0038",
        "serialization_version": 1,
        "sheetMaterialId": "1.0038"
    },
    {
        "automaticMechanicalDeburringMaterialId": "1.4301",
        "sheetMaterialId": "1.4301"
    },
    {
        "automaticMechanicalDeburringMaterialId": "1.0038",
        "sheetMaterialId": "QStE380TM"
    },
    {
        "automaticMechanicalDeburringMaterialId": "AlMg3",
        "sheetMaterialId": "AlMg3"
    }
]

Automatic deburring - Parameters

Table type:

automaticMechanicalDeburringParameters

Data interface:

AutomaticMechanicalDeburringParameters

Meta data:
Column key Header Unique Referred table / column

automaticMechanicalDeburringMaterialId

Automatic deburring - Material

true

automaticMechanicalDeburringMaterial / automaticMechanicalDeburringMaterialId

maxDimY

Max. dim y [mm]

false

-

unitTimeBase

Unit time base [min]

false

-

speed

Speed [m / min]

false

-

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 0

Example:
[
    {
        "automaticMechanicalDeburringMaterialId": "1.0038",
        "maxDimY": 2000,
        "serialization_version": 0,
        "speed": 2,
        "unitTimeBase": 0.25
    },
    {
        "automaticMechanicalDeburringMaterialId": "1.4301",
        "maxDimY": 2000,
        "speed": 1.8,
        "unitTimeBase": 0.25
    },
    {
        "automaticMechanicalDeburringMaterialId": "AlMg3",
        "maxDimY": 2000,
        "speed": 3,
        "unitTimeBase": 0.25
    }
]

Coating

Table type:

coating

Data interface:

Coating

Meta data:
Column key Header Unique Referred table / column

identifier

ID

true

-

name

Name

false

-

color

Color

false

-

density

Density [kg / m³]

false

-

costPerMass

Costs [Currency / kg]

false

-

description

Description

false

-

Referring tables:
Referring table Referring column

coatingProcessMapping

coatingId

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 0

Example:
[
    {
        "color": "#CDBA88",
        "costPerMass": 28,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1000",
        "name": "RAL 1000: Green beige (Powder Coating) ",
        "serialization_version": 0
    },
    {
        "color": "#D0B084",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1001",
        "name": "RAL 1001: Beige (Powder Coating) "
    },
    {
        "color": "#D2AA6D",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1002",
        "name": "RAL 1002: Sand yellow (Powder Coating) "
    },
    {
        "color": "#F9A900",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1003",
        "name": "RAL 1003: Signal yellow (Powder Coating) "
    },
    {
        "color": "#E49E00",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1004",
        "name": "RAL 1004: Golden yellow (Powder Coating) "
    },
    {
        "color": "#CB8F00",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1005",
        "name": "RAL 1005: Honey yellow (Powder Coating) "
    },
    {
        "color": "#E19000",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1006",
        "name": "RAL 1006: Maize yellow (Powder Coating) "
    },
    {
        "color": "#E88C00",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1007",
        "name": "RAL 1007: Daffodil yellow (Powder Coating) "
    },
    {
        "color": "#AF8050",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1011",
        "name": "RAL 1011: Brown beige (Powder Coating) "
    },
    {
        "color": "#DDAF28",
        "costPerMass": 25,
        "density": 1500,
        "description": "",
        "identifier": "pc_ral_1012",
        "name": "RAL 1012: Lemon yellow (Powder Coating) "
    }
]

Coating - Process Mapping

Table type:

coatingProcessMapping

Data interface:

CoatingProcessMapping

Meta data:
Column key Header Unique Referred table / column

coatingId

Coating

true

coating / identifier

processId

Process

false

process / identifier

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 0

Example:
[
    {
        "coatingId": "pc_ral_1000",
        "processId": "powder-coating",
        "serialization_version": 0
    },
    {
        "coatingId": "pc_ral_1001",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1002",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1003",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1004",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1005",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1006",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1007",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1011",
        "processId": "powder-coating"
    },
    {
        "coatingId": "pc_ral_1012",
        "processId": "powder-coating"
    }
]

Consumables

Table type:

consumable

Data interface:

Consumable

Meta data:
Column key Header Unique Referred table / column

identifier

ID

true

-

name

Name

false

-

unit

Unit

false

-

costsPerUnit

Costs per unit

false

-

description

Description

false

-

Referring tables:
Referring table Referring column

processConsumableRate

consumableId

sheetCuttingProcessConsumableRate

consumableId

tubeCuttingProcessConsumableRate

consumableId

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 0

Laser sheet cutting - Cutting gas

Table type:

laserSheetCuttingGas

Data interface:

LaserSheetCuttingGas

Meta data:
Column key Header Unique Referred table / column

identifier

ID

true

-

name

Name

false

-

Referring tables:
Referring table Referring column

laserSheetCuttingSpeed

laserSheetCuttingGasId

laserSheetCuttingPierceTime

laserSheetCuttingGasId

laserSheetCuttingRate

laserSheetCuttingGasId

laserSheetCuttingMinArea

laserSheetCuttingGasId

laserSheetCuttingMaxThickness

laserSheetCuttingGasId

sheetCuttingProcessToLaserCuttingGas

laserSheetCuttingGasId

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 0

Laser sheet cutting - Hourly rates

Table type:

laserSheetCuttingRate

Data interface:

LaserSheetCuttingRate

Meta data:
Column key Header Unique Referred table / column

sheetCuttingMaterialId

Sheet cutting - Material

true

sheetCuttingMaterial / identifier

laserSheetCuttingGasId

Cutting Gas

true

laserSheetCuttingGas / identifier

rate

Hourly rate [Currency / h]

false

-

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 1

Laser sheet cutting - Minimum contour area

Table type:

laserSheetCuttingMinArea

Data interface:

LaserSheetCuttingMinArea

Meta data:
Column key Header Unique Referred table / column

sheetCuttingMaterialId

Sheet cutting - Material

true

sheetCuttingMaterial / identifier

laserSheetCuttingGasId

Cutting Gas

true

laserSheetCuttingGas / identifier

thickness

Sheet metal thickness [mm]

true

-

area

Area [mm²]

false

-

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 1

Laser sheet cutting - Pierce time

Table type:

laserSheetCuttingPierceTime

Data interface:

LaserSheetCuttingPierceTime

Meta data:
Column key Header Unique Referred table / column

sheetCuttingMaterialId

Sheet cutting - Material

true

sheetCuttingMaterial / identifier

laserSheetCuttingGasId

Cutting Gas

true

laserSheetCuttingGas / identifier

thickness

Sheet metal thickness [mm]

true

-

time

Pierce time [s]

false

-

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 1

Laser sheet cutting - Sheet thickness constraints

Table type:

laserSheetCuttingMaxThickness

Data interface:

LaserSheetCuttingMaxThickness

Meta data:
Column key Header Unique Referred table / column

sheetCuttingMaterialId

Sheet cutting - Material

true

sheetCuttingMaterial / identifier

laserSheetCuttingGasId

Cutting Gas

true

laserSheetCuttingGas / identifier

maxThickness

Max. sheet thickness [mm]

false

-

minThickness

Min. sheet thickness [mm]

false

-

Serialization version:

An optional property serialization_version of type number can be specified for the first element.

Current serialization version: 2

Laser sheet cutting - Speed

Table type:

laserSheetCuttingSpeed

Data interface:

LaserSheetCuttingSpeed

Meta data:
Column key Header Unique Referred table / column

sheetCuttingMaterialId

Sheet cutting - Material

true

sheetCuttingMaterial / identifier

laserSheetCuttingGasId

Cutting Gas

true