更新时间:2024-12-02 GMT+08:00
分享
异形件-服装切割

异形件-服装切割

创建任务

创建二维切割-异形件-服装切割任务, 该接口为异步操作,返回任务ID,任务的状态及结果请通过查询任务详情接口获取。

URI

POST /v2/{project_id}/optverse/irregular-textile/tasks

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

用户项目ID,获取方法请参见获取项目ID。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户凭证。

Array of 表10 objects

表3 请求Body参数

参数

是否必选

参数类型

描述

input_json

object

任务输入信息,json格式,具体数据结构参见IrregularTextileInputJson。

表4 IrregularTextileInputJson

参数

是否必选

参数类型

描述

id

String

任务id,用于取回排料结果时使用。

order

String

订单名。

name

String

此床的名字。

time

Integer

运行时间,单位:分钟,取值范围[1,30]

gap_mode

Integer,枚举

间隙处理模式。备用,当前不支持。[0,1]

overlap

Double

两列之间交错的程度,0表示整齐的边界;[0, 100000]

fabric

Array of 表5 objects

面料属性。

polygon

Array of 表6 objects

简单多边形定义。

piece

Array of 表7 objects

裁片定义。

hole

Array of 表9 objects

面料瑕疵定义,详细定义见下文。

constraints

Array of 表10 objects

其他约束定义。

表5 fabric

参数

是否必选

参数类型

描述

width

Double

面料宽度。保留1位小数,若超过将直接进行截断。(0, 100000]

grid_x

Double

面料x轴防线格子宽度,若无设置为0;保留1位小数,若超过将直接进行截断。备用,当前不支持。[0, 100000]

grid_y

Double

面料y轴方向格子宽度,若无设置为0;保留1位小数,若超过将直接进行截断。备用,当前不支持。[0, 100000]

表6 Polygon

参数

是否必选

参数类型

描述

index

Integer

多边形id,从0开始,依次递增。

profile

Array of double

简单多边形轮廓点,逆时针排序,x、y轴坐标依次排序展开,元素取值范围[-100000, 100000],保留1位小数,超过将直接进行截断;要求元素个数至少为6,且为偶数。[-100000, 100000]

表7 Piece

参数

是否必选

参数类型

描述

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

Array of 表8 object

不同翻转情形的裁片Y约束。若某翻转情形没有定义,采用不发生翻转的情况,即flip_x=0,flip_y=0。元素个数最多为4;y约束具体场景要和piece中的rot、flip_x、flip_y属性有相关约束,详细要求见备注4;

表8 y

参数

是否必选

参数类型

描述

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]

表9 Hole

参数

是否必选

参数类型

描述

polygon_index

Integer

实体多边形(裁片轮廓)在”polygon”向量中的index。(>=0)

gap_index

Integer

间隔多边形(加上最小间隔的裁片轮廓)在”polygon”向量中的index,-1表示没有间隔。备用,当前不支持。(>=-1)

id

Integer

-1表示真的瑕疵,>=0表示实际上被锁定的裁片;对于锁定裁片,id从0开始,注意,此时piece->id值需要顺延Hole->id值。(>=-1)

表10 Constraints

参数

是否必选

参数类型

描述

grid

Object

定义单一裁片自身的对格约束。备用,当前不支持

grid2

Object

定义两个裁片之间的对格约束。备用,当前不支持

position

表3-6 object

相邻约束,表征多个裁片的相对位置关系近似不变,使得多个裁片的参考点在指定的矩形区域内。

表11 Position

参数

是否必选

参数类型

描述

x

Double

相邻约束中矩形区域的x轴长度;保留1位小数,若超过将直接进行截断。

y

Double

定义两个裁片之间的对格约束。备用,当前不支持

piece

Array of 表7 objects

相邻约束,表征多个裁片的相对位置关系近似不变,使得多个裁片的参考点在指定的矩形区域内。

表12 Piece

参数

是否必选

参数类型

描述

index

Integer

裁片id。

x

Double

裁片参考点x坐标;保留1位小数,若超过将直接进行截断。[-100000, 100000]

y

Double

裁片参考点y坐标;保留1位小数,若超过将直接进行截断。[-100000, 100000]

响应参数

状态码: 201

表13 响应Body参数

参数

参数类型

描述

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

表14 响应Body参数

参数

参数类型

描述

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

Array of 表4 objects

任务处理结果,json格式,任务状态为finished时携带。具体数据结构参见IrregularTextileResultDetail

output_file_base64

String

当前为null

start_time

String

任务开始时间

end_time

String

任务结束时间

create_time

String

任务创建时间

表15 IrregularTextileResultDetail

参数

参数类型

描述

id

String

任务编号。

time

Double

任务运行时长,单位秒。

ratio

Double

排版利用率

order

String

订单名。

length

Double

使用面料长度。

pieces

Array of 表5 objects

裁片排版位置定义。

表16 Piece

参数

参数类型

描述

id

String

裁片id。

angle

Double

裁片旋转角度。

flip_x

Integer

裁片是否沿x轴翻转。

flip_y

Integer

裁片是否沿y轴翻转。

box

Array of 表6 objects

裁片先旋转再翻转后放入指定位置形成的包络矩形,由矩形左底点和右上点表示。

表17 box

参数

参数类型

描述

x

Double

二维点x轴坐标。

y

Double

二维点y轴坐标。

响应示例

状态码: 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"
}

相关文档