一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型布局方法、装置、计算机设备和存储介质与流程

2021-11-05 22:31:00 来源:中国专利 TAG:


1.本技术涉及3d打印技术领域,特别是涉及一种模型布局方法、装置、计算机设备和存储介质。


背景技术:

2.在计算机数字技术智能化的推动下三维(three

dimensional,3d)打印技术应用的领域越来越广,3d打印是通过打印一层层的粘合材料来制造三维的物体。在进行3d打印时,当用户导入的模型较多时,需要在打印平台在切片软件中所形成的工作空间内对模型先进行布局,再进行切片处理,将模型文件转换成gcode文件进行打印。然而,在工作空间内对模型进行布局时,现有技术的做法是将第一个模型随机进行放置,再依次在已放置模型周围寻找合适的位置放置剩下的模型,但是由于第一个模型可能是较小的模型且放置位置靠近工作空间的中心位置,之后再放置较大模型时可能就找不到可以放置的位置,造成工作空间利用率较低。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种模型布局方法、装置、计算机设备和存储介质。
4.本技术实施例提供了一种模型布局方法,包括:遍历待导入模型,将当前遍历到的待导入模型放入工作空间内且靠近所述工作空间边缘的第一位置,检测所述第一位置是否为空闲空间,其中,所述空闲空间是指待导入模型放入当前位置时待导入模型位于工作空间内且待导入模型未被碰撞的空间;若是,将所述当前遍历到的待导入模型从第一位置进行移动,根据移动结果确定所述当前遍历到的待导入模型的最终放置位置,进行放置并将所述当前遍历到的待导入模型的状态修改为已标记;若否,将所述当前遍历到的待导入模型移出所述工作空间,并保留所述当前遍历到的待导入模型的状态为未放置。
5.本技术实施例还提供了一种模型布局装置,包括:检测模块,用于遍历待导入模型,将当前遍历到的待导入模型放入工作空间内且靠近所述工作空间边缘的第一位置,检测所述第一位置是否为空闲空间,其中,所述空闲空间是指待导入模型放入当前位置时待导入模型位于工作空间内且待导入模型未被碰撞的空间;若是,将所述当前遍历到的待导入模型从第一位置进行移动,根据移动结果确定所述当前遍历到的待导入模型的最终放置位置,进行放置并将所述当前遍历到的待导入模型的状态修改为已标记;若否,将所述当前遍历到的待导入模型移出所述工作空间,并保留所述当前遍历到的待导入模型的状态为未放置。
6.本技术实施例还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述的模型布局方法。
7.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的模型布局方法。
8.另外,所述将所述当前遍历到的待导入模型从当前位置进行移动,根据移动结果确定所述当前遍历到的待导入模型的最终放置位置,进行放置并将所述当前遍历到的待导入模型的状态修改为标记状态,包括:进入第一确定步骤,所述第一确定步骤包括:将所述当前遍历到的待导入模型从当前位置沿第一方向移动一个第一步长,检测当前位置是否为所述空闲空间;若是,重新进入所述第一确定步骤;若否,将所述当前遍历到的待导入模型从当前位置沿所述第一方向的反方向回退一个所述第一步长,并进入第二确定步骤,所述第二确定步骤包括:将所述当前遍历到的待导入模型从当前位置沿第二方向移动一个第一步长,检测当前位置是否为所述空闲空间,若否,将所述当前遍历到的待导入模型从当前位置沿所述第二方向的反方向回退一个所述第一步长作为最终放置位置,进行放置并将所述当前遍历到的待导入模型的状态修改为标记状态,若是,重新进入所述第二确定步骤。通过这样的方法,从两个方向上确定当前遍历到的待导入模型的放置位置,可以使确定的当前遍历到的待导入模型的放置位置较合理。
9.另外,在遍历完待导入模型之后,还包括:遍历未放置的待导入模型,将所述当前遍历到的未放置的待导入模型放入所述工作空间内且靠近所述工作空间边缘的第二位置,检测所述当前遍历到的未放置的待导入模型在所述第二位置是否超出所述工作空间,若是,将所述当前遍历到的未放置的待导入模型移出所述工作空间,并保留当前遍历到的未放置的待导入模型的状态为仍未放置,若否,进入第三确定步骤,所述第三确定步骤包括:检测所述当前遍历到的未放置的待导入模型在当前位置是否被碰撞,若否,将当前位置作为所述当前遍历到的未放置的待导入模型的最终放置位置,进行放置并将所述当前遍历到的未放置的待导入模型的状态修改为已标记,若是,将所述当前遍历到的未放置的待导入模型从当前位置沿第三方向移动一个第二步长,检测所述当前遍历到的未放置的待导入模型在当前位置是否在所述第三方向所在的水平轴上超出所述工作空间,若否,重新进入所述第三确定步骤。通过两次遍历,可以将尽可能多的模型放入工作空间内,从而对模型合理的布局,提高工作空间的利用率,且第二次遍历时,每次均从第二位置开始,这样可以合理的利用工作空间,从而在可以放置当前遍历的未放置的待导入模型时,找到合理的放置位置进行放置。
10.另外,在所述检测所述当前遍历到的未放置的待导入模型在当前位置是否在所述第三方向所在的水平轴上超出所述工作空间之后,还包括:若是,将所述当前遍历到的未放置的待导入模型从当前位置移动至所述当前遍历到的未放置的待导入模型所在水平方向和所述第二位置所在垂直方向的交界处,并从当前位置沿第四方向移动一个所述第二步长,再检测所述当前遍历到的未放置的待导入模型在当前位置是否在所述第四方向所在的水平轴上超出所述工作空间,若否,重新进入所述第三确定步骤,若是,将所述当前遍历到的未放置的待导入模型移出所述工作空间,并保留所述当前遍历的未放置的待导入模型的状态为仍未放置。通过这样的方法,从两个方向上确定当前遍历到的未放置的待导入模型的放置位置,可以使确定的当前遍历到的未放置的待导入模型的放置位置较合理。
11.另外,在所述检测所述当前遍历到的未放置的待导入模型是否在所述第三方向所在的水平轴上超出所述工作空间之后,还包括:若是,将所述当前遍历到的未放置的待导入模型回退一个所述第二步长,向第四方向移动一个所述第二步长,再检测所述当前遍历到的未放置的待导入模型是否在所述第四方向所在的水平轴上超出所述工作空间,若否,令
所述第三方向为所述回退时的方向,并重新进入所述第三确定步骤,若是,将所述当前遍历到的未放置的待导入模型移出所述工作空间,并保留所述当前遍历到的未放置的待导入模型的状态为仍未放置。通过这样的方法,从两个方向上确定当前遍历到的未放置的待导入模型的放置位置,可以使确定的当前遍历到的未放置的待导入模型的放置位置较合理。
12.另外,在所述工作空间为矩形时,所述第一方向为从当前位置指向所述工作空间的内部且平行于所述工作空间的一边的方向,所述第二方向为与所述第一方向垂直的方向,所述第三方向为从当前位置指向所述工作空间的内部且平行于所述工作空间的一边的方向,所述第四方向为与所述第三方向垂直的方向。若工作空间为矩形,第一方向、第二方向、第三方向和第四方向这样设置可以使模型的移动更加的合理,从而使确定的模型的最终放置位置更加合理,从而进一步的提高工作空间的利用率。
13.另外,在遍历完未放置的待导入模型之后,还包括:遍历仍未放置的待导入模型,进入第四确定步骤,所述第四确定步骤包括:对当前工作空间进行扩张,将当前遍历到的仍未放置的待导入模型放入当前工作空间内且靠近当前工作空间的第三位置,检测所述第三位置是否为空闲空间;若是,将所述第三位置作为所述当前遍历到的仍未放置的待导入模型的最终放置位置,进行放置并将所述当前遍历到的仍未放置的待导入模型的状态修改为已标记;若否,将所述待导入模型从当前位置沿当前工作空间的边缘移动,在遍历完所述工作空间的边缘之前是否找到所述空闲空间,若是,将所述空闲空间作为所述当前遍历到的仍未放置的待导入模型的最终放置位置,进行放置并将所述当前遍历到的仍未放置的待导入模型的状态修改为已标记,若否,重新进入所述第四步骤。通过将工作空间进行扩张,可以将仍未放置的待导入模型放入工作空间,且使用户可以知道哪些模型此次处于工作空间外,此次无法打印。
14.另外,所述将当前工作空间的边缘进行扩张,包括:根据当前遍历到的仍未放置的待导入模型的尺寸确定扩张范围,并根据所述扩张范围将当前工作空间进行扩张。通过这样的方法确定出的扩张范围较合理,可以较快的将当前遍历到的仍未放置的待导入模型进行放置并标记。
15.另外,在所述遍历待导入模型之前,还包括:对待导入模型按照从大到小进行排序;所述遍历待导入模型,包括:按照排序遍历待导入模型。按照从大到小的顺序进行遍历时,可以降低先放置了一个较小的待导入模型在工作空间而导致再放置较大的待导入模型时找不到可放置位置的可能性,更加合理的利用工作空间,进一步提高工作空间的利用率。
16.另外,在所述遍历未放置的待导入模型之前,还包括:将所述已放置模型移至所述工作空间的中心位置。通过这样的方法,当不存在未放置的待导入模型时,将已放置模型移至工作空间的中心位置,可以使得在对已放置模型进行打印时的已放置模型在打印平台上的位置更加的合理,当存在未放置的待导入模型时,将已放置模型移至工作空间的中心位置,可以便于未放置的待导入模型较快的找到可放置位置。
附图说明
17.图1为本技术第一实施例的模型布局方法的流程图;
18.图2为本技术第一实施例的已放置模型的示意图;
19.图3为本技术第一实施例中步骤104的一种具体实现方式的流程图;
20.图4为本技术第一实施例中工作空间的示意图;
21.图5为本技术第二实施例的模型布局方法的流程图;
22.图6为本技术第三实施例的模型布局方法的流程图;
23.图7为本技术第四实施例的模型布局方法的流程图;
24.图8为本技术第四实施例中工作空间的示意图;
25.图9为本技术第五实施例的模型布局方法的流程图;
26.图10为本技术第六实施例中模型布局装置的示意图;
27.图11为本技术第七实施例的计算机设备的结构示意图。
具体实施方式
28.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
29.本技术第一实施例涉及一种模型布局方法,应用于计算机设备,如:电脑、手机等。本实施例的模型布局方法的流程图如图1所示,包括:
30.步骤101,遍历一个待导入模型。
31.步骤102,将当前遍历到的待导入模型放入工作空间且靠近工作空间的边缘的第一位置。
32.具体地说,工作空间是指用户所选定打印机的打印平台在切片软件中所形成的立体空间,包括x轴方向、y轴方向和z轴方向,待导入模型是指用户选定的需要进行打印的模型;其中,打印平台的形状可以根据实际需要进行设定,例如:打印平台的水平投影形状可以为矩形、圆形等,则工作空间的水平投影形状也可以为矩形、圆形等。
33.当遍历到一个待导入模型时,将当前遍历到的待导入模型放入工作空间且靠近工作空间边缘的第一位置,第一位置为预设位置,例如:当工作空间为矩形时,第一位置可以为某一个角落,也可以为靠近一条边的某一个位置;当工作空间为圆时,第一位置可以为靠近圆周的某一个位置。
34.步骤103,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,进入步骤104,若否,进入步骤105。
35.具体地说,待导入模型放入当前位置时,待导入模型是放入工作空间未被碰撞的空间,即此时待导入模型是位于工作空间内即待导入模型的包围盒位于工作空间内,此时待导入模型未被工作空间碰撞,且待导入模型未被其他模型碰撞,则当前位置为空闲空间,其中,当工作空间不存在已放置模型时,待导入模型必然是未被其他模型碰撞,当工作空间存在已放置模型时,可以基于多边形包围盒进行碰撞检测,也可以基于轴向包围盒进行碰撞检测,由于采用轴向包围盒进行碰撞检测时计算量较小,可以提高检测的速度,且可以理解的是,如图2所示,为已放置模型的示意图,图中的模型b未被模型a碰撞;待导入模型放入当前位置时,待导入模型超出工作空间但待导入模型未被其他模型碰撞,或者待导入模型位于工作空间内但待导入模型被其他模型碰撞,或者待导入模型超出工作空间且待导入模型被其他模型碰撞,则当前位置不为空闲空间;其中,超出工作空间是指模型位于工作空间外和模型被工作空间碰撞。
36.在当前位置为第一位置时,若当前遍历到的待导入模型放入第一位置时待导入模型放入工作空间未被碰撞的空间,则第一位置为空闲空间,若当前遍历到的待导入模型放入第一位置时待导入模型超出工作空间但待导入模型未其他模型被碰撞,或者待导入模型位于工作空间内但待导入模型被其他模型碰撞,或者待导入模型超出工作空间且待导入模型被其他模型碰撞,则第一位置不为空闲空间。
37.步骤104,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置。
38.步骤105,将当前遍历到的待导入模型移出工作空间。
39.具体地说,第一步长可以为预设步长,预设步长根据实际需要进行设置,第一步长也可以根据当前遍历到的待导入模型的尺寸进行确定,这样确定的第一步长更加的准确。若检测出第一位置为空闲空间,第一位置一定是可以放置当前遍历的待导入模型的位置,但是也有可能存在其他位置可以放置当前遍历的待导入模型,所以将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至在移动过程中被碰撞,此时的被碰撞是指被其他模型碰撞和被工作空间碰撞,再将当前遍历到的待导入模型回退第一步长,并放置。若检测出第一位置不为空闲空间,说明第一位置无法放置待导入模型,则直接将当前遍历到的待导入模型移出工作空间,此时的待导入模型为未放置的待导入模型。在一个例子中,也可以利用标记来区分已放置模型和未放置模型,标记可以用预设的数字或字母进行表示,例如:将已放置模型标记为1,将未放置模型标记为0。
40.在一个例子中,预设方向包括第一方向和第二方向,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置的具体流程图如图3所示,包括:
41.步骤1041,将当前遍历到的待导入模型从当前位置沿第一方向移动第一步长。
42.步骤1042,检测当前位置是否为空闲空间。若是,重新进入步骤1041,若否,进入步骤1043。
43.步骤1043,将当前遍历到的待导入模型从当前位置沿第一方向的反方向回退第一步长。
44.步骤1044,将当前遍历到的待导入模型从当前位置沿第二方向移动第一步长。
45.步骤1045,检测当前位置是否为空闲空间。若是,重新进入步骤1044,若否,进入步骤1046。
46.步骤1046,将当前遍历到的待导入模型从当前位置沿第二方向的反方向回退第一步长,并放置。
47.具体地说,第一方向和第二方向为不同的两个方向,第一方向和第二方向为预设方向;第一步长可以为预设步长,预设步长根据实际需要进行设置,第一步长也可以根据当前遍历到的待导入模型的尺寸进行确定,这样确定的第一步长更加的准确。
48.若当前遍历到的待导入模型为模型a,将模型a从当前位置即第一位置1沿第一方向按第一步长进行逐步移动,直至移动到的当前位置不为空闲空间,若模型a是移动到位置3时位置3不为空闲空间,则模型a从当前位置即位置3沿第一方向的反方向回退第一步长,若模型a回退第一步长,到达位置2,则更换移动方向为第二方向,从当前位置即位置2沿第二方向按照每次移动第二步长进行逐步移动,直至移动到的当前位置不为空闲空间,若模
型a是移动到位置5时位置5不为空闲空间,则模型a从当前位置即位置5沿第二方向的反方向回退第一步长,若模型a回退第一步长,到达位置4则位置4为最终放置位置,则模型a在位置4进行放置。通过这样的方法,从两个方向上确定当前遍历到的待导入模型的放置位置,可以使确定的当前遍历到的待导入模型的放置位置较合理。
49.在一个例子中,预设方向包括第一方向,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置,包括:进入第一确定步骤,第一确定步骤包括:将当前遍历到的待导入模型从当前位置沿第一方向移动第一步长,检测当前位置是否为空闲空间;若是,重新进入第一确定步骤;若否,将当前遍历到的待导入模型从当前位置沿第一方向的反方向回退第一步长。
50.在一个例子中,在工作空间为矩形时,第一方向为从当前位置指向工作空间的内部且平行于工作空间的一边的方向,第二方向为与第一方向垂直的方向。
51.具体地说,如图4所示,为工作空间的示意图,工作空间为矩形abcd,以第一位置1为角落a为例进行说明,则第一方向和第二方向存在以下情况:第一,第一方向为ad方向即向左方向,第二方向为ab方向即向下方向,第二,第一方向为ab方向即向下方向,第二方向为ad方向即向下方向。
52.在第一种情况下,若当前遍历到的待导入模型为模型a,将模型a从当前位置即第一位置1向左移动第一步长,到达位置2,检测位置2是否为空闲空间,若是,则将模型a从当前位置即位置2向左移动第一步长,到达位置3,检测位置3是否为空闲空间,若否,将模型a从位置3向右回退第一步长,到达位置2,将模型a从当前位置即位置2向下移动第一步长,到达位置4,检测位置4是否为空闲空间,若是,将模型a从当前位置即位置4向下移动第一步长,到达位置5,检测位置5是否为空闲空间,若否,将模型a从当前位置即位置5向上移动第一步长,到达位置4则位置4为最终放置位置,则模型a在位置4进行放置。若工作空间为矩形,第一方向和第二方向这样设置可以使当前遍历到的待导入模型的移动更加的合理,从而使确定的当前遍历到的待导入模型的放置位置更加合理。
53.在第二种情况下,若当前遍历到的待导入模型为模型a,将模型a从当前位置即第一位置1向下移动第一步长,到达位置2,检测位置2是否为空闲空间,若是,则将模型a从当前位置即位置2向下移动第一步长,到达位置3,检测位置3是否为空闲空间,若否,将模型a从位置3向上回退第一步长,到达位置2,将模型a从当前位置即位置2向左移动第一步长,到达位置4,检测位置4是否为空闲空间,若是,将模型a从当前位置即位置4向左移动第一步长,到达位置5,检测位置5是否为空闲空间,若是,将模型a从当前位置即位置5向右移动第一步长,到达位置4则位置4为最终放置位置,则模型a在位置4进行放置。若工作空间为矩形,第一方向和第二方向这样设置可以使当前遍历到的待导入模型的移动更加的合理,从而使确定的当前遍历到的待导入模型的放置位置更加合理。
54.步骤106,是否遍历完待导入模型。若否,先进入步骤107,再进入步骤102,若是,进入结束。
55.步骤107,遍历下一个待导入模型。
56.在一个例子中,在遍历待导入模型之前,还包括:对待导入模型按照从大到小进行排序,遍历待导入模型,包括:按照排序遍历待导入模型。具体地说,若待导入模型为a、b、c、
d、e、f、g,对待导入模型按照从大到小进行排序的结果为b、d、e、g、f、c、a,则遍历待导入模型时,按照b、d、e、g、f、c、a的排序进行遍历。按照从大到小的顺序进行遍历时,可以降低先放置了一个较小的待导入模型在工作空间而导致再放置较大的待导入模型时找不到可放置位置的可能性,更加合理的利用工作空间,进一步提高工作空间的利用率。
57.本实施例中,遍历待导入模型,将当前遍历到的待导入模型放入工作空间且靠近工作空间边缘的第一位置,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置;若否,将当前遍历到的待导入模型移出工作空间。由于在放置待导入模型的过程中,不是随机进行放置的,而是先放置在靠近工作空间的边缘处,并且在第一位置为空闲空间时也不是直接进行放置的,而是从第一位置开始进行逐步移动,根据移动结果确定放置位置,这样确定的放置位置更加合理,从而提高再次放置模型的可能性,即在工作空间内对模型进行合理的布局,提高工作空间的利用率。
58.本技术第二实施例涉及一种模型布局方法,应用于计算机设备,如:电脑、手机等,第二实施例和第一实施例大致相同,不同之处在于,第二实施例中在遍历完待导入模型之后,再遍历未放置的待导入模型,确认是否存在空闲空间放置当前遍历的未放置的待导入模型。本实施例的模型布局方法的流程图如图5所示,包括:
59.步骤201,遍历一个待导入模型。
60.步骤202,将当前遍历到的待导入模型放入工作空间且靠近工作空间的边缘的第一位置。
61.步骤203,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,进入步骤204,若否,进入步骤205。
62.步骤204,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置。
63.步骤205,将当前遍历到的待导入模型移出工作空间。
64.步骤206,是否遍历完待导入模型。若否,先进入步骤207,再进入步骤202,若是,进入步骤208。
65.步骤207,遍历下一个待导入模型。
66.步骤201

207与第一实施例中的步骤101

107类似,在此不再赘述。
67.步骤208,遍历一个未放置的待导入模型。
68.步骤209,将当前遍历到的未放置的待导入模型放入工作空间且靠近工作空间边缘的第二位置。
69.具体地说,第一位置和第二位置可以为不同的两个位置,也可以为相同的两个位置,将当前遍历到的未放置的待导入模型放入工作空间且靠近工作空间边缘的第二位置,第二位置为预设位置,例如:当工作空间为矩形时,第二位置可以为某一个角落,也可以为靠近一条边的某一个位置;当工作空间为圆时,第二位置可以为靠近圆周的某一个位置。
70.步骤2010,检测当前遍历到的未放置的待导入模型在第二位置是否超出工作空间。若是,进入步骤2011,若否,进入步骤2012。
71.步骤2011,将当前遍历到的未放置的待导入模型移出工作空间。
72.步骤2012,检测当前遍历到的未放置的待导入模型在当前位置是否被碰撞。若否,进入步骤2013,若是,进入步骤2014。
73.步骤2013,在当前位置放置。
74.步骤2014,将当前遍历到的未放置的待导入模型从当前位置沿第三方向移动第二步长。
75.具体地说,第一步长和第二步长可以为相同的步长,也可以为不同的步长,第二步长可以为预设步长,预设步长根据实际需要进行设置,第二步长也可以根据当前遍历到的未放置的待导入模型的尺寸进行确定,这样确定的第二步长更加的准确。
76.步骤2015,检测当前遍历到的未放置的待导入模型在当前位置是否在第三方向所在的水平轴上超出工作空间。若否,进入步骤2012,若是,进入步骤2016。
77.步骤2016,将当前遍历到的未放置的待导入模型从当前位置移动至当前遍历到的未放置的待导入模型所在水平方向和第二位置所在垂直方向的交界处,并从当前位置沿第四方向移动第二步长。
78.步骤2017,检测当前遍历到的未放置的待导入模型在当前位置是否在第四方向所在的水平轴上超出工作空间。若否,重新进入步骤2014,若是,进入步骤2018。
79.步骤2018,将当前遍历到的未放置的待导入模型移出工作空间。
80.在一个例子中,在工作空间为矩形时,第三方向为从当前位置指向工作空间的内部且平行于工作空间的一边的方向,第四方向为与第三方向垂直的方向。
81.具体地说,若工作空间为如图4所示的矩形abcd,以第二位置1’为第二角落c为例进行说明,则第三方向和第四方向存在以下情况:第一,第三方向为cb方向即向右方向,第四方向为cd方向即向上方向,第二,第三方向为cd方向即向上方向,第四方向为cb方向即向右方向。
82.在第一种情况下,若当前遍历到的未放置的待导入模型为模型b,将模型b放入第二位置1’,检测模型b在第二位置1’是否超出工作空间,若是,说明此时无法放置b,则将模型b移出工作空间,模型b为仍未放置的模型,若否,检测模型b在第二位置1’是否被碰撞,若否,第二位置1’为放置位置,则模型b在位置1’进行放置,若是,将模型b从当前位置即第二位置1’向右移动第二步长,到达位置2’,检测模型b在位置2’在cb方向上是否超出工作空间,若否,检测模型b在位置2’是否被碰撞,若是,将模型b从当前位置即位置2’向右移动第二步长,到达位置3’,检测模型b在位置3’在cb方向上是否超出工作空间,若是,将模型b从位置3’移动至位置1’,并向上移动第二步长,到达位置4’,检测模型b在位置4’是否在cd方向上超出工作空间,若否,将模型b从当前位置即位置4’向右移动第二步长,达到位置5’,检测模型b在位置5’在cb方向上是否超出工作空间,若否,检测模型b在位置5’是否被碰撞,若是,将模型b从当前位置即位置5’向右移动第二步长,到达位置6’,检测模型在位置6’在cb方向上是否超出工作空间,若是,将模型b从位置6’移动至位置4’,并向上移动第二步长,到达位置7’,检测模型b在位置7’是否在cd方向上超出工作空间,若是,将模型b移出工作空间,模型b为仍未放置的模型。若工作空间为矩形,第三方向和第四方向这样设置可以使当前遍历到的未放置的待导入模型的移动更加的合理,从而使确定的当前遍历到的未放置的待导入模型的放置位置更加合理。
83.在第二种情况下,若当前遍历到的未放置的待导入模型为模型b,将模型b放入第
二位置1’,检测模型b在第二位置1’是否超出工作空间,若是,说明此时无法放置b,则将模型b移出工作空间,模型b为仍未放置的模型,若否,检测模型b在第二位置1’是否被碰撞,若否,第二位置1’为放置位置,则模型b在位置1’进行放置,若是,将模型b从当前位置即第二位置1’向上移动第二步长,到达位置2’,检测模型b在位置2’在cd方向上是否超出工作空间,若否,检测模型b在位置2’是否被碰撞,若是,将模型b从当前位置即位置2’向上移动第二步长,到达位置3’,检测模型b在位置3’在cb方向上是否超出工作空间,若是,将模型b从位置3’移动至位置1’,并向右移动第二步长,到达位置4’,检测模型b在位置4’是否在cb方向上超出工作空间,若否,将模型b从当前位置即位置4’向上移动第二步长,达到位置5’,检测模型b在位置5’在cd方向上是否超出工作空间,若否,检测模型b在位置5’是否被碰撞,若是,将模型b从当前位置即位置5’向上移动第二步长,到达位置6’,检测模型在位置6’在cd方向上是否超出工作空间,若是,将模型b从位置6’移动至位置4’,并向右移动第二步长,到达位置7’,检测模型b在位置7’是否在cd方向上超出工作空间,若是,将模型b移出工作空间,模型b为仍未放置的模型。若工作空间为矩形,第三方向和第四方向这样设置可以使当前遍历到的未放置的待导入模型的移动更加的合理,从而使确定的当前遍历到的未放置的待导入模型的放置位置更加合理。
84.可以理解的是,若工作空间为如图4所示的矩形abcd,以第一位置1为第一角落a,第二位置1’为第二角落c为例进行说明,第一方向和第二方向存在的情况,第三方向和第四方向存在的情况可以任意的组合,即第一方向为ad方向即向左方向,第二方向为ab方向即向下方向,第三方向为cb方向即向右方向,第四方向为cd方向即向上方向,或者,第一方向为ad方向即向左方向,第二方向为ab方向即向下方向,第三方向为cd方向即向上方向,第四方向为cb方向即向右方向,或者,第一方向为ab方向即向下方向,第二方向为ad方向即向下方向,第三方向为cd方向即向上方向,第四方向为cb方向即向右方向。
85.步骤2019,是否遍历完未放置的待导入模型。若否,先进入步骤2020,再进入步骤209,若是,进入结束。
86.步骤2020,遍历下一个未放置的待导入模型。
87.在一个例子中,在遍历待导入模型之前,还包括:对待导入模型按照从大到小进行排序,遍历待导入模型,包括:按照排序遍历待导入模型;遍历未放置的待导入模型,包括:按照排序遍历未放置的待导入模型。
88.具体地说,若待导入模型为a、b、c、d、e、f、g,对待导入模型按照从大到小进行排序的结果为b、d、e、g、f、c、a,则遍历待导入模型时,按照b、d、e、g、f、c、a的排序进行遍历,在遍历完待导入模型之后,待导入模型e、c、a进行放置,则模型b、d、g、f为未放置的待导入模型,则遍历未放置的待导入模型时,按照b、d、g、f的排序进行遍历。按照从大到小的顺序进行遍历时,可以降低先放置了一个较小的待导入模型在工作空间而导致再放置较大的待导入模型时找不到可放置位置的可能性,更加合理的利用工作空间,进一步提高工作空间的利用率。
89.在一个例子中,在遍历未放置的待导入模型之前,还包括:将已放置模型移至工作空间的中心位置。通过这样的方法,当不存在未放置的待导入模型时,将已放置模型移至工作空间的中心位置,可以使得在对已放置模型进行打印时的已放置模型在打印平台上的位置更加的合理,当存在未放置的待导入模型时,将已放置模型移至工作空间的中心位置,可
以便于未放置的待导入模型较快的找到可放置位置。
90.本实施例中,通过两次遍历,可以将尽可能多的模型放入工作空间内,从而对模型合理的布局,提高工作空间的利用率,且第二次遍历时,每次均从第二位置开始,这样可以合理的利用工作空间,从而在可以放置当前遍历的未放置的待导入模型时,找到合理的放置位置进行放置;且从两个方向上确定当前遍历到的未放置的待导入模型的放置位置,可以使确定的当前遍历到的未放置的待导入模型的放置位置较合理。
91.本技术第三实施例涉及一种模型布局方法,应用于计算机设备,如:电脑、手机等,第三实施例和第一实施例大致相同,不同之处在于,第三实施例中在遍历完待导入模型之后,再遍历未放置的待导入模型,确认是否存在空闲空间放置当前遍历的未放置的待导入模型。本实施例的模型布局方法的流程图如图6所示,包括:
92.步骤301,遍历一个待导入模型。
93.步骤302,将当前遍历到的待导入模型放入工作空间且靠近工作空间的边缘的第一位置。
94.步骤303,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,进入步骤304,若否,进入步骤305。
95.步骤304,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置。
96.步骤305,将当前遍历到的待导入模型移出工作空间。
97.步骤306,是否遍历完待导入模型。若否,先进入步骤307,再进入步骤302,若是,进入步骤308。
98.步骤307,遍历下一个待导入模型。
99.步骤301

307与第一实施例中的步骤101

107类似,在此不再赘述。
100.步骤308,遍历一个未放置的待导入模型。
101.步骤309,将当前遍历到的未放置的待导入模型放入工作空间且靠近工作空间边缘的第二位置。
102.具体地说,第一位置和第二位置可以为不同的两个位置,也可以为相同的两个位置,将当前遍历到的未放置的待导入模型放入工作空间内且靠近工作空间边缘的第二位置,第二位置为预设位置,例如:当工作空间为矩形时,工作空间内且靠近工作空间边缘的第一位置可以为某一个角落,也可以为靠近某一条边的某一个位置,当工作空间为圆时,工作空间内且靠近工作空间边缘的第二位置可以为靠近圆周的某一个位置。
103.步骤3010,检测当前遍历到的未放置的待导入模型在第二位置是否超出工作空间。若是,进入步骤3011,若否,进入步骤3012。
104.步骤3011,将当前遍历到的未放置的待导入模型移出工作空间。
105.步骤3012,检测当前遍历到的未放置的待导入模型在当前位置是否与已放置模型发生碰撞。若否,进入步骤3013,若是,进入步骤3014。
106.步骤3013,在当前位置放置。
107.步骤3014,将当前遍历到的未放置的待导入模型从当前位置沿第三方向移动第二步长。
108.具体地说,第一步长和第二步长可以为相同的步长,也可以为不同的步长,第二步
长可以为预设步长,预设步长根据实际需要进行设置,第二步长也可以根据当前遍历到的未放置的待导入模型的尺寸进行确定,这样确定的第二步长更加的准确。
109.步骤3015,检测当前遍历到的未放置的待导入模型在当前位置是否在第三方向所在的水平轴上超出工作空间。若否,进入步骤3012,若是,进入步骤3016。
110.步骤3016,将当前遍历到的未放置的待导入模型回退第二步长,向第四方向移动第二步长。
111.步骤3017,检测当前遍历到的未放置的待导入模型是否在第四方向所在的水平轴上超出工作空间。若否,先进入步骤3019,再进入步骤3014,若是,进入步骤3018。
112.步骤3018,将当前遍历到的未放置的待导入模型移出工作空间。
113.步骤3019,令第三方向为回退的方向。
114.在一个例子中,在工作空间为矩形时,第三方向为从当前位置指向工作空间的内部且平行于工作空间的一边的方向,第四方向为与第三方向垂直的方向。
115.具体地说,若工作空间为如图4所示的矩形abcd,以第二位置1’为第二角落c为例进行说明,则第三方向和第四方向存在以下情况:第一,第三方向为cb方向即向右方向,第四方向为cd方向即向上方向,第二,第三方向为cd方向即向上方向,第四方向为cb方向即向右方向。
116.在第一种情况下,若当前遍历到的未放置的待导入模型为模型b,将模型b放入第二位置1’,检测模型b在第二位置1’是否超出工作空间,若是,说明此时无法放置b,则将模型b移出工作空间,并保留模型b的状态为仍未放置,若否,检测模型b在第二位置1’是否被碰撞,若否,第二位置1’为放置位置,则模型b在位置1’进行放置,若是,将模型b从当前位置即第二位置1’向右移动第二步长,到达位置2’,检测模型b在位置2’是否是否超出工作空间,若否,检测模型b在位置2’是否被碰撞,若是,将模型b从当前位置即位置2’向右移动第二步长,到达位置3’,检测模型b在位置3’在cb方向上是否超出工作空间,若是,将模型b从位置3’移动至位置2’,并向上移动第二步长,到达位置4’,检测模型b在位置4’是否在cd方向上超出工作空间,若否,将模型b从当前位置即位置4’向bc方向即向左移动第二步长,到达位置5’,检测模型b在位置5’在cb方向上是否超出工作空间,若否,检测模型b在位置5’是否被碰撞,若是,将模型b从当前位置即位置5’向左移动第二步长,到达位置6’,检测模型在位置6’在cb方向上是否超出工作空间,若是,将模型b从位置6’移动至位置5’,并向上移动第二步长,到达位置7’,检测模型b在位置7’是否在cd方向上超出工作空间,若是,将模型b移出工作空间,模型b为仍未放置的模型。若工作空间为矩形,第三方向和第四方向这样设置可以使当前遍历到的未放置的待导入模型的移动更加的合理,从而使确定的当前遍历到的未放置的待导入模型的放置位置更加合理。
117.在第二种情况下,若当前遍历到的未放置的待导入模型为模型b,将模型b放入第二位置1’,检测模型b在第二位置1’是否超出工作空间,若是,说明此时无法放置b,则将模型b移出工作空间,并保留模型b的状态为仍未放置,若否,检测模型b在第二位置1’是否被碰撞,若否,第二位置1’为放置位置,则模型b在位置1’进行放置,若是,将模型b从当前位置即第二位置1’向上移动第二步长,到达位置2’,检测模型b在位置2’是否超出工作空间,若否,检测模型b在位置2’是否被碰撞,若是,将模型b从当前位置即位置2’向上移动第二步长,到达位置3’,检测模型b在位置3’在cd方向上是否超出工作空间,若是,将模型b从位置
3’移动至位置2’,并向右移动第二步长,到达位置4’,检测模型b在位置4’是否在cb方向上超出工作空间,若否,将模型b从当前位置即位置4’向dc方向即向下移动第二步长,到达位置5’,检测模型b在位置5’在cd方向上是否超出工作空间,若否,检测模型b在位置5’是否被碰撞,若是,将模型b从当前位置即位置5’向右移动第二步长,到达位置6’,检测模型在位置6’在cd方向上是否超出工作空间,若是,将模型b从位置6’移动至位置5’,并向右移动第二步长,到达位置7’,检测模型b在位置7’是否在cb方向上超出工作空间,若是,将模型b移出工作空间,并保留模型b的状态为仍未放置。若工作空间为矩形,第三方向和第四方向这样设置可以使当前遍历到的未放置的待导入模型的移动更加的合理,从而使确定的当前遍历到的未放置的待导入模型的放置位置更加合理。
118.可以理解的是,若工作空间为如图4所示的矩形abcd,以第一位置1为第一角落a,第二位置1’为第二角落c为例进行说明,第一方向和第二方向存在的情况,第三方向和第四方向存在的情况可以任意的组合,即第一方向为ad方向即向左方向,第二方向为ab方向即向下方向,第三方向为cb方向即向右方向,第四方向为cd方向即向上方向,或者,第一方向为ad方向即向左方向,第二方向为ab方向即向下方向,第三方向为cd方向即向上方向,第四方向为cb方向即向右方向,或者,第一方向为ab方向即向下方向,第二方向为ad方向即向下方向,第三方向为cd方向即向上方向,第四方向为cb方向即向右方向。
119.步骤3020,是否遍历完未放置的待导入模型。若否,先进入步骤3021,再进入步骤309,若是,进入结束。
120.步骤3021,遍历下一个未放置的待导入模型。
121.在一个例子中,在遍历待导入模型之前,还包括:对待导入模型按照从大到小进行排序,遍历待导入模型,包括:按照排序遍历待导入模型;遍历未放置的待导入模型,包括:按照排序遍历未放置的待导入模型。
122.具体地说,若待导入模型为a、b、c、d、e、f、g,对待导入模型按照从大到小进行排序的结果为b、d、e、g、f、c、a,则遍历待导入模型时,按照b、d、e、g、f、c、a的排序进行遍历,在遍历完待导入模型之后,待导入模型e、c、a进行放置并标记,则模型b、d、g、f为未放置的待导入模型,则遍历未放置的待导入模型时,按照b、d、g、f的排序进行遍历。按照从大到小的顺序进行遍历时,可以降低先放置了一个较小的待导入模型在工作空间而导致再放置较大的待导入模型时找不到可放置位置的可能性,更加合理的利用工作空间,进一步提高工作空间的利用率。
123.在一个例子中,在遍历未放置的待导入模型之前,还包括:将已放置模型移至工作空间的中心位置。通过这样的方法,当不存在未放置的待导入模型时,将已放置模型移至工作空间的中心位置,可以使得在对已放置模型进行打印时的已放置模型在打印平台上的位置更加的合理,当存在未放置的待导入模型时,将已放置模型移至工作空间的中心位置,可以便于未放置的待导入模型较快的找到可放置位置。
124.本实施例中,通过两次遍历,可以将尽可能多的模型放入工作空间内,从而对模型合理的布局,提高工作空间的利用率,且第二遍历时,每次均从第二位置开始,这样可以合理的利用工作空间,从而在可以放置当前遍历的未放置的待导入模型时,找到合理的放置位置进行放置;且从两个方向上确定当前遍历到的未放置的待导入模型的放置位置,可以使确定的当前遍历到的未放置的待导入模型的放置位置较合理,进一步提高工作空间的利
用率。
125.本技术第四实施例涉及一种模型布局方法,应用于计算机设备,如:电脑、手机等,第四实施例和第二实施例大致相同,不同之处在于,第二实施例中在遍历完未放置的待导入模型之后,还遍历仍未标记的待导入模型,并将仍未标记的待导入模型进行放置。本实施例的模型布局方法的流程图如图7所示,包括:
126.步骤401,遍历一个待导入模型。
127.步骤402,将当前遍历到的待导入模型放入工作空间且靠近工作空间的边缘的第一位置。
128.步骤403,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,进入步骤404,若否,进入步骤405。
129.步骤404,将当前遍历到的待导入模型从第一位置进沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置。
130.步骤405,将当前遍历到的待导入模型移出工作空间。
131.步骤406,是否遍历完待导入模型。若否,先进入步骤407,再进入步骤402,若是,进入步骤408。
132.步骤407,遍历下一个待导入模型。
133.步骤408,遍历一个未放置的待导入模型。
134.步骤409,将当前遍历到的未放置的待导入模型放入工作空间且靠近工作空间边缘的第二位置。
135.步骤4010,检测当前遍历到的未放置的待导入模型在第二位置是否超出工作空间。若是,进入步骤4011,若否,进入步骤4012。
136.步骤4011,将当前遍历到的未放置的待导入模型移出工作空间。
137.步骤4012,检测当前遍历到的未放置的待导入模型在当前位置是否被碰撞。若否,进入步骤4013,若是,进入步骤4014。
138.步骤4013,在当前位置放置。
139.步骤4014,将当前遍历到的未放置的待导入模型从当前位置沿第三方向移动第二步长。
140.步骤4015,检测当前遍历到的未放置的待导入模型在当前位置是否在第三方向所在的水平轴上超出工作空间。若否,进入步骤4012,若是,进入步骤4016。
141.步骤4016,将当前遍历到的未放置的待导入模型从当前位置移动至当前遍历到的未放置的待导入模型所在水平方向和第二位置所在垂直方向的交界处,并从当前位置沿第四方向移动第二步长。
142.步骤4017,检测当前遍历到的未放置的待导入模型在当前位置是否在第四方向所在的水平轴上超出工作空间。若否,进入步骤4014,若是,进入步骤4018。
143.步骤4018,将当前遍历到的未放置的待导入模型移出工作空间。
144.步骤4019,是否遍历完未放置的待导入模型。若否,先进入步骤4020,再进入步骤409,若是,进入4021。
145.步骤4020,遍历下一个未放置的待导入模型。
146.步骤401

4020与第二实施例中的步骤201

2020类似,在此不再赘述。
147.步骤4021,遍历一个仍未放置的待导入模型。
148.步骤4022,对当前工作空间进行扩张,将当前遍历到的仍未放置的待导入模型放入当前工作空间且靠近当前工作空间的第三位置,检测第三位置是否为空闲空间,若是,进入步骤4023,若否,进入步骤4024。
149.在一个例子中,将当前工作空间进行扩张,包括:根据当前遍历到的仍未放置的待导入模型的尺寸确定扩张范围,根据扩张范围将当前工作空间进行扩张。
150.具体地说,根据当前遍历到的仍未放置的待导入模型在工作空间的水平投影,可以知道该水平投影在水平方向的最大距离为x,在垂直方向的最大距离为y,根据x、y确定扩张范围,根据扩张范围将当前工作空间的边缘进行进行扩张。若当前工作空间为矩形,则可以将当前工作空间的水平方向的两侧分别扩张一个x,将当前工作空间的垂直方向的两侧分别扩张一个y;也可以取x、y中的较大值,将当前工作空间的四周分别扩张一个较大值。若当前工作空间为圆形,则可以取x、y中的较大值,将当前工作空间的周边均扩张一个较大值。通过这样的方法确定出的扩张范围较合理,可以较快的将当前遍历到的仍未放置的待导入模型进行放置并标记。
151.在一个例子中,可以根据预设的扩张范围将当前工作空间进行扩张。
152.步骤4023,在第三位置放置。
153.步骤4024,将待导入模型从第三位置沿当前工作空间的边缘按第三步长进行逐步移动,检测在遍历完工作空间的边缘之前是否找到空闲空间,若是,进入步骤4025,若否,重新进入步骤4022。
154.步骤4025,在空闲空间放置。
155.步骤4026,是否遍历完仍未放置的待导入模型。若是,进入结束,若否,先进入步骤4027,再进入步骤4021。
156.步骤4027,遍历下一个仍未放置的待导入模型。
157.具体地说,第三步长可以为预设步长,预设步长根据实际需要进行设置,第三步长也可以根据当前遍历到的待导入模型的尺寸进行确定,这样确定的第三步长更加的准确;第三位置为预设位置,例如:当工作空间为矩形时,第一位置可以为某一个角落,也可以为靠近一条边的某一个位置;当工作空间为圆时,第一位置可以为靠近圆周的某一个位置。若当前遍历到的仍未放置的待导入模型为模型c,将模型c放入当前工作空间且靠近当前工作空间的第三位置,检测第三位置是否为空闲空间,若是,在第三位置放置,若否,将模型c沿当前工作空间的边缘按照第三步长进行逐步移动,若沿当前工作空间的边缘移动过程中,存在一个位置为空闲空间,则该位置为放置位置,将模型c在该位置进行放置,若沿当前工作空间的边缘移动一圈也不存在上述的位置,则说明扩张的不够,将当前工作空间的边缘继续进行扩张,重复执行上述步骤,直至存在上述的位置。
158.以下将结合一个实例进行具体的说明:如图8所示,为工作空间的示意图,其中,当前工作空间为矩形a’b’c’d’,扩张前的工作空间为矩形abcd,先将模型c放入第三位置1”,检测位置1”是否为空闲空间,若是,位置1”为放置位置,则模型b在位置1”进行放置,若否,将模型c从位置1”向右移动第三步长,到达位置2”,检测模型c在位置2”是否超出当前工作空间,若否,检测模型c在位置2”是否被碰撞,若是,将模型c从位置2”向右移动第三步长,到达位置3”,检测模型c在位置3”是否超出当前工作空间,若是,将模型c回退第三步长,到达
位置2”,将模型c从位置2”向上移动第三步长,到达位置4”,检测模型c在位置4”是否超出当前工作空间,若否,检测模型c在位置4”是否被碰撞,若是,将模型c从位置4”向上移动第三步长,到达位置5”,检测模型c在位置5”是否超出当前工作空间,若是,将模型c回退第三步长,到达位置4”,将模型c从位置4”向左移动第三步长,到达位置6”,检测模型c在位置6”是否超出当前工作空间,若否,检测模型c在位置6”是否被碰撞,若是,将模型c从位置6”向左移动第三步长,到达位置7”,检测模型c在位置7”是否超出当前工作空间,若是,将模型c回退第三步长,到达位置6”,将模型c从位置6”向下移动第三步长,到达位置8”,检测模型c在位置8”是否超出当前工作空间,若否,检测模型c在位置8”是否与已放置模型发生碰撞,若是,将模型c从位置6”向下移动第三步长,到达位置9”,检测模型c在位置9”是否超出当前工作空间,若是,将当前工作空间的边缘继续进行扩张,按照上述方法确定放置位置,若否,检测模型c在位置9”是否被碰撞,若否,位置9”为放置位置,将模型c在位置9”进行放置。
159.在一个例子中,在遍历待导入模型之前,还包括:对待导入模型按照从大到小进行排序,遍历待导入模型,包括:按照排序遍历待导入模型;遍历未放置的待导入模型,包括:按照排序遍历未放置的待导入模型;遍历仍未放置的待导入模型,包括:按照排序遍历仍未放置的待导入模型。
160.在一个例子中,在遍历未放置的待导入模型之前,还包括:将已放置模型移至工作空间的中心位置。
161.本实施例中,通过两次遍历,可以将尽可能多的模型放入工作空间内,从而对模型合理的布局,提高工作空间的利用率,且第二次遍历时,每次均从第二位置开始,这样可以合理的利用工作空间,从而在可以放置当前遍历的未放置的待导入模型时,找到合理的放置位置进行放置;且从两个方向上确定当前遍历到的未放置的待导入模型的放置位置,可以使确定的当前遍历到的未放置的待导入模型的放置位置较合理。
162.本技术第五实施例涉及一种模型布局方法,应用于计算机设备,如:电脑、手机等,第五实施例和第三实施例大致相同,不同之处在于,第五实施例中在遍历完未放置的待导入模型之后,还遍历仍未标记的待导入模型,并将仍未标记的待导入模型进行放置。本实施例的模型布局方法的流程图如图9所示,包括:
163.步骤501,遍历一个待导入模型。
164.步骤502,将当前遍历到的待导入模型放入工作空间且靠近工作空间的边缘的第一位置。
165.步骤503,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,进入步骤504,若否,进入步骤505。
166.步骤504,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将当前遍历到的待导入模型回退第一步长,并放置。
167.步骤505,将当前遍历到的待导入模型移出工作空间。
168.步骤506,是否遍历完待导入模型。若否,先进入步骤507,再进入步骤502,若是,进入步骤508。
169.步骤507,遍历下一个待导入模型。
170.步骤508,遍历一个未放置的待导入模型。
171.步骤509,将当前遍历到的未放置的待导入模型放入工作空间且靠近工作空间边
缘的第二位置。
172.步骤5010,检测当前遍历到的未放置的待导入模型在第二位置是否超出工作空间。若是,进入步骤5011,若否,进入步骤5012。
173.步骤5011,将当前遍历到的未放置的待导入模型移出工作空间。
174.步骤5012,检测当前遍历到的未放置的待导入模型在当前位置是否与已放置模型发生碰撞。若否,进入步骤5013,若是,进入步骤5014。
175.步骤5013,在当前位置放置。
176.步骤5014,将当前遍历到的未放置的待导入模型从当前位置沿第三方向移动第二步长。
177.步骤5015,检测当前遍历到的未放置的待导入模型在当前位置是否在第三方向所在的水平轴上超出工作空间。若否,进入步骤5012,若是,进入步骤5016。
178.步骤5016,将当前遍历到的未放置的待导入模型回退第二步长,向第四方向移动第二步长。
179.步骤5017,检测当前遍历到的未放置的待导入模型是否在第四方向所在的水平轴上超出工作空间。若否,先进入步骤5019,再进入步骤5014,若是,进入步骤5018。
180.步骤5018,将当前遍历到的未放置的待导入模型移出工作空间。
181.步骤5019,令第三方向为回退的方向。
182.步骤5020,是否遍历完未放置的待导入模型。若否,先进入步骤5021,再进入步骤509,若是,进入步骤5022。
183.步骤5021,遍历下一个未放置的待导入模型。
184.步骤501

5021与第三实施例中的步骤301

3021类似,在此不再赘述。
185.步骤5022,遍历一个仍未放置的待导入模型。
186.步骤5023,对当前工作空间进行扩张,将当前遍历到的仍未放置的待导入模型放入当前工作空间且靠近当前工作空间的第三位置,检测第三位置是否为空闲空间,若是,进入步骤5023,若是,进入步骤5024。
187.步骤5024,在第三位置放置。
188.步骤5025,将待导入模型从当前位置沿当前工作空间的边缘按第三步长进行逐步移动,检测在遍历完工作空间的边缘之前是否找到空闲空间,若是,进入步骤5025,若否,重新进入步骤5022。
189.步骤5026,在空闲空间放置。
190.步骤5027,是否遍历完仍未放置的待导入模型。若是,进入结束,若否,先进入步骤5028,再进入步骤5022。
191.步骤5028,遍历下一个仍未放置的待导入模型。
192.步骤5022

5028与步骤4021

4027类似,在此不再赘述。
193.在一个例子中,将当前工作空间进行扩张,包括:根据当前遍历到的仍未放置的待导入模型的尺寸确定扩张范围,根据扩张范围将当前工作空间进行扩张。
194.在一个例子中,可以根据预设的扩张范围将当前工作空间进行扩张。
195.在一个例子中,在遍历待导入模型之前,还包括:对待导入模型按照从大到小进行排序,遍历待导入模型,包括:按照排序遍历待导入模型;遍历未放置的待导入模型,包括:
按照排序遍历未放置的待导入模型;遍历仍未放置的待导入模型,包括:按照排序遍历仍未放置的待导入模型。
196.在一个例子中,在遍历未放置的待导入模型之前,还包括:将已放置模型移至工作空间的中心位置。
197.本实施例中,通过将工作空间进行扩张,可以将仍未放置的待导入模型放入工作空间,且使用户可以知道哪些模型此次处于工作空间外,此次无法打印。
198.本技术第六实施例涉及一种模型布局装置,模型布局装置601的结构示意图如图10所示,装置601包括:
199.检测模块6011,用于遍历待导入模型,将当前遍历到的待导入模型放入工作空间且靠近工作空间边缘的第一位置,检测第一位置是否为空闲空间,其中,空闲空间是指待导入模型放入工作空间未被碰撞的空间;若是,将当前遍历到的待导入模型从第一位置沿预设方向按第一步长进行逐步移动,直至被碰撞,再将所述当前遍历到的待导入模型回退所述第一步长,并放置;若否,将当前遍历到的待导入模型移出工作空间。
200.关于装置的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
201.本技术第七实施例提供了一种计算机设备,该计算机设备可以是终端,如:电脑、手机等,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种打印文件的生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
202.本领域技术人员可以理解,图11中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
203.在一个例子中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
204.本技术第八实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
205.在一个例子中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
206.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以
通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
207.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
208.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献