{
"version": 3,
"defaultUnits": {
"time": "s",
"percent": "%",
"length": "mm",
"field": "sqmm",
"angle": "deg"
},
"devices": [
{
"id": 1,
"title": "2D设备",
"materialKind": "2d",
"canCutAnyShapes": true,
"minCutWidth": 30,
"edgingCuts": "optimal",
"originEdgingCuts": "default"
}
],
"materials": [
{
"id": 1,
"deviceId": 1,
"title": "2D 材料",
"kind": "2d",
"thickness": 18,
"surplus": 0,
"margin": 0,
"defaultEdging": 0,
"cuttingDimensions": "net",
"canHaveStructure": true,
"canBeVeneered": true,
"canRotate": true,
"canMirror": true,
"kerf": 3,
"allowEdgeCuts": true,
"reuseWaste": {
"enabled": true,
"minLongerLength": 200,
"minShorterLength": 200,
"prefLongerLength": 600,
"prefShorterLength": 600
}
}
],
"pieces": [
{
"id": 1,
"materialId": 1,
"length": 300,
"width": 500,
"quantity": 5,
"structure": ["byLength", "byWidth", "none"],
"priority": "critical",
"rotationStep": "30deg",
"description": "",
"surplus": 0,
"margin": 0
},
{
"id": 2,
"materialId": 1,
"length": 1220,
"width": 740,
"quantity": 1,
"structure": ["byLength", "byWidth", "none"],
"priority": "normal",
"rotationStep": "30deg",
"description": "",
"surplus": 0,
"margin": 0
},
{
"id": 3,
"materialId": 1,
"quantity": 2,
"structure": ["byLength", "byWidth", "none"],
"priority": "critical",
"rotationStep": "30deg",
"surplus": 0,
"shapeType": "any",
"shape": {
"format": "svg-path",
"scale": 10,
"path": "M 6593.5735,15977.848 4686.6782,9466.5001 17754.607,11543.287 Z"
}
},
{
"id": 4,
"materialId": 1,
"length": 900,
"width": 700,
"quantity": 1,
"structure": ["byLength", "byWidth", "none"],
"surplus": 0,
"rotationStep": "30deg",
"shapeType": "L",
"shape": {
"vertLength": 500,
"horzLength": 300,
"recessedCorner": "topLeft"
}
},
{
"id": 5,
"materialId": 1,
"length": 500,
"width": 300,
"quantity": 8,
"structure": ["byLength", "byWidth", "none"],
"surplus": 0,
"rotationStep": "30deg",
"shapeType": "trapezoid",
"shape": {
"leftSlopeLength": 200,
"rightSlopeLength": 100
}
},
{
"id": 6,
"materialId": 1,
"length": 180,
"width": 180,
"quantity": 8,
"structure": ["byLength", "byWidth", "none"],
"surplus": 20,
"rotationStep": "30deg",
"shapeType": "circle",
"shape": {
"variant": "3/4"
}
},
{
"id": 7,
"length": 900,
"width": 900,
"quantity": 2,
"materialId": 1,
"rotationStep": "0deg",
"shapeType": "ring",
"shape": {
"innerRadius": 410
}
},
{
"id": 8,
"materialId": 1,
"length": 180,
"width": 140,
"quantity": 16,
"structure": ["byLength", "byWidth", "none"],
"rotationStep": "30deg"
}
],
"stock": [
{
"id": 1,
"materialId": 1,
"length": 2245,
"width": 3210,
"quantity": 1,
"structure": "none",
"priority": "normal",
"description": "",
"edging": {
"left": 20,
"right": 20,
"top": 20,
"bottom": 20
},
"defects": [
{
"x": 300,
"y": 600,
"length": 200,
"width": 100
}
]
},
{
"id": 2,
"materialId": 1,
"length": 2245,
"width": 3210,
"quantity": 1,
"structure": "none",
"priority": "low",
"description": "",
"edging": {
"left": 20,
"right": 20,
"top": 20,
"bottom": 20
}
}
]
}
{
"version": 3,
"defaultUnits": {
"length": "mm",
"field": "sqmm",
"angle": "rad"
},
"statistics": {
"2d": {
"field": 7206450,
"usedField": 4693641.6838,
"wasteField": 2512808.3162,
"unusedField": 0,
"cutCount": 208,
"cutsLength": 58002.780250133845
},
"1d": {
"length": 0,
"usedLength": 0,
"wasteLength": 0,
"unusedLength": 0,
"cutCount": 0,
"cutsLength": 0
}
},
"cuttings": [
{
"stockItemId": 1,
"quantity": 1,
"cost": 0,
"gain": 0,
"statistics": {
"2d": {
"field": 7206450,
"usedField": 4693641.6838,
"wasteField": 2512808.3162,
"unusedField": 0,
"cutCount": 208,
"cutsLength": 58002.780250133845
}
},
"pieces": [
{
"pieceId": 2,
"x": 500,
"y": 20,
"rotation": "0.000000rad",
"shape": "M0,0 L122000,0 L122000,74000 L0,74000 Z ",
"bbox": {
"length": 1220,
"width": 740
}
},
{
"pieceId": 5,
"x": 164,
"y": 526.97,
"rotation": "4.712389rad",
"shape": "M0.000238497610553168,-20000 L0.000476995221106336,-40000 L30000,-50000 L30000,0.000357746408553794 Z ",
"bbox": {
"length": 500,
"width": 300
}
},
{
"pieceId": 5,
"x": 2056,
"y": 526.97,
"rotation": "1.570796rad",
"shape": "M-0.000874227785971016,-20000 L-0.00174845557194203,-40000 L-30000.001953125,-50000 L-30000,0.00131134164985269 Z ",
"bbox": {
"length": 500,
"width": 300
}
},
{
"pieceId": 5,
"x": 2372.87,
"y": 559.36,
"rotation": "2.617994rad",
"shape": "M-17320.5078125,10000.0009765625 L-34641.015625,20000.001953125 L-58301.26953125,-980.758666992188 L-15000.001953125,-25980.76171875 Z ",
"bbox": {
"length": 500,
"width": 300
}
}
],
"rest": [],
"cuts": [
{
"type": "line",
"startX": 500,
"startY": 20,
"endX": 1720,
"endY": 20,
"needShift": false
},
{
"type": "line",
"startX": 1720,
"startY": 20,
"endX": 1720,
"endY": 760,
"needShift": false
},
{
"type": "curve",
"startX": 1462.42,
"startY": 1656,
"startXp": 1235.98,
"startYp": 1656,
"endXp": 1052.42,
"endYp": 1472.44,
"endX": 1052.42,
"endY": 1246,
"needShift": false
},
{
"type": "curve",
"startX": 1052.42,
"startY": 1246,
"startXp": 1052.42,
"startYp": 1019.56,
"endXp": 1235.98,
"endYp": 836,
"endX": 1462.42,
"endY": 836,
"needShift": false
}
]
}
]
}
服务器版本允许使用基于Websocket协议的简易便捷的API进行通信。
服务器和客户端之间交换的所有消息均以JSON格式保存。
示例命令:
{ "cmd":"cmdListJobs","id":9222}
示例响应:
{ "id":9222,"jobs":[{ "id":1,"state":"sDone","progress":100,"combinationCount":1042885,"createDate":"2023-04-18T12:31:43.133+02:00","startDate":"2023-04-18T12:31:43.166+02:00","endDate":"2023-04-18T12:31:44.739+02:00"}],"success":true}
示例事件:
{ "event":"JobProgress","jobId":1,"progress":74,"combinationCount":668878}
命令发送给服务器。示例命令包括"add job"、"get list of jobs"、"get status"、"get job data"等。
服务器发送响应给客户端。 根据命令的类型,响应可能具有不同的格式。
服务器还自行发送各种事件,如"job added"、"optimization progress"、"optimization completed"等。
该程序一次只能执行一次优化。 在此期间,可以接受新的作业优化,但将按照添加的顺序排队并依次执行。
每个作业任务都是一个单独的优化订单。 作业任务是相互独立的,包含一整套输入数据,即工件、库存、材料组、饰面和切割设备。
结果包括所有切割。每次切割包括工件和废料的处理,以及切割列表。