异形件-服装切割
创建任务
创建二维切割-异形件-服装切割任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取。
URI
POST /v2/{project_id}/optverse/irregular-textile/tasks
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
用户项目ID,获取方法请参见获取项目ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户凭证。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
input_json |
是 |
object |
任务输入信息,json格式,具体数据结构参见IrregularTextileInputJson。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
是 |
String |
任务id,用于取回排料结果时使用。 |
order |
是 |
String |
订单名。 |
name |
是 |
String |
此床的名字。 |
time |
是 |
Integer |
运行时间,单位:分钟,取值范围[1,30] |
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 |
任务编号。 |
请求示例
{ "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 |
obs_input_url |
String |
Obs桶中输入文件地址,当前为null |
obs_output_url |
String |
Obs桶中输出文件地址,当前为null |
status |
String |
任务运行状态。(Pending,Running, Failed, Succeeded) |
progress |
String |
任务进度,当前为null |
output_json |
任务处理结果,json格式,任务状态为finished时携带。具体数据结构参见IrregularTextileResultDetail |
|
output_file_base64 |
String |
当前为null |
start_time |
String |
任务开始时间 |
end_time |
String |
任务结束时间 |
create_time |
String |
任务创建时间 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
任务编号。 |
time |
Double |
任务运行时长,单位秒。 |
ratio |
Double |
排版利用率 |
order |
String |
订单名。 |
length |
Double |
使用面料长度。 |
pieces |
裁片排版位置定义。 |
响应示例
状态码: 200
OK
{ "task_id": "37210xxxxxx511edb57c0255acxxxxxx", "input_json": null, "obs_input_url": null, "obs_output_url": 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 } "output_file_base64": null, "start_time": "2023-10-16T13:24:14Z", "end_time": "2023-10-16T13:25:18Z", "create_time": "2023-10-16T13:24:13.858Z" }