异形件-服装切割
创建任务
创建二维切割-异形件-服装切割任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取。
URI
POST /v2/{project_id}/optverse/irregular-textile/tasks
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
project_id |
是 |
String |
用户项目ID,获取方法请参见获取项目ID。 |
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Content-Type |
是 |
String |
该字段填为“application/json”。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
id |
是 |
String |
任务id,用于取回排料结果时使用。 |
|
order |
是 |
String |
订单名。 |
|
name |
是 |
String |
此床的名字。 |
|
time_limit |
是 |
Double |
运行时间,单位:秒,取值范围(0, 1800] |
|
gap_mode |
否 |
Integer,枚举 |
间隙处理模式。备用,当前不支持。[0,1] |
|
overlap |
否 |
Double |
两列之间交错的程度,0表示整齐的边界;[0, 100000] |
|
fabric |
是 |
面料属性。 |
|
|
polygon |
是 |
简单多边形定义。 |
|
|
piece |
是 |
裁片定义。 |
|
|
hole |
否 |
面料瑕疵定义,详细定义见下文。 |
|
|
constraints |
否 |
其他约束定义。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
width |
是 |
Double |
面料宽度。保留1位小数,若超过将直接进行截断。(0, 100000] |
|
grid_x |
否 |
Double |
面料x轴防线格子宽度,若无设置为0;保留1位小数,若超过将直接进行截断。备用,当前不支持。[0, 100000] |
|
grid_y |
否 |
Double |
面料y轴方向格子宽度,若无设置为0;保留1位小数,若超过将直接进行截断。备用,当前不支持。[0, 100000] |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
index |
是 |
Integer |
多边形id,从0开始,依次递增。 |
|
profile |
是 |
Array of double |
简单多边形轮廓点,逆时针排序,x、y轴坐标依次排序展开,元素取值范围[-100000, 100000],保留1位小数,超过将直接进行截断;要求元素个数至少为6,且为偶数。[-100000, 100000] |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
index |
是 |
Integer |
裁片id,从0开始,依次递增,用于在输出数据gap_index中使用。(>=0) |
|
polygon_index |
是 |
Integer |
实体多边形(裁片轮廓)在”polygon”向量中的index。(>=0) |
|
gap_index |
否 |
Integer |
间隔多边形(加上最小间隔的裁片轮廓)在”polygon”向量中的index,-1表示没有间隔。备用,当前不支持。(>=-1) |
|
hole_index |
否 |
Integer |
裁片内部孔洞在在”polygon”向量中的index,-1表示没有孔洞。备用,当前不支持。(>=-1) |
|
tilted |
否 |
Double |
微小旋转角度,原旋转角度(由属性rot获得)+-此数值后的获得旋转角度也作为裁片可旋转角度。通过此方法获得旋转角度不考虑裁片翻转。0表示禁止旋转;保留1位小数,若超过将直接进行截断。[0,15] |
|
gap |
否 |
Double |
裁片之间的间隔,对于不支持间隔多边形的算法有效;保留1位小数,若超过将直接进行截断。备用,当前不支持。[0, 100000] |
|
pose_group |
否 |
Integer |
姿态Y约束分组标记,-1表示没有姿态Y约束。若有分组,同一组的裁片要求其旋转和翻转集合相同。当前不支持部分裁片分组,部分裁片不分组(>=-1) |
|
column_group |
否 |
Integer |
列分组标记,-1表示不分列排版。当前不支持部分裁片分组,部分裁片不分组。(>=-1) |
|
rot |
是 |
Double 枚举 |
裁片可旋转角度倍数。(0,90,180) |
|
flip_x |
是 |
Integer 枚举 |
1表示允许裁片沿x轴翻转,0表示禁止。(0,1) |
|
flip_y |
是 |
Integer枚举 |
1表示允许裁片沿y轴翻转,0表示禁止。(0,1) |
|
remark |
否 |
String |
备注信息 |
|
y |
否 |
不同翻转情形的裁片Y约束。若某翻转情形没有定义,采用不发生翻转的情况,即flip_x=0,flip_y=0。元素个数最多为4;y约束具体场景要和piece中的rot、flip_x、flip_y属性有相关约束,详细要求见备注4; |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
flip_x |
是 |
Integer 枚举 |
裁片是否沿x轴翻转,0表示不翻转,1表示翻转。(0,1) |
|
flip_y |
是 |
Integer 枚举 |
裁片是否沿y轴翻转,0表示不翻转,1表示翻转。(0,1) |
|
min_y |
是 |
Double |
裁片的包络矩形下边界在布料中的最小y坐标;保留1位小数,若超过将直接进行截断;该值要小于布料宽度。[0, 100000] |
|
max_y |
是 |
Double |
片的包络矩形上边界在布料中的最大y坐标;保留1位小数,若超过将直接进行截断;该值要大于min_y,并且小于等于布料宽度。(0, 100000] |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
polygon_index |
是 |
Integer |
实体多边形(裁片轮廓)在”polygon”向量中的index。(>=0) |
|
gap_index |
否 |
Integer |
间隔多边形(加上最小间隔的裁片轮廓)在”polygon”向量中的index,-1表示没有间隔。备用,当前不支持。(>=-1) |
|
id |
是 |
Integer |
-1表示真的瑕疵,>=0表示实际上被锁定的裁片;对于锁定裁片,id从0开始,注意,此时piece->id值需要顺延Hole->id值。(>=-1) |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
grid |
否 |
Object |
定义单一裁片自身的对格约束。备用,当前不支持。 |
|
grid2 |
否 |
Object |
定义两个裁片之间的对格约束。备用,当前不支持。 |
|
position |
否 |
表3-6 object |
相邻约束,表征多个裁片的相对位置关系近似不变,使得多个裁片的参考点在指定的矩形区域内。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
x |
是 |
Double |
相邻约束中矩形区域的x轴长度;保留1位小数,若超过将直接进行截断。 |
|
y |
是 |
Double |
定义两个裁片之间的对格约束。备用,当前不支持。 |
|
piece |
否 |
相邻约束,表征多个裁片的相对位置关系近似不变,使得多个裁片的参考点在指定的矩形区域内。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
index |
是 |
Integer |
裁片id。 |
|
x |
是 |
Double |
裁片参考点x坐标;保留1位小数,若超过将直接进行截断。[-100000, 100000] |
|
y |
是 |
Double |
裁片参考点y坐标;保留1位小数,若超过将直接进行截断。[-100000, 100000] |
响应参数
状态码: 201
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
task_id |
String |
任务编号。 |
|
create_time |
String |
任务创建时间 |
|
estimated_start_time |
String |
预估开始时间 |
|
status |
String |
任务状态,包括:
|
请求示例
{
"input_json": {
"id": "fu",
"order": "fu",
"name": "fu",
"time": 1,
"gap_mode": 0,
"overlap": 0,
"fabric": {
"width": 38,
"grid_x": 0,
"grid_y": 0
},
"polygon": [
{
"index": 0,
"profile": [
0.0,
0.0,
10.0,
0.0,
10.0,
10.0,
0.0,
10.0
]
},
{
"index": 1,
"profile": [
0.0,
0.0,
10.0,
0.0,
10.0,
10.0,
0.0,
10.0
]
},
{
"index": 2,
"profile": [
0.0,
0.0,
14.0,
0.0,
14.0,
9.0,
0.0,
9.0
]
},
{
"index": 3,
"profile": [
0.0,
0.0,
14.0,
0.0,
7.0,
7.0
]
},
{
"index": 4,
"profile": [
0.0,
9.0,
0.0,
0.0,
14.0,
9.0
]
},
{
"index": 5,
"profile": [
0.0,
0.0,
14.0,
0.0,
14.0,
14.0,
0.0,
14.0
]
},
{
"index": 6,
"profile": [
0.0,
0.0,
10.0,
4.0,
10.0,
9.0,
0.0,
9.0
]
},
{
"index": 7,
"profile": [
0.0,
0.0,
5.0,
0.0,
5.0,
9.0,
0.0,
9.0
]
},
{
"index": 8,
"profile": [
0.0,
0.0,
14.0,
0.0,
14.0,
14.0
]
},
{
"index": 9,
"profile": [
0.0,
0.0,
10.0,
0.0,
10.0,
10.0,
0.0,
14.0
]
},
{
"index": 10,
"profile": [
0.0,
8.0,
4.0,
0.0,
8.0,
8.0
]
},
{
"index": 11,
"profile": [
0.0,
0.0,
14.0,
0.0,
7.0,
12.0
]
}
],
"piece": [
{
"id": 0,
"polygon_index": 0,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 1,
"polygon_index": 1,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 2,
"polygon_index": 2,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 3,
"polygon_index": 3,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 4,
"polygon_index": 4,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 5,
"polygon_index": 5,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 6,
"polygon_index": 6,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 7,
"polygon_index": 7,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 8,
"polygon_index": 8,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 9,
"polygon_index": 9,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 10,
"polygon_index": 10,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
},
{
"id": 11,
"polygon_index": 11,
"gap_index": -1,
"hole_index": -1,
"tilted": 0,
"gap": 0,
"pose_group": -1,
"column_group": -1,
"rot": 90,
"flip_x": 0,
"flip_y": 0,
"remark": "no Y constraints",
"y": []
}
],
"hole": [],
"constraints": {}
}
}
响应示例
状态码: 201
OK
{
"task_id": "ee47xxxxxxc211edba900255acxxxxxx"
}
查询任务
该API用于查询并显示异形件-服装切割任务详情。
URI
GET /v2/{project_id}/optverse/irregular-textile/tasks/{task_id}
响应参数
状态码: 200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
task_id |
String |
任务编号。 |
|
input_json |
String |
输入数据,当前为null |
|
status |
String |
任务状态,包括:
|
|
progress |
String |
返回任务进度,包括: - curr_ratio: 料率 - curr_length: 长度 - remain_time: 剩余时间 |
|
output_json |
Array of objects |
任务处理结果,json格式,任务状态为finished时携带。具体数据结构参见IrregularTextileResultDetail |
|
estimated_start_time |
String |
预估开始时间 |
|
start_time |
String |
任务开始时间 |
|
end_time |
String |
任务结束时间 |
|
create_time |
String |
任务创建时间 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
id |
String |
任务编号。 |
|
time_limit |
Double |
任务运行时长,单位秒。 |
|
ratio |
Double |
排版利用率 |
|
order |
String |
订单名。 |
|
length |
Double |
使用面料长度。 |
|
pieces |
裁片排版位置定义。 |
{
"task_id": "37210xxxxxx511edb57c0255acxxxxxx",
"input_json": null,
"status": "Succeeded",
"progress": null,
"output_json": {
"gap_mode": 0,
"id": "fu",
"length": 14.0,
"name": "fu",
"order": "fu",
"pieces": [
{
"angle": 180.0,
"box": [
{
"x": 1.110223024560533e-16,
"y": 188.54000844217342
},
{
"x": 10.0,
"y": 202.54000844217342
}
],
"flip_x": 0,
"flip_y": 0,
"id": 9
},
{
"angle": 90.0,
"box": [
{
"x": 1.110223024560533e-16,
"y": 180.54018862422214
},
{
"x": 9.0,
"y": 190.54018862422214
}
],
"flip_x": 0,
"flip_y": 0,
"id": 6
},
{
"angle": 90.0,
"box": [
{
"x": 1.1102230246251565e-16,
"y": 251.65141900241923
},
{
"x": 9.0,
"y": 265.65141900241923
}
],
"flip_x": 0,
"flip_y": 0,
"id": 2
},
{
"angle": 0.0,
"box": [
{
"x": 1.110223024560533e-16,
"y": 216.54000844217342
},
{
"x": 5.0,
"y": 225.54000844217342
}
],
"flip_x": 0,
"flip_y": 0,
"id": 7
},
{
"angle": 180.0,
"box": [
{
"x": 1.1101552619893762e-16,
"y": 24.0
},
{
"x": 8.0,
"y": 32.0
}
],
"flip_x": 0,
"flip_y": 0,
"id": 10
},
{
"angle": 270.0,
"box": [
{
"x": 5.551115123125783e-17,
"y": 0.0
},
{
"x": 10.0,
"y": 10.0
}
],
"flip_x": 0,
"flip_y": 0,
"id": 1
},
{
"angle": 90.0,
"box": [
{
"x": 0.0,
"y": 10.0
},
{
"x": 12.0,
"y": 24.0
}
],
"flip_x": 0,
"flip_y": 0,
"id": 11
},
{
"angle": 90.0,
"box": [
{
"x": 1.1102230246251565e-16,
"y": 237.65161696798242
},
{
"x": 14.0,
"y": 251.65161696798242
}
],
"flip_x": 0,
"flip_y": 0,
"id": 5
},
{
"angle": 180.0,
"box": [
{
"x": 1.1102230246251565e-16,
"y": 49.51013170928303
},
{
"x": 10.0,
"y": 59.51013170928303
}
],
"flip_x": 0,
"flip_y": 0,
"id": 0
},
{
"angle": 270.0,
"box": [
{
"x": 1.110223024560533e-16,
"y": 202.54000844217342
},
{
"x": 7.0,
"y": 216.54000844217342
}
],
"flip_x": 0,
"flip_y": 0,
"id": 3
},
{
"angle": 270.0,
"box": [
{
"x": 1.1102230163533504e-16,
"y": 25.020263418566074
},
{
"x": 9.0,
"y": 39.020263418566074
}
],
"flip_x": 0,
"flip_y": 0,
"id": 4
},
{
"angle": 0.0,
"box": [
{
"x": 1.110214554295684e-16,
"y": 166.54018862422214
},
{
"x": 14.0,
"y": 180.54018862422214
}
],
"flip_x": 0,
"flip_y": 0,
"id": 8
}
],
"ratio": 0.75,
"time": 1
},
"estimated_start_time": "2025-08-08T09:48:51.984Z",
"start_time": "2023-10-16T13:24:14Z",
"end_time": "2023-10-16T13:25:18Z",
"create_time": "2023-10-16T13:24:13.858Z"
}