发明内容
为了解决上述问题,本发明的目的是提供一种3D打印方法,用于解决现有技术中存在着在3D打印中,无法对3D打印全过程进行仿真、模拟及优化处理,需要额外进行仿真、模拟及优化处理的工作,从而导致3D打印的效率降低,成本升高的技术问题。
为解决上述技术问题,本发明的实施例采用了如下技术方案:
本发明的实施例提供了一种3D打印方法,所述方法包括:
构建待打印的第一三维模型;
对所述第一三维模型进行拓扑几何检查,获取第二三维模型;
对所述第二三维模型进行网格划分,生成网格模型;
将所述网格模型导入求解器中进行求解并分析,获取第三三维模型,所述第三三维模型为网格模型导入求解器中求得的最优的模型;
对第三三维模型进行打印路径规划、切片以及添加支撑处理,生成打印文件;
对所述打印文件进行转换,生成G代码;
对所述G代码进行处理,生成处理后的G代码;
判断处理后的G代码是否合理,
是,则确定G代码的打印方式并将所述处理后的G代码及其打印方式发送至3D打印机处;
否,则重新处理G代码并重新判断处理后的G代码是否合理,直至判断结果为是。
进一步地,所述构建待打印的第一三维模型具体为:
通过获取待打印的三维模型的点云数据;
对所述点云数据进行处理,构建所述待打印的第一三维模型。
进一步地,对所述第一三维模型进行拓扑几何检查,获取第二三维模型具体为:
通过拓扑几何检查所述第一三维模型是否完整,
是,则获取第二三维模型;
否,则重新构建待打印的第一三维模型,并重新进行拓扑几何检测,直至拓扑几何检查到所述第一三维模型是完整的。
进一步地,所述网格划分包括一维线体、二维面体和三维体积的网格划分。
进一步地,所述将所述网格模型导入求解器中进行求解具体为:
对所述网格模型进行网格检测,获取检测后的网格模型;
对所述检测后的网格模型进行导入求解器进行求解,获取求解结果。
进一步地,所述求解器包括多物理场求解器、有限体积求解器和有限元求解器。
进一步地,所述求解过程具体为:
判断所述网格模型的求解问题的物理场是否单一,
是,则将所述网格模型导入到所述多物理场求解器中进行求解;
否,则判断网格模型的求解问题是否为固体问题,
是,则将所述网格模型导入有限元求解器中进行求解;
否,则将所述网格模型导入有限体积求解器中进行求解。
进一步地,所述分析具体为:通过后处理对求解结果进行分析,并根据分析结果对所述网格模型进行优化,获取优化后的3D打印模型;
判断所述优化后的3D打印模型是否需要修正;
否,则确定所述优化后的3D打印模型为第三三维模型;
是,则重新优化所述3D打印模型并重新判断所述优化后的3D打印模型是否需要修正,直至判断结果为否。
本发明的实施例还提供了一种3D打印装置,所述装置包括如下模块:
构建单元,所述构建单元用于构建待打印的第一三维模型;
第一获取单元,所述第一获模块用于对所述第一三维模型进行拓扑几何检查,获取第二三维模型;
第一生成单元,所述第一生成单元用于对所述第二三维模型进行网格划分,生成网格模型;
第二获取单元,所述第二获取单元用于将所述网格模型导入求解器中进行求解并分析,获取第三三维模型,所述第三三维模型为网格模型导入求解器中求得的最优的模型;
第二生成单元,所述第二生成单元用于对第三三维模型进行打印路径规划、切片以及添加支撑处理,生成打印文件;
转换单元,所述转换单元用于对所述打印文件进行转换,生成G代码;
第三生成单元,所述第三生成单元用于对所述G代码进行处理,生成处理后的G代码;
判断单元,所述判断单元用于判断处理后的G代码是否合理,
是,则确定G代码的打印方式并将所述处理后的G代码及其打印方式发送至3D打印机处;
否,则重新处理G代码并重新判断处理后的G代码是否合理,直至判断结果为是。
本发明的实施例还提供了一种3D打印设备,包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述的一种3D打印方法。
相比于现有技术,本发明的实施例的有益效果在于:
本发明的实施例提供了一种3D打印方法、装置及设备,所述方法包括:构建待打印的第一三维模型;对所述第一三维模型进行拓扑几何检查,获取第二三维模型;对所述第二三维模型进行网格划分,生成网格模型;将所述网格模型导入求解器中进行求解并分析,获取第三三维模型,所述第三三维模型为网格模型导入求解器中求得的最优的模型;对第三三维模型进行打印路径规划、切片以及添加支撑处理,生成打印文件;对所述打印文件进行转换,生成G代码;对所述G代码进行处理,生成处理后的G代码;判断处理后的G代码是否合理,是,则确定G代码的打印方式并将所述处理后的G代码及其打印方式发送至3D打印机处;否,则重新处理G代码并重新判断处理后的G代码是否合理,直至判断结果为是。
所述3D打印方法,集多方式建模、网格划分、求解分析、模型检查、G代码处理、打印扫描路径规划、切片、添加支撑等为一体,满足不同3D打印企业、客户、3D打印产品设计开发人员等的需求,可实现面向不同的用户群体实现目标化、简单化以及多任务同步,协同、高效地完成3D打印从建模到打印出成品的全过程,优化设计打印过程,缩短打印时间;从而节约成本,缩短3D打印产品的设计制造生产的周期,提高效率。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请实施例的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可更换连接,或一体地连接,可以是机械连接,也可以是电连接,可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请实施例中的具体含义。
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本实施例提供了一种3D打印方法,所述方法包括:
构建待打印的第一三维模型;
在实施例的3D打印方法中,所述第一三维模型于建模模块中生成,其中,所述建模模块中包括2D模块、3D模块、点云处理模块;其中,2D模块内部包含有2D几何库,其中包括一些常用的简单几何如点集、曲线、直线、正方形、正六边形等,外层使用开源库LibreCAD、QCAD实现2D CAD工具,既可以将2D模块作为3D模块的草图,草图通过路径扫掠、拉伸等基本几何操作构建3D模型,同样也可以实现3D到2D的转换。
点云处理模块主要用来处理外界设备如照相、三维扫描仪产生的点云数据,内核包括开源的CloudCompare与PCL(点云库),其中,CloudCompare点云处理软件+PCL点云库集成的符合3D打印的点云处理软件。
所述构建待打印的第一三维模型具体为:
通过获取待打印的三维模型的点云数据;
对所述点云数据进行处理,构建所述待打印的第一三维模型。
进一步地,
通过外接设备如照相、三维扫描仪产生的点云数据;
3D模块作为建模模块的主程序,内核包含CAD内核,利用开源的FreeCAD与Blender的部分功能与工具,实现参数化建模与数字建模的结合,既可以面向工程对象建模也可以实现复杂的人体器官等建模。外层利用Qt UI界面,很好地封装起来,让用户可以非常方便地实现3D打印前期建模处理。即所述第一三维模型也可以通过直接绘制建模得到;
3D建模包括参数化建模、构造实体几何、图形化建模。面向工程机械、产品设计领域,同时兼顾动画、器官形状建模
其中,通过建模模块能够导出下述格式的文件:
2D格式:dxf、Batmap、pdf、SVG、cur.dds、icns、jp2、jpg、pbm、pgm、png、ppm、tif、wbmp、webp、ico、xbm、xpm;
3D格式:FCStd、step、iges、brep、dxf、dwg、dae、ply、ifc、vrml、gcode、csg;
3D打印专属格式:STL、OBJ、AMF、3MF;
建模模块中可以实现与外界非常丰富的接口,既可以是通用型也可以是3D打印数据型;导入或导出建模模块中3D模型的文件格式,可以是通用型的STP、IGS,也可以是30打印文件格式,如STL、OBJ、AMF、3MF,其中文件可以携带颜色信息、材料信息及物体内部结构等丰富的信息导入;
对所述第一三维模型进行拓扑几何检查,获取第二三维模型;
拓扑几何检查于网格划分模块中进行;
具体地,对所述第一三维模型进行拓扑几何检查,获取第二三维模型具体为:
通过拓扑几何检查所述第一三维模型是否完整,
是,则获取第二三维模型;
否,则重新构建待打印的第一三维模型,并重新进行拓扑几何检测,直至拓扑几何检查到所述第一三维模型是完整的。
拓扑几何检查是检查所述第一三维模型中是否存在线条缺失和面缺失以及设置的容差是否合适的情况;
对所述第二三维模型进行网格划分,生成网格模型;
经过检测之后的第二三维模型才可以利用网格划分工具进行网格生成。网格划分模块中主要一维线体、二维面体、三维体积的网格划分,网格划分的形式主要是结合结构化网格、非结构化网格,两种网格是可以同时应用在一个模型的某一部分。算法采用自适应算法。网格导出的形式多样,既可以导出.MSH文件,也可是其他格式的文件,其中文件中携带网格信息、块信息、几何信息等丰富的文件信息,也可以同ICEM、MESH、Hypermesh相互使用,也可以直接导入下一个模块,直接进行仿真优化。
将所述网格模型导入求解器中进行求解并分析,获取第三三维模型,所述第三三维模型为网格模型导入求解器中求得的最优的模型;
所述求解和分析于仿真模块中进行,仿真模块除了包括设计阶段的仿真,主要针对模型优化,还包括3D打印过程的仿真优化,主要面向打印路径规划、切片、添加支撑部分。在进行仿真之前同样需要进行网格检测,主要处理网格文件的部分信息的缺失,确保仿真工作的进行。仿真的求解器主要包括面向固体力学的有限元求解器、面向流体力学的有限体积法求解器、面向多物理场的耦合求解器。在进行多物理场耦合求解时,需要分别求解单一物理场。在求解之后可以直接使用软件内置的后处理工具进行数据分析。仿真模块是可以与建模模块交互使用,如在优化之后没必要返回建模模块修改模型,可以直接导出最优的模型进行打印。
其中,对导入划分好的网格模型,开始初期的设置,如定义边界条件、修改网格等工作;
所述将所述网格模型导入求解器中进行求解具体为:
对所述网格模型进行网格检测,获取检测后的网格模型;
对所述检测后的网格模型进行导入求解器进行求解,获取求解结果。
所述求解器包括多物理场求解器、有限体积求解器和有限元求解器。
所述有限元求解器,利用有限元分析手段求解方程组,主要面向单物理场合;
所述有限体积法求解器,主要面向流体力学等涉及流体的物理场合;
所述多物理场合求解器,主要面向力热-流耦合、热流耦合、电-磁力耦合和流固耦合等复杂的物理模拟;
所述求解过程具体为:
判断所述网格模型的求解问题的物理场是否单一,
是,则将所述网格模型导入到所述多物理场求解器中进行求解;
否,则判断网格模型的求解问题是否为固体问题,
是,则将所述网格模型导入有限元求解器中进行求解;
否,则将所述网格模型导入有限体积求解器中进行求解。
其中,所述分析具体为:通过后处理对求解结果进行分析,并根据分析结果对所述网格模型进行优化,获取优化后的3D打印模型;
判断所述优化后的3D打印模型是否需要修正;
否,则确定所述优化后的3D打印模型为第三三维模型;
是,则重新优化所述3D打印模型并重新判断所述优化后的3D打印模型是否需要修正,直至判断结果为否。
后处理:主要显示模型仿真之后的云图、科学分析图以及统计图等;
对第三三维模型进行打印路径规划、切片以及添加支撑处理,生成打印文件;
所述打印路径规划、切片以及添加支撑处理于仿真优化模块中进行处理,其中,在第三三维模型导入仿真优化模块时同样需要进行文件检测,主要查看打印文件是否有“流形错误”,其中检测包括主要有两部分,一部分作用拓扑几何检测普通的几何体文件,另一部分主要面向3D打印文件,如STL、OBJ文件;
扫描路径规划是针对不同的扫描路径会对打印产品成型造成影响,将自动寻求最佳扫描路径,并可以通过仿真优化模块预测对产品的影响;
切片是利用切片软件对打印模型进行切片操作,并可以导入到仿真优化模块中,可以研究切片对产品成型的影响;
添加支撑是给打印的模型文件添加支撑,可以通过仿真优化模块仿真、预测支撑结构对于产品成型的影响。这三个步骤不一定按照规定的流程走,且在软件中实现了封装,在处理后的打印文件可以直接导出也可以转成G代码即为将导出文件开始转换G-Code代码文件;
对所述打印文件进行转换,生成G代码;
对所述G代码进行处理,生成处理后的G代码;
其中所述生成处理后的G代码还包括:
判断是否查看G代码,
是,则启动G代码查看器查看G代码并在查看后判断处理后的G代码是否合理;
否,则直接判断处理后的G代码是否合理;
判断处理后的G代码是否合理,
是,则确定G代码的打印方式并将所述处理后的G代码及其打印方式发送至3D打印机处;
否,则重新处理G代码并重新判断处理后的G代码是否合理,直至判断结果为是。
G代码处理于G代码模块中进行处理,G代码是3D打印最后的文件形式,同样也是客户端与3D打印机交互的文件。G代码模块中最主要包含G代码处理软件,可以检测G代码的生成以及自定义G代码打印方式。在G代码处理模块处理完G代码之后可以将文件通过网格套件发送到3D打印机中,完成最终的打印。
其中,3D打印文件:3D打印文件可以是多格式的,最主要包括STL、0BJ格式;
G代码:利用G代码可以完成最终的打印,G代码也是3D打印最后的文件形式,是客户端与3D打印机交互的文件;
G代码查看器:可以检查打印机喷嘴的行进路线,用户自定义修改G-Code打印模型的不同方式发送;
网格套件:作为网格连接部分,可以调用系统的网格功能,与3D打印机进行连接。
所述3D打印方法,集多方式建模、网格划分、求解分析、模型检查、G代码处理、打印扫描路径规划、切片、添加支撑等为一体,满足不同3D打印企业、客户、3D打印产品设计开发人员等的需求,可实现面向不同的用户群体实现目标化、简单化以及多任务同步,协同、高效地完成3D打印从建模到打印出成品的全过程,优化设计打印过程,缩短打印时间;从而节约成本,缩短3D打印产品的设计制造生产的周期,提高效率。
如图2所示,本发明的实施例还提供了一种3D打印装置,所述装置包括如下模块:
构建单元201,所述构建单元201用于构建待打印的第一三维模型;
第一获取单元202,所述第一获模块202用于对所述第一三维模型进行拓扑几何检查,获取第二三维模型;
第一生成单元203,所述第一生成单元203用于对所述第二三维模型进行网格划分,生成网格模型;
第二获取单元204,所述第二获取单元204用于将所述网格模型导入求解器中进行求解并分析,获取第三三维模型,所述第三三维模型为网格模型导入求解器中求得的最优的模型;
第二生成单元205,所述第二生成单元205用于对第三三维模型进行打印路径规划、切片以及添加支撑处理,生成打印文件;
转换单元206,所述转换单元206用于对所述打印文件进行转换,生成G代码;
第三生成单元207,所述第三生成单元207用于对所述G代码进行处理,生成处理后的G代码;
判断单元208,所述判断单元208用于判断处理后的G代码是否合理,
是,则确定G代码的打印方式并将所述处理后的G代码及其打印方式发送至3D打印机处;
否,则重新处理G代码并重新判断处理后的G代码是否合理,直至判断结果为是。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
如图3所示,本发明的实施例还提供了一种3D打印设备,所述设备包括处理器300以及存储器301;
所述存储器301用于存储程序代码302,并将所述程序代码302传输给所述处理器;
所述处理器300用于根据所述程序代码302中的指令执行上述的一种3D打印方法实施例中的步骤。
示例性的,所述计算机程序302可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器301中,并由所述处理器300执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序302在所述终端设备30中的执行过程。
所述终端设备30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器300、存储器301。本领域技术人员可以理解,图3仅仅是终端设备30的示例,并不构成对终端设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网格接入设备、总线等。
所称处理器300可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器301可以是所述终端设备30的内部存储单元,例如终端设备30的硬盘或内存。所述存储器301也可以是所述终端设备30的外部存储设备,例如所述终端设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器301还可以既包括所述终端设备30的内部存储单元也包括外部存储设备。所述存储器301用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器301还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网格单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立地产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。