一种面向3D打印的简单多边形多层旋转体生成方法及系统与流程

文档序号:11499412阅读:386来源:国知局
一种面向3D打印的简单多边形多层旋转体生成方法及系统与流程

本发明属于3d打印领域,尤其涉及一种面向3d打印的简单多边形多层旋转体生成方法及系统。



背景技术:

3d打印,又称增材制造(additivemanufacturing,am),是一种以数字模型文件为基础,采用材料逐层累加的方式制造实体的技术。3d打印在定制化几何设计与处理上具有天然的优势,在医疗、教育、娱乐、时尚等领域的应用越来越广泛,对模型进行实例化制造也变得更加便捷,同时其优化问题也开始引起研究人员的注意。

为了节省打印材料以及打印时间,通常都会改变模型的内部填充结构,对模型进行形变或者在对其进行切割后分块打印,以降低其对支撑结构的需求。所以我们希望生成的多层旋转体能够在较为压缩的空间上进行打印,并且可以一体打印无需后期组装。

简单多边形是一类常见的,由简单闭折线所围成的多边形。对于任意的一个对称的简单多边形,可以很容易的通过偏移的方式对它进行分层,产生一个三维多层旋转体。这种方法虽然高效,但是同时也存在着一些局限性:(1)如果直接使用偏移的方法进行分层,那么多边形的形状信息会随着分层不断的进行偏移而被破坏;(2)为了保留形状信息,考虑直接使用缩放的方式来进行分层。在静态的情况下,直接缩放可以满足用户的要求,而当每个分层绕轴进行旋转运动时就可能发生层与层之间的碰撞,从而影响到整个结构旋转的自由度。

综上所述,现有的面向3d打印的简单多边形多层旋转体生成方法可以做到分层,但是没有考虑到旋转时的碰撞问题。因此,亟需找到一种由任意的简单多边形生成三维旋转体的方法,此旋转体的每一层在旋转时不会与其它层发生碰撞,并且此三维旋转体可以在压缩空间上一体打印无需后期组装。



技术实现要素:

为了解决现有技术的不足,本发明提供了一种面向3d打印的简单多边形多层旋转体生成方法,本发明的方法提出根据给定任意简单多边形生成多层旋转体的方法,旋转体各个层可以自由旋转而不会发生碰撞。

本发明的一种面向3d打印的简单多边形多层旋转体生成方法,包括:

步骤(1):初始化当前分层为相邻外层,以当前分层中扫掠面多边形面积最小为优化目标,查找当前分层中的最优对称轴;

步骤(2):根据旋转角度来优化当前分层的位置和缩放比例,得到当前分层的相连内层;

步骤(3):将得到的当前分层的相连内层作为外层,迭代执行步骤(1)-步骤(2),直到当前分层的面积小于一个定值,得到给定多边形的所有分层;

步骤(4):将给定多边形的所有分层的数据生成三维模块,进而输入至3d打印机而得到多层旋转体。

进一步的,所述步骤(1)中查找当前分层中的最优对称轴的具体过程为:

步骤(1-1):每个分层在绕对称轴旋转时,会产生一个扫掠面,其中,扫掠面多边形是当前分层与其关于对称轴的对称多边形的并集;

步骤(1-2):选取当前分层上两个不同的点组成一个点对,每个点对则确定一条轴,遍历所有点对找到一条对称轴使得扫掠面多边形面积最小。

这样能够通过计算其内部轮廓与内部轮廓所对应的旋转轴,使之能够在上层空间内自由旋转而不发生碰撞。

进一步的,在所述步骤(1-1)中,当前分层在旋转时是否会与相邻外层进行碰撞取决于扫掠面多边形与相邻外层是否相交。

进一步的,在所述步骤(1-2)中,不同对称轴产生不同的扫掠多边形。

进一步的,所述步骤(2)中根据旋转角度来优化当前分层的位置和缩放比例,得到当前分层的相连内层的具体过程为:

步骤(2-1):求扫掠面多边形的最小有向包围盒(orientedboundingbox,obb);

步骤(2-2):通过旋转,平移和缩放变换找到相邻外层内最大的矩形,此矩形的长宽比与步骤(2-1)中所求最小有向包围盒的长宽比一致;

步骤(2-3):根据旋转角度,位移和缩放系数计算变换矩阵;对当前分层应用变换矩阵。

这样能够使任一给定的多边形能够在上层空间内自由旋转而不发生碰撞,同时面积最大。

进一步的,在所述步骤(4)中,将给定多边形的所有分层的数据生成三维模块的具体过程为:

步骤(4-1):根据每一层的轮廓线生成带状结构;

步骤(4-2):在带状结构上挖空圆柱生成t型结构,生成三维模型输出stl格式的文件。

本发明还提供了一种面向3d打印的简单多边形多层旋转体生成系统。

本发明的一种面向3d打印的简单多边形多层旋转体生成系统,包括:

最优对称轴查找单元,其用于初始化当前分层为相邻外层,以当前分层中扫掠面多边形面积最小为优化目标,查找当前分层中的最优对称轴;

当前分层的相连内层获取模块,其用于根据旋转角度来优化当前分层的位置和缩放比例,得到当前分层的相连内层;

给定多边形的所有分层获取模块,其用于将得到的当前分层的相连内层作为外层,查找最优对称轴并获取当前分成的相连内层,直到当前分层的面积小于一个定值,得到给定多边形的所有分层;

多层旋转体生成模块,其用于将给定多边形的所有分层的数据生成三维模块,进而输入至3d打印机而得到多层旋转体。

进一步的,所述最优对称轴查找单元包括:

扫掠面产生模块,其用于当每个分层在绕对称轴旋转时,会产生一个扫掠面,其中,扫掠面多边形是当前分层与其关于对称轴的对称多边形的并集;

对称轴选取模块,其用于选取当前分层上两个不同的点组成一个点对,每个点对则确定一条轴,遍历所有点对找到一条对称轴使得扫掠面多边形面积最小。

进一步的,所述当前分层的相连内层获取模块,其包括:

最小有向包围盒求取模块,其用于求扫掠面多边形的最小有向包围盒;

相邻外层内最大矩形查找模块,其用于通过旋转,平移和缩放变换找到相邻外层内最大的矩形,此矩形的长宽比与最小有向包围盒的长宽比一致;

变换矩阵计算模块,其用于根据旋转角度,位移和缩放系数计算变换矩阵;对当前分层应用变换矩阵。

进一步的,所述多层旋转体生成模块包括:

带状结构生成模块,其用于根据每一层的轮廓线生成带状结构;

三维模型输出模块,其用于在带状结构上挖空圆柱生成t型结构,生成三维模型输出stl格式的文件。

与现有技术相比,本发明的有益效果是:

(1)本发明对于给定的简单多边形,计算其内部轮廓与内部轮廓所对应的旋转轴,使之能够在上层空间内自由旋转而不发生碰撞,同时面积最大,经过迭代最终在多边形内生成多层轮廓结构。

(2)本发明生成的模型,可以通过3d打印一次成型不需要后期组装;

(3)本发明生成的模型,可以在压缩的空间上进行打印,提高了3d打印的效率,降低了3d打印的成本。

附图说明

构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。

图1为本发明的面向3d打印的简单多边形多层旋转体生成方法流程图;

图2(a)为对称轴z1对应不同的扫掠面;

图2(b)为对称轴z2对应不同的扫掠面;

图3为点对间的测地距离;

图4(a)为在多边形的边界框内生成的随机点备用;

图4(b)为选择中心点的过程;

图4(c)为优化位置的结果;

图5(a)为带状结构的示意图;

图5(b)为t型结构的示意图;

图6为生成与对称轴垂直的线段过程;

图7(a)为旋转结构连接的两层模型;

图7(b)为旋转结构连接的两层模型的局部放大模型;

图8是本发明面向3d打印的简单多边形多层旋转体生成系统的结构示意图;

图9是最优对称轴查找单元的结构示意图;

图10是当前分层的相连内层获取模块的结构示意图;

图11是多层旋转体生成模块的结构示意图。

具体实施方式

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1所示,本发明的面向3d打印的简单多边形多层旋转体生成方法,包括:

步骤(1):初始化当前分层为相邻外层,以当前分层中扫掠面多边形面积最小为优化目标,查找当前分层中的最优对称轴。

其中,初始化当前分层p1为相邻外层p。每一层都是相似的简单多边形;

具体地,所述步骤(1)中查找当前分层中的最优对称轴的具体过程为:

步骤(1-1):每个分层在绕对称轴旋转时,会产生一个扫掠面,相邻分层在旋转时是否会与分层p1进行碰撞取决于扫掠面多边形q与分层p1是否相交。扫掠面多边形q是当前分层p1关于旋转轴z的对称多边形p1′与p1的并集;

步骤(1-2):找到一条对称轴z使得扫掠面多边形q的面积最小。p1周长为lp,选取p1上两个不同的点组成一个点对,每个点对可以确定一条轴。如图2中,不同轴的选择会产生不同的扫掠多边形q。遍历所有的点对,可以找到一个面积最小的q。与此q对应的轴z即为所求。

其中,对于步骤(1-2),对点对进行筛选从而减少不必要的计算。通过约束点对间测地距离的范围来对旋转轴进行筛选,我们规定下界为上界为

如图3所示,z3点对间的距离为g3,z4点对间的距离为g4,g3在范围内保留,g4不在范围内所以被剔除。

这样能够通过计算其内部轮廓与内部轮廓所对应的旋转轴,使之能够在上层空间内自由旋转而不发生碰撞。

步骤(2):根据旋转角度来优化当前分层的位置和缩放比例,得到当前分层的相连内层;

具体地,根据旋转角度来优化当前分层的位置和缩放比例,得到当前分层的相连内层的具体包括以下步骤:

步骤(2-1):求扫掠面多边形的最小有向包围盒;在求得q和轴z之后,接下来就要在p中找到最大的q′,q′=k·o·q。k为缩放系数,o为位置信息。我们把问题“求多边形p内最大多边形q”简化,首先求多边形q的最小有向包围盒r,然后求p中最大的r′=k·o·r。把问题转化为:求多边形p内最大r′。

求得q的最小有向包围盒r,包围盒长宽比为ratio,半长轴ry相对于水平面的夹角为α。接下来就要求多边形p内最大r′;

步骤(2-2):通过旋转,平移和缩放变换找到相邻外层内最大的矩形r′,此矩形的长宽比与步骤(2-1)中所求包围盒的长宽比一致。为了简化计算,对输入p进行一些预处理。需要对p上的点做一个简化,减少点的个数进而减少计算量。如图4(a),在多边形的边界框内生成100个随机点备用。

首先选择方向θ,设长宽比为ratio的测试矩形r2的长边初始状态为水平。旋转角θ的范围为[-90,90°]。每次计算偏转1°。

如图4(b),选择中心点c。在预处理部分,我们在p的内部随机生成了100个点。依次选取每个点作为矩形r2的中心点。过当前中心点引两条相互垂直的线段lx,ly。其中矩形长边ly与水平线的夹角为当前的旋转角度θ。在lx,ly上各自均匀地取3个补偿点作为中心点进行检测,补偿点可能会产生更好的效果。计算ly与p轮廓的交点a,b。然后取中心点到a,b两个交点中距离较小的值dy。那么2dy就是当前中心点和旋转角度上最大可能的长度。在ly上的补偿点c1,c2,c3与中心点使用同样的方式计算。同理,lx上的补偿点使用宽度来计算和表示。

如图4(c),给定z,c,找到最大长度dmax,同时满足矩形位于多边形内。记录当前求得的最大长度的一半为dmax,当前中心点或者其补偿点作为矩形的中心。首先判断当前中心点及其补偿点的dx是否小于当前求得的最大长度dmax,如果当前点的dx大于dmax,判断当前宽度为长度为2dy,中心点为c(或者c1,c2,c3)的矩形是否在p的内部,如果是则更新dmax;否则缩小dy再次判断,直到dy缩小到dmax,或者当前矩形在p的内部。经过12次迭代,算法最终找到一个旋转角度为θ,中心为c,宽度为2dmax的矩形。求得位置o;

步骤(2-3):在步骤(2-2)为了计算方便,统一从长轴水平角度为0°开始,而r是存在初始角度α的。真实的旋转角度应为旋转角度θ-α。得到位置o,旋转角度θ-α和缩放系数k之后计算出变换矩阵,对当前分层p1应用变换矩阵。

步骤(3):将得到的当前分层的相连内层作为外层,迭代执行步骤(1)-步骤(2),直到当前分层的面积小于一个定值,得到给定多边形的所有分层。

步骤(4):将给定多边形的所有分层的数据生成三维模块,进而输入至3d打印机而得到多层旋转体。

该步骤的具体包括以下步骤:

步骤(4-1):读入并处理输入数据。

如图6,对于每一层轮廓对应的求出外圈与li-1,li的交点以及内圈与li-1,li的交点按上述生成垂直的线段的过程处理使得处的线段与旋转轴垂直。

步骤(4-2):根据处理之后的数据生成三维模型。

首先生成如图5(a)的带状模型。根据更新之后的每一层的轮廓对应的内外圈的点以及模型的高度可以确定一个第i层的带状模型。然后挖空圆柱,如图7(a),对于最外层,根据构造一个带状型;对于最里层,根据构造带状模型;对于倒数第二层,根据构造一个带状模型并挖掉对应的四个圆柱;对于其他层,根据构造一个带状模型并挖掉对应的两个圆柱垂直。如图7(a),生成如图5(b)的t型结构。对于除最内层之外的其他层,根据构造两个t型结构。对于最内层根据构造两个t型结构。

最后:返回生成的三维模型并打印得到三维多层旋转体。

图8是本发明的面向3d打印的简单多边形多层旋转体生成系统的结构示意图。

如图8所示,本发明的一种面向3d打印的简单多边形多层旋转体生成系统,包括:

(1)最优对称轴查找单元,其用于初始化当前分层为相邻外层,以当前分层中扫掠面多边形面积最小为优化目标,查找当前分层中的最优对称轴。

其中,如图9所示,所述最优对称轴查找单元包括:

扫掠面产生模块,其用于当每个分层在绕对称轴旋转时,会产生一个扫掠面,其中,扫掠面多边形是当前分层与其关于对称轴的对称多边形的并集;

对称轴选取模块,其用于选取当前分层上两个不同的点组成一个点对,每个点对则确定一条轴,遍历所有点对找到一条对称轴使得扫掠面多边形面积最小。

(2)当前分层的相连内层获取模块,其用于根据旋转角度来优化当前分层的位置和缩放比例,得到当前分层的相连内层。

其中,如图10所示,所述当前分层的相连内层获取模块,包括:

最小有向包围盒求取模块,其用于求扫掠面多边形的最小有向包围盒;

相邻外层内最大矩形查找模块,其用于通过旋转,平移和缩放变换找到相邻外层内最大的矩形,此矩形的长宽比与最小有向包围盒的长宽比一致;

变换矩阵计算模块,其用于根据旋转角度,位移和缩放系数计算变换矩阵;对当前分层应用变换矩阵。

(3)给定多边形的所有分层获取模块,其用于将得到的当前分层的相连内层作为外层,查找最优对称轴并获取当前分层的相连内层,直到当前分层的面积小于一个定值,得到给定多边形的所有分层。

(4)多层旋转体生成模块,其用于将给定多边形的所有分层的数据生成三维模块,进而输入至3d打印机而得到多层旋转体。

其中,如图11所示,所述多层旋转体生成模块包括:

带状结构生成模块,其用于根据每一层的轮廓线生成带状结构;

三维模型输出模块,其用于在带状结构上挖空圆柱生成t型结构,生成三维模型输出stl格式的文件。

本发明对于给定的简单多边形,计算其内部轮廓与内部轮廓所对应的旋转轴,使之能够在上层空间内自由旋转而不发生碰撞,同时面积最大,经过迭代最终在多边形内生成多层轮廓结构。

本发明生成的模型,可以通过3d打印一次成型不需要后期组装;

本发明生成的模型,可以在压缩的空间上进行打印,提高了3d打印的效率,降低了3d打印的成本。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1