CN114750410A - 用于3d打印的方法、装置、设备、存储介质和程序产品 - Google Patents
用于3d打印的方法、装置、设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN114750410A CN114750410A CN202210369143.4A CN202210369143A CN114750410A CN 114750410 A CN114750410 A CN 114750410A CN 202210369143 A CN202210369143 A CN 202210369143A CN 114750410 A CN114750410 A CN 114750410A
- Authority
- CN
- China
- Prior art keywords
- model
- determining
- candidate
- models
- printing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
Landscapes
- Chemical & Material Sciences (AREA)
- Engineering & Computer Science (AREA)
- Materials Engineering (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Optics & Photonics (AREA)
Abstract
本申请提供了一种用于3D打印的方法、装置、设备、存储介质和程序产品,其中方法包括:获取模型文件,模型文件定义待打印的多个模型;确定多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于3D打印的3D打印机的热床上的工作区域相对应的虚拟空间,其中,确定相应目标区域包括,对于多个模型中的每个模型:至少根据该模型的形状特征,在至少一个盘内确定多个候选区域;根据每个候选区域的位置参数以及该模型的打印参数,分别确定多个候选区域对于该模型的相应代价;以及根据相应代价从多个候选区域中选择该模型的目标区域;以及将多个模型分配到至少一个盘内的相应目标区域。
Description
技术领域
本公开涉及3D打印技术领域,具体涉及一种用于3D打印的方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
3D打印机,又称三维打印机、立体打印机,是快速成型的一种工艺设备,通常是采用数字技术打印材料来实现。3D打印机常在模具制造、工业设计等领域被用于制造模型或零部件。近年来,3D打印技术在珠宝、鞋类、工业设计、建筑、工程和施工(AEC)、汽车,航空航天、牙科和医疗产业、教育、地理信息系统、土木工程、枪支以及其他领域都具有很高的应用前景。
在3D打印技术领域,通常将多个待打印模型在同一热床上进行打印,即对多个模型进行同一批次的打印,从而减小3D打印机挤出头的空载行程,进而提高打印效率。在这种情况下,需要确定同一打印批次的多个打印模型在热床上的位置分布,以实现热床上打印区域的利用率最大化。目前用于确定3D打印模型的在热床上的位置分布的技术还有很大的提升空间。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
根据本公开的一个方面,提供了一种用于3D打印的方法,包括:获取模型文件,模型文件定义待打印的多个模型;确定多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于3D打印的3D打印机的热床上的工作区域相对应的虚拟空间,其中,确定相应目标区域包括,对于多个模型中的每个模型:至少根据该模型的形状特征,在至少一个盘内确定多个候选区域;根据每个候选区域的位置参数以及该模型的打印参数,分别确定多个候选区域对于该模型的相应代价;以及根据相应代价从多个候选区域中选择该模型的目标区域;以及将多个模型分配到至少一个盘内的相应目标区域。
根据本公开的另一个方面,还提供了一种用于3D打印的装置,包括:获取单元,配置成获取模型文件,模型文件定义待打印的多个模型;确定单元,配置成确定多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于3D打印的3D打印机的热床上的工作区域相对应的虚拟空间,其中,确定单元包括:第一确定模块,配置成对于多个模型中的每个模型:至少根据该模型的形状特征,在至少一个盘内确定多个候选区域;第二确定模块,配置成根据每个候选区域的位置参数以及该模型的打印参数,分别确定多个候选区域对于该模型的相应代价;以及选择模块,配置成根据相应代价从多个候选区域中选择该模型的目标区域;以及分配单元,配置成将多个模型分配到至少一个盘内的相应目标区域。
根据本公开的又一个方面,还提供了一种计算机设备,包括:存储器、处理器以及存储在存储器上的计算机程序,其中,处理器被配置为执行计算机程序以实现上述方法的步骤。
根据本公开的又一个方面,还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现上述方法的步骤。
根据本公开的又一个方面,还提供了一种计算机程序产品,包括计算机程序,其中,计算机程序被处理器执行时实现上述方法的步骤。
根据本公开的一个或多个实施例,在对多个模型进行摆盘时,先确定模型的多个候选区域,然后对每个候选区域进行评价并计算其代价,最后根据代价从多个候选模型中选择出最合适的候选区域以作为模型的目标区域,因此本公开实施例的方法能够提供更有利于后续的3D打印过程的优化摆盘策略。另外,本公开实施例的方法相较于相关技术充分考虑模型其他属性(即模型的打印参数)等对于确定模型的目标区域的影响,因此进一步提高了摆盘策略的优化程度。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本申请公开的一些实施方式,而不应将其视为是对本申请范围的限制。
图1示出了根据本公开实施例的3D打印机的结构示意图;
图2示出了利用相关技术的切片软件进行摆盘的示意图;
图3示出了根据本公开实施例的用于3D打印的方法的流程图;
图4示出了根据本公开实施例的方法确定模型的多个候选区域的原理示意图;
图5示出了根据本公开实施例的确定多个候选区域的方法的流程图;
图6示出了对非凸形状的模型进行分解的示意图;
图7示出了对中空形状的模型进行分解的示意图;
图8示出了根据本公开实施例的从多个候选区域中选择目标区域的方法的流程图;
图9示出了根据本公开实施例的确定模型的候选区域的代价的方法的流程图;
图10示出了根据本公开实施例的确定模型的候选区域的代价的方法的流程图;
图11示出了根据本公开实施例的确定模型的候选区域的代价的方法的流程图;
图12示出了根据本公开实施例的确定多个候选区域的方法的流程图;
图13示出了根据本公开实施例的确定多个候选区域的方法的流程图;
图14示出了根据本公开实施例的用于3D打印的装置的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本申请的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
在详细介绍本公开的各个实施例之前,首先简要介绍3D打印的基本工作原理。3D打印需要用切片软件将3D模型(通常是stl或3mf格式的文件)进行切片,转成gcode,发送给3D打印机。后续3D打印机将按照切片好的3D模型在热床上进行打印。图1示出了根据本公开的实施例的3D打印机100的结构示意图。如图1所示,3D打印机100包括箱体110、热床120、挤出头140和驱动装置(未在图1中示出)。箱体110包括箱体壁和位于箱体110壁顶部的顶盖111,热床120设置在箱体110的底部。3D打印机还具有升降机构,以用于驱动热床120上下运动(即,沿着图1所示的Z轴方向运动)。驱动装置和挤出头140相连并用于驱动挤出头140在平行于热床120的平面内运动(即图1中的X-Y平面)。具体地,驱动装置包括沿着图1中X方向延伸的第一滑杆130以及沿着图1中Y方向延伸的第二滑杆(与图1所在的平面垂直),挤出头140分别附接到第一滑杆130和第二滑杆并且可以分别沿着这两个滑杆滑动。另外,驱动装置还包括用于驱动挤出头140在第一滑杆130或第二滑杆上滑动的电机。在实际的打印过程中,热床120被升高至上表面靠近挤出头140的喷嘴,然后开始对模型的第一层切片的打印。在第一层切片打印完成之后,热床120将下降切片层高的高度,然后挤出头140开始在第一层切片的上表面上进行第二层切片的打印。如此重复上述过程,以完成对整个模型的打印。
在进行3D打印之前,切片软件除了需要对模型进行切片,还需要预先设定好每个模型将来在热床120上的打印位置,也就是说,会预先设定好各个模型在切片软件中生成的虚拟热床上的布置区域,这一过程可以称之为模型的“摆盘”。对于需要打印多个模型的3D打印过程来说,可能需要将模型分成多个批次进行打印,在一个打印批次中,多个模型中的至少部分模型同时在热床120上成型。也就是说,可能需要对多个模型进行多次“摆盘”,以确定每个打印批次中虚拟热床上的模型的布局。后续3D打印机将按照摆盘时的布局对多个模型进行打印。
3D打印模型的摆盘对后续的打印过程影响很大,如果模型的布局不好,则可能会浪费热床120上的打印区域,从而导致需要更多的打印批次才能将所有模型打印完成。这延长了打印时间,同时还导致挤出头140的空驶时间增加,因此降低了打印效率。
在相关技术中,一些切片软件已经有了3D打印模型摆盘的功能。例如Cura和Prusa等切片软件已经实现了自动摆盘。这些软件一般会首先获取每个模型的凸包,凸包是指一个可以包围模型在水平面(即热床120所在的平面)上的二维投影的凸多边形。然后切片软件将基于这些模型的凸包形状来进行“摆盘”,使得各个模型的凸包彼此不重合但是可以最大化利用热床120上的可用区域,这一过程可以被称为2D装箱(bin-packing)操作。图2示出了利用相关技术的切片软件进行摆盘的模型布局200的示意图。如图2所示,这些待打印模型是一个手枪模型的多个零件,图中各个模型的凸包由虚线示出。
然而,相关技术的摆盘功能存在如下几个缺陷,如图2中的模型A所示,该模型的凸包面积相较于模型本身的水平投影的面积较大,因此如果按照凸包进行摆盘的话,模型的凸包超过其水平投影的部分无法设计用于摆放其他模型,这可能会造成大面积的浪费。另外,相关技术的摆盘功能只考虑模型凸包形状的影响,没有考虑模型其他属性(例如模型的打印高度、模型的打印温度等)对于摆盘的影响,因此摆盘策略的优化程度不高。
下面参照图3对本公开实施例的用于3D打印的方法进行详细说明。图3示出了根据本公开的实施例的用于3D打印的方法300的流程图,如图3所示,该方法300包括:
步骤301,获取模型文件,模型文件定义待打印的多个模型;
步骤302,确定多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于3D打印的3D打印机的热床上的工作区域相对应的虚拟空间;
步骤303,将多个模型分配到至少一个盘内的相应目标区域。
其中,步骤302进一步包括,对于多个模型中的每个模型:
步骤3021,至少根据该模型的形状特征,在至少一个盘内确定多个候选区域;
步骤3022,根据每个候选区域的位置参数以及该模型的打印参数,分别确定多个候选区域对于该模型的相应代价;以及
步骤3023,根据相应代价从多个候选区域中选择该模型的目标区域。
根据本公开的实施例,在对多个模型进行摆盘时,先确定模型的多个候选区域,然后对每个候选区域进行评价并计算其代价,最后根据代价从多个候选模型中选择出最合适的候选区域以作为模型的目标区域,因此本公开实施例的方法能够提供更有利于后续的3D打印过程的优化摆盘策略。另外,本公开实施例的方法相较于相关技术充分考虑模型其他属性(即模型的打印参数)等对于确定模型的目标区域的影响,因此进一步提高了摆盘策略的优化程度。
在步骤301中可以由相关的切片获取模型文件,上述模型文件可以包括整个待打印对象的模型数据,这个模型数据可以由切片软件分解成多个模型,每个模型形成整个待打印对象的一个零件,例如如图2所示,待打印对象可以是手枪,多个模型为手枪的多个零件。在另外一些实施例中,模型文件还可以包含已经分解好的多个模型,或者是非关联的多个独立模型。
用于打印每一个打印批次中的至少一个模型的热床上的工作区域所对应的虚拟空间称之为“一个盘”,因此多批次打印也可以被称为多盘打印。在步骤302中,可以依次确定多个模型中的每个模型在多个盘中的其中一个盘中的目标区域。目标区域的形状大小和模型在水平面上的投影大小完全相同,在后续的实际打印过程中,每个模型将在其对应的目标区域内成型。
在确定好每个模型的目标区域之后,即完成摆盘操作,此时,在多个盘的每个盘上均布置有至少一个模型的目标区域,从而形成多个模型在多个盘上的打印布局。在步骤303中,按照确定好的打印布局将多个模型分配到至少一个盘内的相应目标区域。
下面详细说明步骤302中的子步骤。
在步骤3021中,对于每个模型,可以在多个盘上确定多个候选区域,这些候选区域的形状大小和模型在水平面上的投影大小完全相同,后续从这些候选区域中确定出一个目标区域。这些候选区域可以例如根据该模型的形状特征以及对应盘上的剩余区域(即,未被已定位模型的目标区域所占据的热床上的工作区域)确定,以使得候选区域和已定位模型的目标区域不重合,但是可以实现热床打印区域的利用率最大化。
在步骤3022中,可以分别计算多个候选区域的对于该模型的代价,上述代价可以理解为对候选区域的评价,代价越高表示该候选区域不适宜选择作为目标区域,相反地,代价越低,则越适宜选择作为目标区域。在步骤3023中,根据相应代价从多个候选区域中选择该模型的目标区域,后续在目标区域内对该模型进行打印有利于多个模型的成型。上述模型的打印参数可以包括:模型的凸包、模型的打印温度、热床温度、模型的竖直尺寸等参数。根据每个候选区域的位置参数以及该模型的打印参数确定多个候选区域的代价的方法将在下文进行详细说明,这里不再赘述。后续可以比较多个候选区域的相应代价的大小,并选择代价值最小的候选区域作为目标区域。
下面将参照图4对本实施例的方法的一个具体示例进行详细说明。图4示出了根据本公开的实施例的方法确定模型的多个候选区域的原理400的示意图。示例性地,模型文件定义4个待打印的模型,然后切片软件按照提前预定好的顺序依次确定这4个模型的目标区域。如图4所示,4个模型中的第一个模型已经在盘A中的阴影区域410内确定好了目标区域,在对第二个模型进行目标区域确定时,可以先在盘A中确定出多个候选区域,例如图4所示的候选区域401、402、403和404。然后分别计算这四个候选区域对于第二个模型的代价,若这些候选区域存在代价小于预设代价阈值的候选区域,那么从这4个候选区域中选择代价最小的候选区域以作为目标区域;若这些候选区域的代价均大于预设代价阈值,那么重新创建一个盘B,也就是说新增一个打印批次,然后在盘B上确定第二个模型的目标区域。具体操作和在盘A中确定目标区域相同,即包括在盘B上根据该模型的形状特征确定多个候选区域405,然后分别计算多个候选区域的代价,基于代价从多个候选区域中确定目标区域,其具体过程不再详述。在对第三个模型进行目标区域确定时,可以先在盘A中确定出多个候选区域,若该多个候选区域的代价均超过预设代价阈值,那么进而在盘B中确定出多个候选区域,若盘B中的多个候选区域的代价仍然超过预设代价阈值,那么可以再重新创建一个盘C,并在盘C中确定目标区域。如此,重复上述过程直到所有模型均已确定出其各自的目标区域。
图5示出了根据本公开实施例的确定多个候选区域的方法500的流程图,其中,形状特征包括该模型的水平投影的凸包,方法500包括:
步骤501,根据该模型的水平投影确定水平投影的凸包;
步骤502,判断凸包面积与水平投影比是否大于预设比值:
步骤503,若步骤502的判断结果为是,对该模型进行分解,得到多个子模型,以使得多个子模型的水平投影的凸包面积总和小于该模型的凸包面积;
步骤504,对于至少一个盘中的任一盘,确定该盘未被已经确定的目标区域所占据的空闲区域;
步骤505,根据该模型的多个子模型的凸包、多个子模型之间的约束关系以及空闲区域确定该盘内的多个候选区域;
步骤506,若步骤502的判断结果为否,对于至少一个盘中的任一盘,确定该盘未被已经确定的目标区域所占据的空闲区域;
步骤507,根据凸包以及空闲区域确定该盘内的多个候选区域。
如上文所述,模型的水平投影的凸包是指一个可以包围模型在水平面(即热床所在的平面)上的二维投影的凸多边形。因此在步骤501中,可以先确定模型的水平投影的轮廓线,然后在该轮廓线上选取多个凸点,然后依次连接多个凸点形成水平投影的凸包。
在步骤502中,预设比值可以根据实际情况进行设定,若希望热床的打印区域的利用率尽可能的高,则可以设置较低的预设比值。若凸包面积与水平投影比大于预设比值,则表明该模型水平投影和凸包之间的空余面积较大,需要进一步分解,以提高后续热床上打印区域的利用率。上述这种需要进一步分解的模型下文可以被称为“待分解模型”。
在步骤503中,可以按照一条或多条直线将模型进行分解,分解后的子模型的水平投影的凸包面积总和将小于分解前的模型的凸包面积,因此,后续根据子模型的凸包进行摆盘可以提高热床的打印区域的利用率,从而尽可能地减少打印批次的数量。待分解模型可以包括两种形状类型模型,分别为非凸形状和中空形状,下文将详细说明如何对这两种形状的模型进行分解。
如上文结合图4所述,由于多个模型是按照一定次序确定目标区域的,因此,在确定某一模型的目标区域时,在多个盘的至少部分盘上已经存在其他模型的已确定好的目标区域。在步骤504,空闲区域是指该盘未被已经确定的目标区域所占据的区域部分。
在步骤505中,将分解后的子模型与其他未分解的模型放到一起利用切片软件进行例如2D装箱(bin-packing)操作。对于属于同一模型的多个子模型施加约束条件,以使得分解的多个子模型在切片软件的虚拟空间中享有共同的坐标变换(例如,旋转变换或平移变换)。这样保证摆盘后的多个子模型仍是一个设置在一起的整体模型。
在步骤506和步骤507中,若多个模型不存在需要分解的模型,那么可以直接对多个模型进行2D装箱(bin-packing)操作。
下面结合图6和图7详细说明如何对非凸形状和中空形状进行分解。图6示出了对非凸形状的模型进行分解的原理600的示意图;图7示出了对中空形状的模型进行分解的原理700的示意图。如图6所示,响应于确定该模型的水平投影为非凸形状,确定第一直线,其中,第一直线是该模型的水平投影的轮廓线上的第一点到对应的凸包轮廓上的第二点之间的连线。在图6的示例中,第一点和第二点是轮廓线到对应的凸包轮廓距离最远的两个点,但是本公开不限于此。如图6所示的模型,其水平投影(由实线表示)为非凸形状,对于该模型的水平投影的轮廓线上任一点,均存在位于该模型的水平投影的凸包轮廓(由虚线表示)上的对应点。也就是说,轮廓线上的点和凸包轮廓的点是一一对应的,这种一一对应关系可以由切片软件进行确定。如图6所示,点An为水平投影的轮廓线上的点,点Bn为对应的凸包轮廓上的点。在这些点对(An,Bn)中,存在距离最大的一对点,即图中所示的(A1、B1)。在图6的示例中,基于(A1、B1)确定第一直线,然后沿着第一直线对该模型进行分解,在分解之后,两个子模型的凸包的面积将显著小于分解前的模型的凸包面积。
如图7所示,响应于确定该模型为中空形状,确定第二直线,其中,第二直线是该模型的水平投影的内轮廓线上的第一点到第二点之间的连线,第一点和第二点是内轮廓线上不同的两个点。在图7的示例中,第一点和第二点是内轮廓线上距离最远的两个点,但是本公开不限于此。如图7所示的模型,其水平投影为中空形状,和非凸形状的模型不同,对于中空形状的模型而言,其分解直线由模型的水平投影的内轮廓线(由实线表示)上的两个点进行确定。在图7中,在模型的水平投影的内轮廓线上存在距离最大的一对点,即图中所示的(A2、A3)。在该示例中,基于(A2、A3)确定第二直线,然后沿着第二直线对该模型进行分解。后续还可以对模型进行二次分解,例如可以再沿着和第二直线交叉(例如,垂直)的直线进行进一步分解(如图7虚线所示),以将模型分解成4个子模型。二次分解后的多个子模型的凸包面积总和小于分解前模型的凸包面积。
在本公开的多个实施例中,在确定模型的多个候选区域时,可以对该模型进行分解,得到多个子模型,以减小分解后模型的水平投影的凸包面积。后续根据子模型的水平投影的凸包面积确定候选区域,能够充分利用热床的打印区域,提高后续打印的效率。
图8示出了从多个候选区域中选择目标区域的方法800的流程图,其中至少一个盘包括多个盘,如图8所示,该方法800包括:
步骤801,对于多个盘中的任一盘,确定至少一个候选区域;
步骤802,判断该盘中的至少一个候选区域是否包括代价小于预设阈值的候选区域;
步骤803,若步骤802的判断结果为是,从该盘中的至少一个候选区域中选取代价最小的候选区域以作为目标区域;
步骤804,若步骤802的判断结果为否,在多个盘中除该盘的其他盘内确定目标区域。
下面将参照图4对本实施例的方法进行详细说明。示例性地,模型文件定义4个待打印的模型,然后切片软件按照提前预定好的顺序依次确定这4个模型的目标区域,如图4所示,4个模型中的第一个模型已经在盘A中的阴影区域410内确定好了目标区域,在对第二个模型进行目标区域确定时,可以先在步骤801中,在盘A中确定出多个候选区域,例如图4所示的候选区域401、402、403和404。然后分别计算这四个候选区域对于第二个模型的代价。
在步骤802中,判断该盘中的至少一个候选区域是否包括代价小于预设阈值的候选区域。在步骤803中,若这些候选区域存在代价均小于预设代价阈值的候选区域,那么从这4个候选区域中选择代价最小的候选区域以作为该模型的目标区域。在步骤804中,若这些候选区域的代价均大于预设代价阈值,那么重新创建一个盘B,也就是说新增一个打印批次,然后在盘B上确定第二个模型的目标区域。在盘B上确定第二个模型的目标区域的具体操作和在盘A中确定目标区域相同,即包括在盘B上根据该模型的形状特征确定多个候选区域,然后分别计算多个候选区域的代价,基于代价从多个候选区域中确定目标区域,其具体过程不再详述。
在对第三个模型进行目标区域确定时,可以先在盘A中确定出多个候选区域,若该多个候选区域的代价均超过预设代价阈值,那么进而在盘B中确定出多个候选区域,若盘B中的多个候选区域的代价仍然超过预设代价阈值,那么可以再重新创建一个盘C,并在盘C中确定目标区域。如此,重复上述过程直到所有模型均已确定出其各自的目标区域。
在一些实施例中,上述多个候选区域的代价还和将要执行的3D打印的打印模式相关。上述分别确定多个候选区域对于该模型的相应代价还包括:确定3D打印的打印模式,打印模式包括逐件打印或逐层打印,后续根据打印模式确定多个候选区域中每个候选区域对于该模型的代价。所谓“逐件打印”是指,对于同一盘上(或同一批次)的多个模型,先打印完成第一个模型再打印第二个模型,如此,按照“件”的顺序对多个模型进行打印。与“逐件打印”不同,“逐层打印”是对同一盘上(或同一批次)的多个模型同时进行打印,具体的,可以先打印第一个模型的第一层切片,然后打印第二个模型的第一层切片,待多个模型中所有模型的第一层都打印完成后,再打印第一个模型的第二层切片。上述打印模式可以预先在3D打印机中进行设置,例如可以通过对3D打印机的控制按键进行操作来设置打印模式。切片软件可以根据获取到的3D打印机的运行状态来确定打印模式。
图9示出了根据本公开的实施例的确定模型的候选区域的代价的方法900的流程图。其中,打印参数包括热床温度,热床温度为打印该模型时热床的设定温度,如图9所示,该方法900包括:
步骤901,响应于确定打印模式为逐件打印,确定该模型的热床温度;
步骤902,获取多个模型中的至少一个已定位模型的玻璃化温度,至少一个已定位模型已经在与该候选区域对应的盘中确定目标区域;以及
步骤903,根据该模型的热床温度分别与至少一个已定位模型的玻璃化温度之间的差值确定代价。
在步骤901中,模型的热床温度和模型的材料相关,热床温度需要略低于该模型材料的玻璃化温度(即材料由固态转化为液态的温度),如此可以确保在打印该模型时,该模型不会熔化,而且处于适于各层打印切片粘连的温度。
在实际打印过程中,对于同一盘的多个待打印模型需要在同时在热床上进行打印,因此,在逐件打印的打印模式中,该多个待打印模型中的每个模型都需要能够承受对该模型进行打印时设定的热床温度,也就是说需要要求该模型的热床温度均低于同一盘上的其他模型的玻璃化温度(若上述热床温度高于部分模型的玻璃化温度,那么会导致这些模型在打印过程中熔化)。因此,在步骤903中,可以根据该模型的热床温度分别与至少一个已定位模型的玻璃化温度之间的差值确定代价。若这些差值中存在大于0的情况,即该模型的热床温度大于某个或某些模型的玻璃化温度,那么将该模型在该盘上的多个候选区域的代价设置为较高的数值,以表示该候选区域不适合被选择为目标区域。
上述代价可以包括多个代价分量,步骤903进一步包括:基于该模型的热床温度分别与至少一个已定位模型中的每个已定位模型的玻璃化温度之间的差值,计算多个代价分量中的相应一个代价分量。具体地,对于多个代价分量中的每个代价分量,首先判断相对应的差值是否大于零;响应于判定对应的差值大于零,将该代价分量设置为第一预设数值。
在一个示例中,逐件打印模式下的代价可以通过下式进行计算:
其中,costseq(i)表示第i个模型的代价,μ1表示第一预设数值,tbi表示第i个模型的热床温度,tvj表示第j个模型的玻璃化温度。函数I(x)在条件x为真时等于1,在条件x为假时等于0。将理解的是,本公开不限于式(1)表示的代价计算式,在其他实施例中,可以采用任何其他适当的代价计算式。
从上式可以看出代价包括j个代价分量,每个代价分量和该模型的热床温度和其他一个已定位模型的玻璃化温度之间的差值相关。上述差值大于0的情况越多,代价越大,表示该候选区域不适合被选择为目标区域。相反地,若仅存在少数的差值大于0或任何一个差值均小于或等于0,那么代价越小,表示该候选区域适合被选择为目标区域。
图10示出了根据本公开的实施例的确定模型的候选区域的代价的方法1000的流程图。其中,打印参数包括热床温度,热床温度为打印该模型时热床的设定温度,如图10所示,该方法1000包括:
步骤1001,响应于确定打印模式为逐层打印,确定该模型的热床温度;
步骤1002,获取多个模型中的至少一个已定位模型的热床温度,至少一个已定位模型已经在与该候选区域对应的盘中确定目标区域;以及
步骤1003,根据该模型的热床温度分别与至少一个已定位模型的热床温度之间的差值确定代价。
在实际打印过程中,对于同一盘的多个待打印模型需要同时在热床上进行打印。在逐层打印的打印模式中,在对同一盘的多个模型进行打印时,热床温度几乎是恒定不变的或者只在一个很窄的温度范围内变动,这是因为打印模型单层的时间很短(例如在对第一个模型的一层打印完之后,需要立即执行对第二个模型的打印),因此热床来不及在如此短的时间内改变热床温度。因此,对于逐层打印,多个待打印模型的热床温度需要相近,以避免热床在较宽的温度范围内变化。因此,在步骤1003中,可以根据该模型的热床温度分别与至少一个已定位模型的热床温度之间的差值确定代价。若这些差值中存在不等于0的情况,即该模型的热床温度不等于某个或某些已定位模型的热床温度,那么将该模型在该盘上的多个候选区域的代价设置为较高的数值,以表示该候选区域不适合被选择为目标区域。
上述代价同样可以包括多个代价分量,步骤1003进一步包括:基于该模型的热床温度分别与至少一个已定位模型中的每个已定位模型的热床温度之间的差值,计算多个代价分量中的相应一个代价分量。具体地,对于多个代价分量中的每个代价分量,首先判断相对应的差值是否等于零;响应于判定对应的差值不等于零,将该代价分量设置为第二预设数值。
在一个示例中,逐层打印模式下的代价可以通过下式进行计算:
其中,costnonseq(i)表示第i个模型的代价,μ2表示第二预设数值,tbi表示第i个模型的热床温度,tvj表示第j个模型的玻璃化温度。函数I(x)在条件x为真时等于1,在条件x为假时等于0。将理解的是,本公开不限于式(2)表示的代价计算式,在其他实施例中,可以采用任何其他适当的代价计算式。
从上式可以看出代价包括j个代价分量,每个代价分量和该模型的热床温度和其他一个已定位模型的热床温度之间的差值相关。上述差值不等于0的情况越多,代价越大,表示该候选区域不适合被选择为目标区域。相反地,若仅存在少数的差值不等于0或任何一个差值均等于0,那么代价越小,表示该候选区域适合被选择为目标区域。
图11示出了根据本公开的实施例的确定模型的候选区域的代价的方法1100的流程图。其中,打印参数包括该模型的竖直尺寸,如图11所示,该方法1100包括:
步骤1101,响应于确定打印模式为逐件打印,获取3D打印机的顶盖内壁相对于热床的第一高度以及3D打印机的打印头运动所沿的滑杆相对于热床的第二高度;以及
步骤1102,根据竖直尺寸分别与第一高度和第二高度之间的差值确定代价。
在打印模式是逐件打印的情况下,还需要进一步考虑3D打印机的各个部件对模型打印的影响,并以此确定候选区域的代价。下面结合图1对方法1100进行详细说明,如图1所示,假设同一盘中存在两个待打印模型,即图1中所示的模型A和模型B。在实际打印过程中,先打印模型A再打印模型B。那么根据上文3D打印的原理,在开始打印模型B的时候需要将热床进行抬升,使得挤出头的喷嘴达到热床表面。因此,在先打印好的模型A的高度优选应该小于3D打印机的顶盖内壁相对于热床的第一高度hc1,以避免在打印过程中,3D打印机的顶盖与打印好的模型A的顶部干涉。但是,需要补充说明的是,若模型A是该盘中最后一个需要打印的模型,则无需上述限制,因为在A之后没有要打印的模型,热床不再上升,因此也就不会出现顶盖与模型A的顶部干涉的情况。
另外,在先打印好的模型A的高度优选还应该小于3D打印机的滑杆相对于热床的第二高度hc2,以避免在打印过程中,3D打印机的滑杆与打印好的模型A的顶部干涉。但是,需要补充说明的是,若模型A是该盘中某一行模型的最后一个需要打印的模型,则无需上述限制,因为在A之后该行没有要打印的模型(在打印其他行的模型时,滑杆也不会和该行的模型A干涉),因此也就不会出现滑杆与模型A的顶部干涉的情况。
因此,在步骤1102中,将模型的竖直尺寸分别与第一高度和第二高度的差值作为因素考虑候选区域的代价。具体地,可以根据下式来确定代价:
costseq(i)=μ3I(hi-hc2>0)(1-IisLastOfRow(i))+μ4I(hi-hc1>0)*(1-IisLastOfAll(i))..................(3)
其中,costseq(i)表示第i个模型的代价,μ3表示第三预设数值,μ4表示第四预设数值,函数IisLastOfRow(i)用于判断第i个模型是否为该模型所在行的最后一个待打印的模型,函数IisLastOfAll(i)用于判断第i个模型是否为该盘的多个模型中最后一个待打印的模型,hi表示第i个模型的竖直尺寸,hc1表示第一高度,hc2表示第二高度。将理解的是,本公开不限于式(3)表示的代价计算式,在其他实施例中,可以采用任何其他适当的代价计算式。
从上式可以看出代价包括2个代价分量,其中一个代价分量和该模型的竖直尺寸与第一高度的差值相关,另外一个代价分量和该模型的竖直尺寸与第二高度的差值相关。代价越大,表示该候选区域不适合被选择为目标区域。相反地,代价越小,表示该候选区域适合被选择为目标区域。
在一些实施例中,候选区域的代价除了和模型的上述打印参数相关,还和该候选区域的位置参数相关联。该候选区域的位置参数包括以下参数中的至少一个:该候选区域的中心点与该候选区域对应的盘的预设参考点之间的距离;该候选区域的中心点与打印堆的中心点之间的距离,其中,打印堆由该候选区域对应的盘中已确定的至少一个目标区域形成;该候选区域与已确定的至少一个目标区域之间的相对位置关系。上述打印堆是指已经确定好目标区域的至少一个模型形成的区域,这个区域覆盖所有已经确定好的目标区域。
一般而言,对于一个新盘,切片软件会优先将模型的目标区域设置在靠近盘中间的位置,这是因为靠近盘(热床)中间的位置面积相对较大,模型的摆放朝向和摆放位置相对自由,因此位于热床中间的候选区域相对于靠近热床边缘的候选区域,其热床面积的利用率较高。另外,在摆放后续的模型时,优先在已确定好目标区域的打印堆的周围确定候选位置,这样有助于多个模型的目标区域形成一个整体的大区域,从而进一步提高热床面积的利用率。因此,候选区域的代价可以通过下式计算:
costseq(i)=λ1di→pileCenter+λ2di→startingPoint...................(4)
其中,costseq(i)表示第i个模型的代价,di→pileCenter表示候选区域到打印堆中心的距离(例如可以是候选区域的几何中心到打印堆的几何中心的距离),di→startingPoint表示候选区域到对应的盘的预设参考点的距离,上述盘的预设参考点例如可以包括热床的中心点。λ1、λ2为预先设置的参数。从上式可以看出候选区域越远离打印堆的中心、越远离盘的参考点,代价越大,表示越不适合选择为目标区域。将理解的是,本公开不限于式(4)表示的代价计算式,在其他实施例中,可以采用任何其他适当的代价计算式。
需要补充说明的是,虽然在上述多个实施例中,单独说明了如何根据候选区域的某种位置参数或模型的某种打印参数来确定多个候选区域对于该模型的相应代价,但是在另外一些实施例中,还可以将上述提及的多种位置参数和多种打印参数综合考虑以得到相应代价。例如可以通过下式计算代价:
对于逐件打印的打印模式:
对于逐层打印的打印模式:
将理解的是,本公开不限于式(5)和式(6)表示的代价计算式,在其他实施例中,可以采用任何其他适当的代价计算式。
在一些实施例中,如上文所述,可以按照预先确定好的顺序依次确定多个模型的目标区域,因此在方法300中的确定多个模型在至少一个盘内的相应目标区域之前还包括:根据多个模型的多个排序参数确定针对多个模型的顺序,以该顺序为多个模型确定相应的目标区域。上述顺序还可以作为实际进行3D打印时的打印顺序,特别是对于逐件打印的打印模式,3D打印机可以按照上述确定好的顺序对多个模型进行依次打印。排序参数包括以下参数中的至少一个:每个模型所需的热床温度、每个模型的竖直尺寸、每个模型的水平投影的面积和每个模型所需的打印材料。
和上述确定代价类似,也可以基于3D打印的打印模式来确定上述顺序,例如:对逐件打印,可以将热床温度高的模型的顺序优先级设置为高,这可以使得后续的模型的玻璃化温度低于该模型的热床温度,由上述式(1)可知,这样设置可以使得后续确定目标区域的模型的候选区域的代价尽可能的小,从而更容易从多个候选区域中挑选出目标区域。在热床温度相同的情况下,竖直尺寸小的模型优先确定目标区域,这可以使得后续确定目标区域的模型竖直尺寸均大于该模型的竖直尺寸,以避免该模型和3D打印机的部件发生干涉,由上述式(3)可知,该模型竖直尺寸越小,后续模型的候选区域的代价越小。如果热床温度和竖直尺寸都相同,则模型的水平投影的面积大的优先确定目标区域,这是因为水平投影的面积大的模型不容易确定出对应的候选区域,特别是随着已确定目标区域的模型数量逐渐增加,盘中剩余区域的面积越来越小,这样就越难在其中确定出候选区域。而水平投影的面积较小的模型则容易在盘的非规则的剩余区域内找到合适的目标区域,因此水平投影的面积大的模型优先于面积小的模型。另外,所需的打印材料相同的模型尽量在顺序上相邻,以避免3D打印机的挤出头频繁换料。
在一些实施例中,候选区域的确定还和该模型的朝向相关。图12示出了根据本公开的实施例的确定多个候选区域的方法1200的流程图,其中形状特征包括模型中的多个面片的分布特征。如图12所示,该方法1200还包括:
步骤1201,确定该模型中的多个面片的分布特征;
步骤1202,根据分布特征确定该模型的第一端和与第一端相对的第二端,其中,第一端处的面片分布密度大于第二端处的面片分布密度;
步骤1203,根据3D打印机的冷却风道的延伸方向,确定该模型的朝向以使得第一端位于3D打印机的冷却风道中的上游,并且第二端位于冷却风道中的下游;以及
步骤1204,在所确定的朝向下,确定该模型的多个候选区域。
在步骤1201中,多个面片的分布特征可以是模型单位体积内的面片数量,单位体积内的面片数量越多表示模型的该部分结构特征越复杂,在3D打印的过程中需要更长的时间成型。具体来说,可以在切片软件中将模型的边界盒(bonding box)划分成一定密度的网格,计算每个小格子里的顶点数量。顶点数量越多,说明该处的面片越多、几何特征越复杂。也可以计算所有顶点的曲率,曲率大且分布密集的区域,就是面片密度大的区域。除了上述通过面片密度的方式确定模型的几何特征复杂程度,在另外一些实施例中,还可以用模型的悬空(overhang)面积、尖点数量等特征来表征细节的丰富程度。悬空是指法向与Z轴的夹角大于某个阈值(比如120度)的面片。尖点是指至少2对邻接面片的法向差异大于某个阈值(比如60度)的顶点。
在步骤1202和步骤1203中,分别确定面片分布密度相对较大的第一端和面片分布密度相对较小的第二端。然后在摆盘过程中,基于第一端和第二端的朝向确定模型的候选区域,以使得第一端位于3D打印机的冷却风道中的上游,并且第二端位于冷却风道中的下游。这样设置使得在3D打印的过程中,模型结构特征复杂的一端朝向冷却风道中的上游,该端部将承受更多的气流,从而有利于该端部的冷却成型。
图13示出了根据本公开的实施例的确定多个候选区域的方法1300的流程图,其中,形状特征包括该模型的主轴方向。如图13所示,该方法1300还包括:
步骤1301,确定该模型的主轴方向;
步骤1302,根据3D打印机的冷却风道的延伸方向,确定该模型的朝向以使得主轴方向与延伸方向平行;
步骤1303,在所确定的朝向下,确定该模型的多个候选区域。
对于对称形状的模型来说,上述主轴方向可以是对称轴方向。对于非对称形状的模型,主轴方向可以是模型具有最大尺寸所沿的方向。主轴与风道朝向平行的好处是主轴两侧的受风情况基本上是对称的,可以平衡模型左右两侧的冷却效果。
根据本公开的另一方面,还提供了一种用于3D打印的装置1400,包括:获取单元1410,配置成获取模型文件,模型文件定义待打印的多个模型;确定单元1420,配置成确定多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于3D打印的3D打印机的热床上的工作区域相对应的虚拟空间,其中,确定单元1420包括:第一确定模块1421,配置成对于多个模型中的每个模型:至少根据该模型的形状特征,在至少一个盘内确定多个候选区域;第二确定模块1422,配置成根据每个候选区域的位置参数以及该模型的打印参数,分别确定多个候选区域对于该模型的相应代价;以及选择模块1423,配置成根据相应代价从多个候选区域中选择该模型的目标区域;以及分配单元1430,配置成将多个模型分配到至少一个盘内的相应目标区域。
上述各个单元和模块的操作方法和方法300中的各步骤相对应,这里不再赘述。
应当理解的是,在本说明书中,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系或尺寸为基于附图所示的方位或位置关系或尺寸,使用这些术语仅是为了便于描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,并且因此不能理解为对本申请的保护范围的限制。
此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接,还可以是通信;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
在本申请中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。本文讨论的特定模块执行动作包括该特定模块本身执行该动作,或者替换地该特定模块调用或以其他方式访问执行该动作(或结合该特定模块一起执行该动作)的另一个组件或模块。因此,执行动作的特定模块可以包括执行动作的该特定模块本身和/或该特定模块调用或以其他方式访问的、执行动作的另一模块。
还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图14描述的各个模块、单元可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,这些模块中的一个或多个可以一起被实现在片上系统(SoC)中。SoC可以包括集成电路芯片(其包括处理器(例如,中央处理单元(CPU)、微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
根据一些示例性实施例,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器,存储器存储有指令,指令可被至少一个处理器执行以实施如上所述的方法。
根据一些示例性实施例,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令在被计算机执行时使计算机实现如上所述的方法。
根据一些示例性实施例,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时使处理器实现如上所述的方法。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (23)
1.一种用于3D打印的方法,包括:
获取模型文件,所述模型文件定义待打印的多个模型;
确定所述多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于所述3D打印的3D打印机的热床上的工作区域相对应的虚拟空间,其中,确定所述相应目标区域包括,对于所述多个模型中的每个模型:
至少根据该模型的形状特征,在所述至少一个盘内确定多个候选区域;
根据每个候选区域的位置参数以及该模型的打印参数,分别确定所述多个候选区域对于该模型的相应代价;以及
根据所述相应代价从所述多个候选区域中选择该模型的目标区域;以及
将所述多个模型分配到所述至少一个盘内的所述相应目标区域。
2.根据权利要求1所述的方法,其中,所述形状特征包括该模型的水平投影的凸包,其中,所述确定多个候选区域包括:
根据该模型的水平投影确定所述凸包;
响应于确定凸包面积与水平投影面积比不大于预设比值,对于所述至少一个盘中的任一盘:
确定该盘未被已经确定的目标区域所占据的空闲区域;以及
根据所述凸包以及所述空闲区域确定该盘内的多个候选区域。
3.根据权利要求1所述的方法,其中,所述形状特征还包括该模型的多个子模型的水平投影的凸包,其中,所述确定多个候选区域还包括:
响应于确定凸包面积与水平投影面积比大于所述预设比值,对该模型进行分解,得到多个子模型,以使得所述多个子模型各自的水平投影的凸包面积总和小于该模型的凸包面积;
对于所述至少一个盘中的任一盘,
确定该盘未被已经确定的目标区域所占据的空闲区域;以及
根据该模型的多个子模型的凸包、多个子模型之间的约束关系以及所述空闲区域确定该盘内的多个候选区域。
4.根据权利要求3所述的方法,其中,所述对该模型进行分解包括:
响应于确定该模型的水平投影为非凸形状,确定第一直线,其中,所述第一直线是该模型的水平投影的轮廓线上的第一点到对应的凸包轮廓上的第二点之间的连线;
沿着所述第一直线对该模型进行分解。
5.根据权利要求3所述的方法,其中,所述对该模型进行分解还包括:
响应于确定该模型为中空形状,确定第二直线,其中,所述第二直线是该模型的水平投影的内轮廓线上的第一点到第二点之间的连线,所述第一点和所述第二点是所述内轮廓线上不同的两个点;
至少沿着所述第二直线对该模型进行分解。
6.根据权利要求1所述的方法,其中,所述至少一个盘包括多个盘,其中,根据所述相应代价从所述多个候选区域中选择该模型的目标区域包括:
对于所述多个盘中的任一盘,
响应于确定该盘中的至少一个候选区域的所述代价均大于预设阈值,在所述多个盘中除该盘的其他盘内确定所述目标区域。
7.根据权利要求1所述的方法,其中,所述至少一个盘包括多个盘,其中,根据所述相应代价从所述多个候选区域中选择该模型的目标区域包括:
对于所述多个盘中的任一盘,
响应于确定该盘中的至少一个候选区域包括代价小于预设阈值的候选区域,从该盘中的至少一个候选区域中选取代价最小的候选区域以作为所述目标区域。
8.根据权利要求1-7中任一项所述的方法,其中,所述分别确定所述多个候选区域对于该模型的相应代价还包括:
确定所述3D打印的打印模式,所述打印模式包括逐件打印或逐层打印;
根据所述打印模式确定所述多个候选区域中每个候选区域对于该模型的代价。
9.根据权利要求8所述的方法,其中,所述打印参数包括热床温度,所述热床温度为打印该模型时所述热床的设定温度,其中,所述根据所述打印模式确定所述多个候选区域中每个候选区域对于该模型的代价包括:
响应于确定所述打印模式为逐件打印,确定该模型的热床温度;
获取所述多个模型中的至少一个已定位模型的玻璃化温度,所述至少一个已定位模型已经在与该候选区域对应的盘中确定目标区域;以及
根据该模型的热床温度分别与所述至少一个已定位模型的玻璃化温度之间的差值确定所述代价。
10.根据权利要求9所述的方法,其中,所述代价包括多个代价分量,其中,根据该模型的热床温度分别与所述至少一个已定位模型的玻璃化温度之间的差值确定所述代价还包括:
基于该模型的热床温度分别与所述至少一个已定位模型中的每个已定位模型的玻璃化温度之间的差值,计算所述多个代价分量中的相应一个代价分量,其中,对于所述多个代价分量中的每个代价分量:
确定对应的差值是否大于零;
响应于确定对应的差值大于零,将该代价分量设置为第一预设数值,以表示该候选区域不适合被选择为目标区域。
11.根据权利要求8所述的方法,其中,所述打印参数包括热床温度,其中,所述热床温度为打印该模型时所述热床的设定温度,其中,所述根据所述打印模式确定所述多个候选区域中每个候选区域对于该模型的代价包括:
响应于确定所述打印模式为逐层打印,确定该模型的热床温度;
获取所述多个模型中的至少一个已定位模型的热床温度,所述至少一个已定位模型已经在与该候选区域对应的盘中确定目标区域;以及
根据该模型的热床温度分别与所述至少一个已定位模型的热床温度之间的差值确定所述代价。
12.根据权利要求11所述的方法,其中,所述代价包括多个代价分量,其中,根据该模型的热床温度分别与所述至少一个已定位模型的热床温度之间的差值确定所述代价还包括:
基于该模型的热床温度分别与所述至少一个已定位模型中的每个已定位模型的热床温度之间的差值,计算所述多个代价分量中的相应一个代价分量,其中,对于所述多个代价分量中的每个代价分量:
确定对应的差值是否等于零;
响应于确定对应的差值不等于零,将该代价分量设置为第二预设数值,以表示该候选区域不适合被选择为目标区域。
13.根据权利要求8所述的方法,其中,所述打印参数包括该模型的竖直尺寸,其中,所述根据所述打印模式确定所述多个候选区域中每个候选区域对于该模型的代价包括:
响应于确定所述打印模式为逐件打印,获取所述3D打印机的顶盖内壁相对于所述热床的第一高度以及所述3D打印机的打印头运动所沿的滑杆相对于所述热床的第二高度;以及
根据所述竖直尺寸分别与所述第一高度和所述第二高度之间的差值确定所述代价。
14.根据权利要求1-7中任一项所述的方法,其中,该候选区域的位置参数包括以下参数中的至少一个:
该候选区域的中心点与该候选区域对应的盘的预设参考点之间的距离;
该候选区域的中心点与打印堆的中心点之间的距离,其中,所述打印堆由该候选区域对应的盘中已确定的至少一个目标区域形成;以及
该候选区域与所述已确定的至少一个目标区域之间的相对位置关系。
15.根据权利要求1-7中任一项所述的方法,还包括:
在所述确定所述多个模型在至少一个盘内的相应目标区域之前:
根据所述多个模型的多个排序参数确定针对所述多个模型的顺序,以该顺序为所述多个模型确定相应的目标区域。
16.根据权利要求15所述的方法,其中,所述排序参数包括以下参数中的至少一个:
每个模型所需的热床温度;
每个模型的竖直尺寸;
每个模型的水平投影的面积;和
每个模型所需的打印材料。
17.根据权利要求1-7中任一项所述的方法,其中,所述形状特征包括模型中的多个面片的分布特征,其中,所述确定多个候选区域还包括:
确定该模型中的多个面片的分布特征;
根据所述分布特征确定该模型的第一端和与所述第一端相对的第二端,其中,所述第一端处的面片分布密度大于所述第二端处的面片分布密度;
根据所述3D打印机的冷却风道的延伸方向,确定该模型的朝向以使得所述第一端位于所述3D打印机的冷却风道中的上游,并且所述第二端位于所述冷却风道中的下游;以及
在所确定的朝向下,确定该模型的所述多个候选区域。
18.根据权利要求1-7中任一项所述的方法,其中,所述形状特征包括该模型的主轴方向,其中,所述确定多个候选区域还包括:
确定该模型的主轴方向;
根据所述3D打印机的冷却风道的延伸方向,确定该模型的朝向以使得所述主轴方向与所述延伸方向平行;以及
在所确定的朝向下,确定该模型的所述多个候选区域。
19.根据权利要求1-7中任一项所述的方法,还包括:对已分配到所述至少一个盘的所述多个模型进行切片。
20.一种用于3D打印的装置,包括:
获取单元,配置成获取模型文件,所述模型文件定义待打印的多个模型;
确定单元,配置成确定所述多个模型在至少一个盘内的相应目标区域,其中,每个盘均为与用于所述3D打印的3D打印机的热床上的工作区域相对应的虚拟空间,其中,所述确定单元包括:
第一确定模块,配置成对于所述多个模型中的每个模型:至少根据该模型的形状特征,在所述至少一个盘内确定多个候选区域;
第二确定模块,配置成根据每个候选区域的位置参数以及该模型的打印参数,分别确定所述多个候选区域对于该模型的相应代价;以及
选择模块,配置成根据所述相应代价从所述多个候选区域中选择该模型的目标区域;以及
分配单元,配置成将所述多个模型分配到所述至少一个盘内的所述相应目标区域。
21.一种计算机设备,包括:
存储器、处理器以及存储在所述存储器上的计算机程序,
其中,所述处理器被配置为执行所述计算机程序以实现权利要求1至19中任一项所述方法的步骤。
22.一种非暂态计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至19中任一项所述方法的步骤。
23.一种计算机程序产品,包括计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至19中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210369143.4A CN114750410A (zh) | 2022-04-08 | 2022-04-08 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
PCT/CN2023/087061 WO2023193808A1 (zh) | 2022-04-08 | 2023-04-07 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210369143.4A CN114750410A (zh) | 2022-04-08 | 2022-04-08 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114750410A true CN114750410A (zh) | 2022-07-15 |
Family
ID=82329551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210369143.4A Pending CN114750410A (zh) | 2022-04-08 | 2022-04-08 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114750410A (zh) |
WO (1) | WO2023193808A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193808A1 (zh) * | 2022-04-08 | 2023-10-12 | 上海轮廓科技有限公司 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8983643B2 (en) * | 2010-01-15 | 2015-03-17 | Stratasys, Inc. | Method for generating and building support structures with deposition-based digital manufacturing systems |
CN105931296A (zh) * | 2016-04-19 | 2016-09-07 | 中山大学 | 一种基于轮廓的3d打印物体的快速排样方法及其装置 |
CN110920076A (zh) * | 2018-09-20 | 2020-03-27 | 三纬国际立体列印科技股份有限公司 | 3d打印机的物件边界检测方法 |
CN111976135B (zh) * | 2020-07-13 | 2022-03-11 | 深圳市创必得科技有限公司 | 3d模型的摆放方法、装置、存储介质及3d打印机 |
CN113681896B (zh) * | 2021-08-20 | 2023-07-07 | 上海轮廓科技有限公司 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
CN114013044A (zh) * | 2021-11-01 | 2022-02-08 | 深圳拓竹科技有限公司 | 用于3d打印的方法、计算设备、存储介质和程序产品 |
CN114750410A (zh) * | 2022-04-08 | 2022-07-15 | 上海轮廓科技有限公司 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
-
2022
- 2022-04-08 CN CN202210369143.4A patent/CN114750410A/zh active Pending
-
2023
- 2023-04-07 WO PCT/CN2023/087061 patent/WO2023193808A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023193808A1 (zh) * | 2022-04-08 | 2023-10-12 | 上海轮廓科技有限公司 | 用于3d打印的方法、装置、设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2023193808A1 (zh) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11635747B2 (en) | System and method for generating fabrication parameters of a part to be fabricated | |
Xu et al. | Curved layer based process planning for multi-axis volume printing of freeform parts | |
US10539949B2 (en) | Three-dimensional printing appratus and method for calibrating printing inaccuracy thereof | |
CN108312548B (zh) | 基于模型表面特征混合自适应切片的五轴联动3d打印方法 | |
JP5615667B2 (ja) | 三次元造形装置用の設定データ作成装置、三次元造形装置用の設定データ作成方法及び三次元造形装置用の設定データ作成プログラム並びにコンピュータで読み取り可能な記録媒体 | |
JP5615668B2 (ja) | 三次元造形装置用の設定データ作成装置、三次元造形装置用の設定データ作成方法及び三次元造形装置用の設定データ作成プログラム並びにコンピュータで読み取り可能な記録媒体 | |
JP4346021B2 (ja) | V−cadデータを用いたラピッドプロトタイピング方法と装置 | |
US7769481B2 (en) | Head assignment system and method | |
JP6928175B2 (ja) | 構造体積取得方法及び装置、非一時的なコンピュータ可読記憶媒体並びにプリンタ | |
US20150251358A1 (en) | Three dimensional printing apparatus and method for controlling printing head thereof | |
JP2014126901A (ja) | Cam装置及び製品形状加工方法 | |
CN111037917A (zh) | 一种基于模型拆分与拼接打印的fdm打印方法、系统及介质 | |
CN109532006A (zh) | 一种自适应层厚切片方法及打印系统 | |
WO2023193808A1 (zh) | 用于3d打印的方法、装置、设备、存储介质和程序产品 | |
US11931965B2 (en) | 3D printing method and device | |
WO2023072236A1 (zh) | 用于3d打印的方法、计算设备、存储介质和程序产品 | |
CN113601833A (zh) | 一种fdm三维打印控制系统 | |
KR20200010976A (ko) | 잉크젯 위치 조절 방법 및 3차원 출력 장비 | |
JP6548519B2 (ja) | 三次元造形装置及び三次元造形方法 | |
US20100168890A1 (en) | Three-Dimensional Data Extraction Using Ray Casting | |
CN114851345A (zh) | 一种采用复杂曲面分层的3d混凝土打印路径规划方法 | |
CN114929457A (zh) | 用于增材制造的对象的空间布置 | |
CN114670450B (zh) | 用于3d打印的方法、装置、设备、存储介质和程序产品 | |
US20200070425A1 (en) | Three-dimensional printing method and three-dimensional printing device | |
US20170259508A1 (en) | Three-dimensional printing method and three-dimensional printing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |