确定货物包装方式的方法、装置及存储介质和电子设备与流程

文档序号:29406953发布日期:2022-03-26 10:52阅读:160来源:国知局
确定货物包装方式的方法、装置及存储介质和电子设备与流程

1.本发明涉及仓储物流及计算机技术领域,尤其涉及确定货物包装方式的方法、装置及可读存储介质和电子设备。


背景技术:

2.随着在线交易的发展,需要对大量的货物进行包装后传输。目前对货物的包装方式有两种:一种是采用袋装,另一种是采用箱装。前者通常适用于体积较小、重量较轻且无固定形状的货物;后者通常适用于体积较大、重量较重且有固定形状的货物。
3.在采用箱装方式时,选择何种尺寸的箱子、以及在货物数量较多时如何在箱体内部摆放货物,以达到包装成本最低且运输最安全,是亟待解决的问题。


技术实现要素:

4.本发明实施例提出确定货物包装方式的方法、装置及可读存储介质和电子设备,以降低货物包装成本并提高包装体的运输安全性。
5.本发明实施例的技术方案是这样实现的:
6.一种确定货物包装方式的方法,该方法包括:
7.获取第一订单,所述第一订单中包含至少一个货物的尺寸;
8.以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸。
9.所述以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸,包括:
10.定义一个长方体的虚拟箱子,根据第一订单中的货物的尺寸,确定该虚拟箱子的当前尺寸;
11.按照货物尺寸从大到小的顺序,模拟将第一订单内的各货物依次放入所述虚拟箱子,且,在所述虚拟箱子内模拟摆放各货物时,按照从左至右、从下往上的顺序依次摆放,且,各货物的最长边与所述虚拟箱子的最长边平行、各货物的次长边与所述虚拟箱子的次长边平行。
12.根据第一订单中的货物的尺寸,确定该虚拟箱子的当前尺寸,包括:
13.根据第一订单中的最长货物的长度和最宽货物的宽度,确定该虚拟箱子的当前尺寸;
14.所述确定该虚拟箱子的当前尺寸之后、模拟将第一订单内的各货物依次放入所述虚拟箱子之前,进一步包括:
15.定义所述虚拟箱子坐标系为:虚拟箱子的最长边与次长边的交点为虚拟箱子坐标系的原点o,起点为o的最长边为x轴,起点为o的次长边为y轴,与xoy平面垂直且起点为o的最短边为z轴;
16.且,定义货物坐标系为:货物的最长边与次长边的交点为货物坐标系的原点o',起
点为o'的最长边为x'轴,起点为o'的次长边为y'轴,与x'o'y'平面垂直且起点为o'的最短边为z'轴;
17.所述按照货物尺寸从大到小的顺序,模拟将第一订单内的各货物依次放入所述虚拟箱子,且,在所述虚拟箱子内模拟摆放各货物时,按照从左至右、从下往上的顺序依次摆放,且,各货物的最长边与所述虚拟箱子的最长边平行、各货物的次长边与所述虚拟箱子的次长边平行,包括:
18.第一步:模拟从第一订单内的货物中选择体积最大的货物作为第一货物,将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合;
19.第二步:模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物;
20.第三步:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与xoy平面平行的外露面,对所选择的与xoy平面平行的各外露面按照距离xoy平面的由近及远进行排序,得到第一外露面集合,从第一外露面集合中选择排在最前面的外露面,将该排在最前面的外露面所在平面作为当前参考平面;
21.第四步:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与yoz平面平行的外露面,对所选择的与yoz平面平行的各外露面按照距离yoz平面的由远及近进行排序,得到第二外露面集合,从第二外露面集合中选择排在最前面的外露面,在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点;
22.第五步:模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行;
23.第六步:返回第二步,直至第一订单内的所有货物都已模拟放入虚拟箱子,将此时虚拟箱子的尺寸作为最终为第一订单选择的包装箱子的尺寸。
24.所述第四步中,所述在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点之后,进一步包括:
25.将该排在最前面的外露面从第二外露面集合中删除,得到更新后的第二外露面集合;
26.且,所述第五步之后、第六步之前,进一步包括:
27.若检测到无法将第二货物放入虚拟箱子,返回第四步中的从第二外露面集合中选择排在最前面的外露面的动作;且,
28.若检测到第二货物能放入虚拟箱子,则删除第二外露面集合,然后执行第六步。
29.所述第三步中,所述将该排在最前面的外露面所在平面作为当前参考平面之后,进一步包括:
30.将该排在最前面的外露面从第一外露面集合中删除,得到更新后的第一外露面集合;
31.且,所述第五步之后、第六步之前,若检测到无法将第二货物放入虚拟箱子,返回第四步中的从第二外露面集合中选择排在最前面的外露面的动作之前,进一步包括:
32.若发现第二外露面集合为空,则删除第二外露面集合,并返回第三步中的从第一
外露面集合中选择排在最前面的外露面的动作。
33.所述第五步之后、第六步之前,若检测到无法将第二货物放入虚拟箱子,返回第三步中的从第一外露面集合中选择排在最前面的外露面的动作之前,进一步包括:
34.若发现第一外露面集合为空,则删除第一外露面集合,并确定虚拟箱子的当前尺寸不够,将虚拟箱子的当前尺寸扩大后,返回第一步。
35.所述第六步中,所述直至第一订单内的所有货物都已模拟放入虚拟箱子之后,进一步包括:
36.判断虚拟箱子的剩余空间的大小是否大于预设冗余空间的大小,若否,则将虚拟箱子的当前尺寸扩大后,返回第一步。
37.所述第一步中,所述模拟从第一订单内的货物中选择体积最大的货物作为第一货物之后、所述模拟将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合之前,进一步包括:
38.判断第一货物的x'轴或/和y'轴或/和z'轴在虚拟箱子中的摆放方向是否有指定方向,若是,按照指定方向模拟摆放第一货物的x'轴或/和y'轴或/和z'轴;且,若没有指定方向,则执行所述模拟将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合的动作;
39.或/和,所述第五步中,所述模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行之前,进一步包括:
40.判断第二货物的x'轴或/和y'轴或/和z'轴在虚拟箱子中的摆放方向是否有指定方向,若是,按照指向方向模拟摆放第二货物的x'轴或/和y'轴或/和z'轴;且,若没有指定方向,则执行所述模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行的动作。
41.所述第一步中,所述模拟从第一订单内的货物中选择体积最大的货物作为第一货物之前,进一步包括:
42.判断第一订单内的各货物的装箱顺序是否有指定顺序,若是,则按照指定顺序,模拟选择排在最前面的货物作为第一货物;且,若没有指定顺序,则执行所述模拟从第一订单内的货物中选择体积最大的货物作为第一货物的动作;
43.所述第二步中,所述模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物之前,进一步包括:
44.判断第一订单内的各货物的装箱顺序是否有指定顺序,若是,则按照指定顺序,模拟在第一订单内还未放入虚拟箱子的货物中选择排在最前面的货物作为第二货物;且,若没有指定顺序,则执行所述模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物的动作。
45.所述根据第一订单中的最长货物的长度和最宽货物的宽度,确定该虚拟箱子的当前尺寸,包括:
46.在第一订单内的各货物的长边中,选择最长的长边;
47.在第一订单内的各货物的宽边中,选择最宽的宽边;
48.将所述最长的长边的长乘以第一指定系数,得到虚拟箱子的长边的参考长度;
49.将所述最宽的宽边的宽乘以第二指定系数,得到虚拟箱子的宽边的参考宽度;
50.根据所述参考长度和所述参考宽度,确定虚拟箱子的当前尺寸;
51.其中,第一指定系数和第二指定系数等于或大于1。
52.一种确定货物包装方式的装置,该装置包括:
53.订单获取模块,用于获取第一订单,所述第一订单中包含至少一个货物的尺寸;
54.包装计算模块,用于以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸。
55.一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上任一项所述的确定货物包装方式的方法的步骤。
56.一种电子设备,包括如上所述的非瞬时计算机可读存储介质、以及可访问所述非瞬时计算机可读存储介质的所述处理器。
57.本发明实施例中,以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸,从而降低了货物包装成本并提高了包装体的运输安全性。
附图说明
58.图1为本发明一实施例提供的确定货物包装方式的方法流程图;
59.图2为本发明另一实施例提供的确定货物包装方式的方法流程图;
60.图3为本发明实施例提供的虚拟箱子坐标系和货物坐标系的示意图;
61.图4为本发明实施例提供的已装有两件货物的虚拟箱子的箱体的示意图;
62.图5为本发明又一实施例提供的确定货物包装方式的方法流程图;
63.图6为本发明又一实施例提供的确定货物包装方式的方法流程图;
64.图7为本发明一实施例提供的确定货物包装方式的装置的结构示意图;
65.图8为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
66.下面结合附图及具体实施例对本发明再作进一步详细的说明。
67.图1为本发明一实施例提供的确定货物包装方式的方法流程图,其具体步骤如下:
68.步骤101:获取第一订单,第一订单中包含至少一个货物的尺寸。其中,第一订单为任一订单。
69.步骤102:以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸。
70.通过上述实施例,以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸,从而降低了货物包装成本并提高了包装体的运输安全性。
71.一可选实施例中,步骤102具体包括:定义一个长方体的虚拟箱子,根据第一订单中的货物的尺寸,确定该虚拟箱子的当前尺寸;按照货物尺寸从大到小的顺序,模拟将第一订单内的各货物依次放入虚拟箱子,且,在虚拟箱子内模拟摆放各货物时,按照从左至右、
从下往上的顺序依次摆放,且,各货物的最长边与虚拟箱子的最长边平行、各货物的次长边与虚拟箱子的次长边平行。
72.图2为本发明另一实施例提供的确定货物包装方式的方法流程图,其具体步骤如下:
73.步骤201:获取第一订单,第一订单中包含至少一个货物的尺寸。
74.在实际应用中,在步骤201之后,还可进一步根据第一订单包含的各货物的类型,确定选择袋子还是箱子对货物进行包装。若确定选择箱子进行包装,则执行步骤202。
75.在实际应用中,可根据货物的特性如:重量、价值、是否带电、是否易碎、或/和是否能淋雨等,选择采用袋子还是箱子,以及采用的袋子或箱子的材质。
76.步骤202:定义一个长方体的虚拟箱子,根据第一订单内的最长货物和最宽货物的尺寸,确定虚拟箱子的当前尺寸;且,定义虚拟箱子坐标系为:虚拟箱子的最长边与次长边的交点为虚拟箱子坐标系的原点o,起点为o的最长边为x轴,起点为o的次长边为y轴,与xoy平面垂直且起点为o的最短边为z轴;定义货物坐标系为:货物的最长边与次长边的交点为货物坐标系的原点o',起点为o'的最长边为x'轴,起点为o'的次长边为y'轴,与x'o'y'平面垂直且起点为o'的最短边为z'轴。图3给出了本发明实施例定义的虚拟箱子坐标系和货物坐标系的示意图。其中,左图为虚拟箱子坐标系,右图为货物坐标系。
77.步骤203:模拟从第一订单内的货物中选择体积最大的货物作为第一货物,将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合。
78.其中,第一订单内的各货物都以能够包含该货物的最小长方体表示,该最小长方体的长、宽、高分别代表对应货物的长、宽、高,该最小长方体的体积即代表对应货物的体积。
79.由于本技术实施例是要寻求一个箱子,以将第一订单内的货物装入该箱子时,使得总包装体积最小。因此,本技术实施例中提到的对货物的操作都是模拟操作。
80.步骤204:模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物。
81.步骤205:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与xoy平面平行的外露面,对所选择的与xoy平面平行的各外露面按照距离xoy平面的由近及远进行排序,得到第一外露面集合,从第一外露面集合中选择排在最前面的外露面,将该排在最前面的外露面所在平面作为当前参考平面。
82.与xoy平面平行的各外露面中,可能存在一组或多组与xoy平面距离相等的外露面,对于每组与xoy平面距离相等的外露面,只在该组中选择一个外露面放入第一外露面集合即可。
83.位于虚拟箱子内的虚拟箱子的外露面为满足如下条件的面:该面为:虚拟箱子的一个内表面且该面不与任何货物的任何面贴合,或者为:虚拟箱子的一个内表面的一部分且该部分不与任何货物的任何面贴合;
84.位于虚拟箱子内的货物的外露面为满足如下条件的面:该面为:虚拟箱子内的一个货物的一个面且该面不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:一个货物的一个面的一部分且该部分不与虚拟箱子的任何内表面或者任何货物的任何面
贴合,或者为:位于同一平面上的多个货物的多个面的组合且该多个面的组合不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:位于同一平面上的多个货物的多个面的组合的一部分且该部分不与虚拟箱子的任何内表面或者任何货物的任何面贴合。
85.图4为已装有两件货物的虚拟箱子的箱体的示意图,如图4所示:
86.位于虚拟箱子内的虚拟箱子的外露面有:虚拟箱子内部位于yoz平面上的abihlea围成的部分(即位于虚拟箱子内的虚拟箱子的左侧面去掉货物1的左侧面后剩余的部分)、虚拟箱子内部位于xoy平面上的elmstugfe围成的部分(即虚拟箱子底面去掉货物1和货物2的底面后剩余的部分)、虚拟箱子内部位于xoz平面上的bcguqpgib围成的部分(即位于虚拟箱子内的虚拟箱子的后表面去掉货物1和货物2的后表面后剩余的部分)、虚拟箱子内的长方形adfe(即位于虚拟箱子内的虚拟箱子的前表面)、虚拟箱子内的长方形abcd(即位于虚拟箱子内的虚拟箱子的上表面)和虚拟箱子内的长方形cdfg(即位于虚拟箱子内的虚拟箱子的右侧面);其中,虚拟箱子内的左边的货物为货物1,右边的货物为货物2;这里,设定虚拟箱子为一个封闭箱子,即,其内部有6个表面:上、下、前、后和左、右表面。
87.位于虚拟箱子内的货物1的外露面有:货物1的上表面(即长方形higk)、货物1的前表面(即长方形hkml)、货物1的右侧面去掉货物2的左侧面后剩余的部分(即kgpnsmk围成的部分);
88.位于虚拟箱子内的货物2的外露面有:货物2的上表面(即长方形npqr)、货物2的前表面(即长方形nrts)和货物2的右侧面(即长方形rqut)。
89.如图4所示,第一外露面集合中依次包含3个外露面:虚拟箱子内部位于xoy平面上的elmstugfe围成的部分(即虚拟箱子底面去掉货物1和货物2的底面后剩余的部分)、货物2的上表面、货物1的上表面。
90.需要说明的是,位于虚拟箱子内的虚拟箱子的外露面中,虚拟箱子的上表面由于无法以该外露面为起点向z轴正向放置货物,因此该外露面不放入第一外露面集合中。
91.步骤206:模拟在位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与yoz平面平行的外露面,对所选择的与yoz平面平行的各外露面按照距离yoz平面的由远及近进行排序,得到第二外露面集合,从第二外露面集合中选择排在最前面的外露面,在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点。
92.如图4所示,第二外露面集合中依次包含3个外露面:货物2的右侧面、货物1的右侧面去掉货物2的左侧面后剩余的部分(即kgpnsmk围成的部分)、虚拟箱子内部位于yoz平面上的abihlea围成的部分(即位于虚拟箱子内的虚拟箱子的左侧面去掉货物1的左侧面后剩余的部分)。
93.需要说明的是,位于虚拟箱子内的虚拟箱子的外露面中,与yoz平面相对的外露面(如图4中的位于虚拟箱子内的虚拟箱子的右侧面cdfg)由于无法以该外露面为起点向x轴正向放置货物,因此该外露面不放入第二外露面集合中。
94.步骤207:模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行。
95.步骤208:返回步骤204,直至第一订单内的所有货物都已放入虚拟箱子,将此时虚拟箱子的尺寸作为最终为第一订单选择的包装箱子的尺寸。
96.上述实施例中,在向虚拟箱子放入货物时,放入顺序是按照体积的从大到小依次放入,从而能够更合理地利用虚拟箱子的空间;同时,货物的摆放姿态是:货物的最长边、次长边、最短边分别与虚拟箱子的最长边、次长边、最短边平行,从而进一步合理利用了虚拟箱子的空间;货物在虚拟箱子内的摆放位置是:先从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与xoy平面平行且距离xoy平面最近的外露面作为当前参考平面,然后从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与yoz平面平行且距离yoz平面最远的外露面,然后在该最远的外露面与参考平面的相交线上选择距离xoz平面最近的点作为当前参考点,再将第二货物的o'点与当前参考点重合,从而最大化地利用了虚拟箱子的剩余空间。
97.考虑到:按照步骤207,可能第二货物无法放入虚拟箱子,例如:第二货物的长边超过了参考平面上虚拟箱子的长边剩余的长度,或/和第二货物的次长边超过了参考平面上虚拟箱子的次长边剩余的长度,或/和第二货物的最短边(即高度)超过了虚拟箱子的最短边剩余的高度,此时,就需要调整第二货物在虚拟箱子中的摆放位置,具体如下:
98.图5为本发明又一实施例提供的确定货物包装方式的方法流程图,其具体步骤如下:
99.步骤501:获取第一订单,第一订单中包含至少一个货物的尺寸。
100.在实际应用中,在步骤501之后,还可进一步根据第一订单包含的各货物的类型,确定选择袋子还是箱子对货物进行包装。若确定选择箱子进行包装,则执行步骤502。
101.在实际应用中,可根据货物的特性如:重量、价值、是否带电、是否易碎、或/和是否能淋雨等,选择采用袋子还是箱子,以及采用的袋子或箱子的材质。
102.步骤502:定义一个长方体的虚拟箱子,根据第一订单内的最长货物和最宽货物的尺寸,确定虚拟箱子的当前尺寸;且,定义虚拟箱子坐标系为:虚拟箱子的最长边与次长边的交点为虚拟箱子坐标系的原点o,起点为o的最长边为x轴,起点为o的次长边为y轴,与xoy平面垂直且起点为o的最短边为z轴;定义货物坐标系为:货物的最长边与次长边的交点为货物坐标系的原点o',起点为o'的最长边为x'轴,起点为o'的次长边为y'轴,与x'o'y'平面垂直且起点为o'的最短边为z'轴。
103.步骤503:模拟从第一订单内的货物中选择体积最大的货物作为第一货物,将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合。
104.其中,第一订单内的各货物都以能够包含该货物的最小长方体表示,该最小长方体的长、宽、高分别代表对应货物的长、宽、高,该最小长方体的体积即代表对应货物的体积。
105.步骤504:模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物。
106.步骤505:模拟从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与xoy平面平行的外露面,对所选择的与xoy平面平行的各外露面按照距离xoy平面的由近及远进行排序,得到第一外露面集合。
107.与xoy平面平行的各外露面中,可能存在一组或多组与xoy平面距离相等的外露面,对于每组与xoy平面距离相等的外露面,只在该组中选择一个外露面放入第一外露面集
合即可。
108.位于虚拟箱子内的虚拟箱子的外露面为满足如下条件的面:该面为:虚拟箱子的一个内表面且该面不与任何货物的任何面贴合,或者为:虚拟箱子的一个内表面的一部分且该部分不与任何货物的任何面贴合;
109.位于虚拟箱子内的货物的外露面为满足如下条件的面:该面为:虚拟箱子内的一个货物的一个面且该面不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:一个货物的一个面的一部分且该部分不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:位于同一平面上的多个货物的多个面的组合且该组合不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:位于同一平面上的多个货物的多个面的组合的一部分且该部分不与虚拟箱子的任何内表面或者任何货物的任何面贴合。
110.步骤506:从第一外露面集合中选择排在最前面的外露面,将该排在最前面的外露面所在平面作为当前参考平面。
111.步骤507:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与yoz平面平行的外露面,对所选择的与yoz平面平行的各外露面按照距离yoz平面的由远及近进行排序,得到第二外露面集合。
112.步骤508:从第二外露面集合中选择排在最前面的外露面,在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点,然后将该排在最前面的外露面从第二外露面集合中删除,得到更新后的第二外露面集合。
113.步骤509:模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行。
114.步骤510:判断第二货物是否能成功放入虚拟箱子,若是,执行步骤511;否则,返回步骤508。
115.步骤511:删除第二外露面集合,返回步骤504,直至第一订单内的所有货物都已放入虚拟箱子,将此时虚拟箱子的尺寸作为最终为第一订单选择的包装箱子的尺寸。
116.上述实施例中,在虚拟箱子的剩余空间中依次从右向左(即沿着x轴向原点o方向)搜索能够放入货物的空间,从而最大化地利用了虚拟箱子的空间。
117.如图4所示,虚拟箱子内已有两个货物:货物1和货物2,要将货物3(即步骤504所述的第二货物)放入虚拟箱子,按照步骤505-506,当前参考平面即虚拟箱子底面所在的xoy平面;按照步骤507-508,第二外露面集合中排在最前面的外露面即,与yoz平面平行且距离yoz平面最远的外露面为货物2的右侧面,则当前参考点为u;按照步骤509,将货物3的原点o'与当前参考点u重合,将货物3的x'轴与虚拟箱子的x轴平行,将货物3的y'轴与虚拟箱子的y轴平行后,发现货物3无法放入虚拟箱子,则返回步骤508,重新从第二外露面集合中选择排在最前面的外露面即货物1的右侧面去掉货物2的左侧面后剩余的部分,得到更新后的当前参考点即s,再执行步骤509,发现货物3此时能够放入虚拟箱子。
118.考虑到:按照步骤510中,若无法将第二货物成功放入虚拟箱子,且第二外露面集合已空,即在当前参考平面下所有与yoz平面平行的外露面上的参考点都已尝试过,仍无法将第二货物放入虚拟箱子,则此时,需要调整参考平面,具体如下:
119.图6为本发明又一实施例提供的确定货物包装方式的方法流程图,其具体步骤如下:
120.步骤601:获取第一订单,第一订单中包含至少一个货物的尺寸。
121.在实际应用中,在步骤601之后,还可进一步根据第一订单包含的各货物的类型,确定选择袋子还是箱子对货物进行包装。若确定选择箱子进行包装,则执行步骤602。
122.一般地,快递运输要求一个运单只能是一个包裹,一个订单可以对应多个运单,但消费者一般不希望订单被拆分而多次收货,所以一个订单尽量只用一个箱子。
123.另外,对于某些特殊要求,例如:某类型的货物必须单独装袋或装箱,则若该类货物与其他类货物同在一个订单中,则将该类货物单独装袋或装箱,没有单独装袋或装箱要求的货物再另外装袋或装箱。
124.在实际应用中,可根据货物的特性如:重量、价值、是否带电、是否易碎、或/和是否能淋雨等,选择采用袋子还是箱子,以及采用的袋子或箱子的材质。
125.在实际应用中,可根据货物的特性如:是否带电、是否易碎、或/和是否能淋雨等,为货物设置安全等级,并设置每种安全等级对应的纸袋或纸箱的材质。对于一个订单内需要放入同一袋子或同一箱子的货物,根据安全等级最高的货物的安全等级,确定应该采用的袋子或箱子的材质。
126.步骤602:定义一个长方体的虚拟箱子,根据第一订单内的最长货物和最宽货物的尺寸,确定虚拟箱子的当前尺寸;且,定义虚拟箱子坐标系为:虚拟箱子的最长边与次长边的交点为虚拟箱子坐标系的原点o,起点为o的最长边为x轴,起点为o的次长边为y轴,与xoy平面垂直且起点为o的最短边为z轴;定义货物坐标系为:货物的最长边与次长边的交点为货物坐标系的原点o',起点为o'的最长边为x'轴,起点为o'的次长边为y'轴,与x'o'y'平面垂直且起点为o'的最短边为z'轴。
127.一可选实施例中,根据第一订单内的最长货物和最宽货物的尺寸,确定虚拟箱子的当前尺寸包括:在第一订单内的各货物的长边中,选择最长的长边;在第一订单内的各货物的宽边中,选择最宽的宽边;将最长的长边的长乘以第一指定系数,得到虚拟箱子的长边的参考长度;将最宽的宽边的宽乘以第二指定系数,得到虚拟箱子的宽边(即次长边)的参考宽度;根据参考长度和参考宽度,确定虚拟箱子的当前尺寸。其中,第一指定系数和第二指定系数等于或大于1。
128.在实际应用中,通常是在已有的几种箱子尺寸中选择所使用的箱子尺寸,则在得到参考长度和参考宽度后,根据参考长度和参考宽度在已有的箱子尺寸中选择最接近的尺寸即可。
129.进一步地,若箱子有不同材质的,则可根据货物的类型、或/和重量等,确定所采用的材质。
130.步骤603:模拟从第一订单内的货物中选择体积最大的货物作为第一货物,将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合。
131.其中,第一订单内的各货物都以能够包含该货物的最小长方体表示,该最小长方体的长、宽、高分别代表对应货物的长、宽、高,该最小长方体的体积即代表对应货物的体积。
132.步骤604:模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物。
133.步骤605:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与xoy平面平行的外露面,对所选择的与xoy平面平行的各外露面按照距离xoy平面的由近及远进行排序,得到第一外露面集合。
134.与xoy平面平行的各外露面中,可能存在一组或多组与xoy平面距离相等的外露面,对于每组与xoy平面距离相等的外露面,只在该组中选择一个外露面放入第一外露面集合即可。
135.位于虚拟箱子内的虚拟箱子的外露面为满足如下条件的面:该面为:虚拟箱子的一个内表面且该面不与任何货物的任何面贴合,或者为:虚拟箱子的一个内表面的一部分且该部分不与任何货物的任何面贴合;
136.位于虚拟箱子内的货物的外露面为满足如下条件的面:该面为:位于虚拟箱子内的一个货物的一个面且该面不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:一个货物的一个面的一部分且该部分不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:位于同一平面上的多个货物的多个面的组合且该组合不与虚拟箱子的任何内表面或者任何货物的任何面贴合,或者为:位于同一平面上的多个货物的多个面的组合的一部分且该部分不与虚拟箱子的任何内表面或者任何货物的任何面贴合。
137.步骤606:从第一外露面集合中选择排在最前面的外露面,将该排在最前面的外露面所在平面作为当前参考平面。
138.步骤607:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与yoz平面平行的外露面,对所选择的与yoz平面平行的各外露面按照距离yoz平面的由远及近进行排序,得到第二外露面集合。
139.步骤608:从第二外露面集合中选择排在最前面的外露面,在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点,然后将该排在最前面的外露面从第二外露面集合中删除,得到更新后的第二外露面集合。
140.步骤609:模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行。
141.步骤610:判断第二货物是否能成功放入虚拟箱子,若是,执行步骤612;否则,执行步骤611。
142.步骤611:判断第二外露面集合是否为空,若是,返回步骤606;否则,返回步骤608。
143.步骤612:删除第二外露面集合,返回步骤604,直至第一订单内的所有货物都已放入虚拟箱子,将此时虚拟箱子的尺寸作为最终为第一订单选择的箱子的尺寸。
144.上述实施例中,在虚拟箱子的剩余空间中依次从下向上(即沿着z轴从原点向z轴正向)搜索能够放入货物的空间,从而进一步最大化地利用了虚拟箱子的空间。
145.如图4所示,虚拟箱子内已有两个货物:货物1和货物2,要将货物3放入虚拟箱子,当前参考平面(即虚拟箱子的底面)与第二外露面集合相交的所有参考点(包括:u点、s点和l点)都已试过仍无法将货物3放入虚拟箱子,则重新通过步骤605-606选择出新的参考平面即,货物2的上表面所在的平面,在该新参考平面下,重新转入步骤607执行后续过程。
146.一可选实施例中,步骤611中判定第二外露面集合为空之后,返回步骤606之前,进一步包括:若发现第一外露面集合为空,则删除第一外露面集合,并确定虚拟箱子的当前尺寸不够,将虚拟箱子的当前尺寸扩大后,返回步骤603。
147.若第一外露面集合为空,则说明虚拟箱子内已经没有可以放下第二货物的空间,则需要扩大虚拟箱子的尺寸。如图4所示,若将货物3的原点o'与i点重合,将货物3的x'轴与箱子的x轴平行,将货物3的y'轴与箱子的y轴平行后,仍无法将货物3放入虚拟箱子,则需要扩大虚拟箱子的当前尺寸。
148.可预先设定虚拟箱子尺寸扩大规则,例如:扩大规则为:将虚拟箱子的当前最长边的长乘以第三指定系数,将虚拟箱子的当前次长边扩大第四指定系数,其中,第三指定系数和第四指定系数大于1。
149.在实际应用中,通常是在已有的几种箱子尺寸中选择所使用的箱子尺寸,则在按照预设的箱子尺寸扩大规则计算出虚拟箱子的扩大后的当前尺寸后,根据计算结果在已有的箱子尺寸中选择最接近的尺寸即可。
150.考虑到:在实际应用中,为了防止运输损坏,可能需要在箱子四周添加填充物,则步骤612中,在第一订单内的所有货物都已放入虚拟箱子之后,进一步包括:判断虚拟箱子的剩余空间的大小是否大于预设冗余空间的大小,若否,则将虚拟箱子的当前尺寸扩大后,返回步骤603。
151.在实际应用中,某些特殊货物在装箱时,对摆放姿态可能有要求,例如:要求最长边必须竖着放等,为了适应该要求,本发明实施例给出如下解决方案:
152.步骤603中,模拟从第一订单内的货物中选择体积最大的货物作为第一货物之后、模拟将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合之前,进一步包括:判断第一货物的x'轴或/和y'轴或/和z'轴在虚拟箱子中的摆放方向是否有指定方向,若是,按照指定方向模拟摆放第一货物的x'轴或/和y'轴或/和z'轴;且,若没有指定方向,则执行所述模拟将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合的动作;
153.或/和,步骤609中,模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行之前,进一步包括:判断第二货物的x'轴或/和y'轴或/和z'轴在虚拟箱子中的摆放方向是否有指定方向,若是,按照指向方向模拟摆放第二货物的x'轴或/和y'轴或/和z'轴;且,若没有指定方向,则执行所述模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行的动作。
154.在实际应用中,对于同一订单内的货物,在装箱时,可能对装箱顺序有要求,如:必须先装哪个货物、后装哪个货物等,为了适应该要求,本发明实施例给出如下解决方案:
155.步骤603中,模拟从第一订单内的货物中选择体积最大的货物作为第一货物之前,进一步包括:判断第一订单内的各货物的装箱顺序是否有指定顺序,若是,则按照指定顺序,模拟选择排在最前面的货物作为第一货物;且,若没有指定顺序,则执行所述模拟从第一订单内的货物中选择体积最大的货物作为第一货物的动作;
156.步骤604中,模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物之前,进一步包括:判断第一订单内的各货物的装箱顺序是否有指定顺序,若是,则按照指定顺序,模拟在第一订单内还未放入箱子的货物中选择排在最前面的货物作为第二货物;且,若没有指定顺序,则执行所述模拟从第一订单内的货物中选择还未放入
虚拟箱子且体积最大的货物作为第二货物的动作。
157.在实际应用中,也可根据箱子的运输状况的反馈,对货物的特性与采用的袋子或箱子的材质或尺寸进行调整。
158.图7为本发明一实施例提供的确定货物包装方式的装置的结构示意图,该装置主要包括:
159.订单获取模块71,用于获取第一订单,第一订单中包含至少一个货物的尺寸;
160.包装计算模块72,用于以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸。
161.一可选实施例中,包装计算模块72以总包装体积最小为目标,根据第一订单中包含的各货物的尺寸,计算第一订单内的各货物在箱子内的摆放姿态和摆放位置以及所需箱子的尺寸,包括:定义一个长方体的虚拟箱子,根据第一订单中的货物的尺寸,确定该虚拟箱子的当前尺寸;按照货物尺寸从大到小的顺序,模拟将第一订单内的各货物依次放入虚拟箱子,且,在虚拟箱子内模拟摆放各货物时,按照从左至右、从下往上的顺序依次摆放,且,各货物的最长边与虚拟箱子的最长边平行、各货物的次长边与虚拟箱子的次长边平行。
162.一可选实施例中,包装计算模块72根据第一订单中的货物的尺寸,确定该虚拟箱子的当前尺寸,包括:根据第一订单中的最长货物的长度和最宽货物的宽度,确定该虚拟箱子的当前尺寸;
163.且,包装计算模块72确定该虚拟箱子的当前尺寸之后、模拟将第一订单内的各货物依次放入虚拟箱子之前,进一步包括:定义虚拟箱子坐标系为:虚拟箱子的最长边与次长边的交点为虚拟箱子坐标系的原点o,起点为o的最长边为x轴,起点为o的次长边为y轴,与xoy平面垂直且起点为o的最短边为z轴;且,定义货物坐标系为:货物的最长边与次长边的交点为货物坐标系的原点o',起点为o'的最长边为x'轴,起点为o'的次长边为y'轴,与x'o'y'平面垂直且起点为o'的最短边为z'轴;
164.且,包装计算模块72按照货物尺寸从大到小的顺序,模拟将第一订单内的各货物依次放入虚拟箱子,且,在虚拟箱子内模拟摆放各货物时,按照从左至右、从下往上的顺序依次摆放,且,各货物的最长边与虚拟箱子的最长边平行、各货物的次长边与虚拟箱子的次长边平行,包括:
165.第一步:模拟从第一订单内的货物中选择体积最大的货物作为第一货物,将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合;
166.第二步:模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物;
167.第三步:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与xoy平面平行的外露面,对所选择的与xoy平面平行的各外露面按照距离xoy平面的由近及远进行排序,得到第一外露面集合,从第一外露面集合中选择排在最前面的外露面,将该排在最前面的外露面所在平面作为当前参考平面;
168.第四步:从位于虚拟箱子内的虚拟箱子的所有外露面和位于虚拟箱子内的所有货物的所有外露面中,选择与yoz平面平行的外露面,对所选择的与yoz平面平行的各外露面按照距离yoz平面的由远及近进行排序,得到第二外露面集合,从第二外露面集合中选择排
在最前面的外露面,在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点;
169.第五步:模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行;
170.第六步:返回第二步,直至第一订单内的所有货物都已模拟放入虚拟箱子,将此时虚拟箱子的尺寸作为最终为第一订单选择的包装箱子的尺寸。
171.一可选实施例中,包装计算模块72在执行第四步时,在该排在最前面的外露面与当前参考平面的相交线上选择距离xoz平面最近的点作为当前参考点之后,进一步包括:将该排在最前面的外露面从第二外露面集合中删除,得到更新后的第二外露面集合;
172.且,包装计算模块72在执行第五步之后、第六步之前,进一步包括:若检测到无法将第二货物放入虚拟箱子,返回第四步中的从第二外露面集合中选择排在最前面的外露面的动作;且,若检测到第二货物能放入虚拟箱子,则删除第二外露面集合,然后执行第六步。
173.一可选实施例中,包装计算模块72在执行第三步时,将该排在最前面的外露面所在平面作为当前参考平面之后,进一步包括:将该排在最前面的外露面从第一外露面集合中删除,得到更新后的第一外露面集合;
174.且,包装计算模块72在执行第五步之后、第六步之前,若检测到无法将第二货物放入虚拟箱子,返回第四步中的从第二外露面集合中选择排在最前面的外露面的动作之前,进一步包括:若发现第二外露面集合为空,则删除第二外露面集合,并返回第三步中的从第一外露面集合中选择排在最前面的外露面的动作。
175.一可选实施例中,包装计算模块72在执行第五步之后、第六步之前,若检测到无法将第二货物放入虚拟箱子,返回第三步中的从第一外露面集合中选择排在最前面的外露面的动作之前,进一步包括:若发现第一外露面集合为空,则删除第一外露面集合,并确定虚拟箱子的当前尺寸不够,将虚拟箱子的当前尺寸扩大后,返回第一步。
176.一可选实施例中,包装计算模块72在执行第六步时,直至第一订单内的所有货物都已模拟放入虚拟箱子之后,进一步包括:判断虚拟箱子的剩余空间的大小是否大于预设冗余空间的大小,若否,则将虚拟箱子的当前尺寸扩大后,返回第一步。
177.一可选实施例中,包装计算模块72在执行第一步时,模拟从第一订单内的货物中选择体积最大的货物作为第一货物之后、模拟将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合之前,进一步包括:判断第一货物的x'轴或/和y'轴或/和z'轴在虚拟箱子中的摆放方向是否有指定方向,若是,按照指定方向模拟摆放第一货物的x'轴或/和y'轴或/和z'轴;且,若没有指定方向,则执行模拟将第一货物的原点o'与虚拟箱子的原点o重合,将第一货物的x'轴与虚拟箱子的x轴重合,将第一货物的y'轴与虚拟箱子的y轴重合的动作;
178.或/和,包装计算模块72在执行第五步时,模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行之前,进一步包括:判断第二货物的x'轴或/和y'轴或/和z'轴在虚拟箱子中的摆放方向是否有指定方向,若是,按照指向方向模拟摆放第二货物的x'轴或/和y'轴或/和z'轴;且,若没有指定方向,则执行模拟将第二货物的原点o'与当前参考点重合,将第二货物的x'轴与虚拟箱子的x轴平行,将第二货物的y'轴与虚拟箱子的y轴平行的动作。
179.一可选实施例中,包装计算模块72在执行第一步时,模拟从第一订单内的货物中选择体积最大的货物作为第一货物之前,进一步包括:判断第一订单内的各货物的装箱顺序是否有指定顺序,若是,则按照指定顺序,模拟选择排在最前面的货物作为第一货物;且,若没有指定顺序,则执行模拟从第一订单内的货物中选择体积最大的货物作为第一货物的动作;
180.包装计算模块72在执行第二步时,模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物之前,进一步包括:判断第一订单内的各货物的装箱顺序是否有指定顺序,若是,则按照指定顺序,模拟在第一订单内还未放入虚拟箱子的货物中选择排在最前面的货物作为第二货物;且,若没有指定顺序,则执行模拟从第一订单内的货物中选择还未放入虚拟箱子且体积最大的货物作为第二货物的动作。
181.一可选实施例中,包装计算模块72根据第一订单中的最长货物的长度和最宽货物的宽度,确定该虚拟箱子的当前尺寸,包括:在第一订单内的各货物的长边中,选择最长的长边;在第一订单内的各货物的宽边中,选择最宽的宽边;将最长的长边的长乘以第一指定系数,得到虚拟箱子的长边的参考长度;将最宽的宽边的宽乘以第二指定系数,得到虚拟箱子的宽边的参考宽度;根据参考长度和参考宽度,确定虚拟箱子的当前尺寸;其中,第一指定系数和第二指定系数等于或大于1。
182.本发明实施例还提供一种非瞬时计算机可读存储介质,非瞬时计算机可读存储介质存储指令,指令在由处理器执行时使得处理器执行如上任一实施例所述的确定货物包装方式的方法的步骤。
183.图8为本发明一实施例提供的电子设备80的结构示意图,该电子设备80包括上所述的非瞬时计算机可读存储介质81、以及可访问非瞬时计算机可读存储介质81的处理器82。
184.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1