CN106273480B - 可凹区域的3d快速打印路径规划方法 - Google Patents
可凹区域的3d快速打印路径规划方法 Download PDFInfo
- Publication number
- CN106273480B CN106273480B CN201610654586.2A CN201610654586A CN106273480B CN 106273480 B CN106273480 B CN 106273480B CN 201610654586 A CN201610654586 A CN 201610654586A CN 106273480 B CN106273480 B CN 106273480B
- Authority
- CN
- China
- Prior art keywords
- boundary
- point
- convexification
- tail
- node
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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)
- Manufacturing & Machinery (AREA)
- Materials Engineering (AREA)
- Image Generation (AREA)
Abstract
本发明公开了可凹区域的3D快速打印路径规划方法。首先,任选区域边界上的一点作为凸化边界搜索的起始点,初始化存储起止边界点和起止边界边的两个双端队列。然后,采用贪心策略,沿打印区域多边形的边界“顺时针”方向进行凸化边界搜索,直到不满足条件的边界点出现或搜索结束;接着,采用贪心策略,沿打印区域多边形的边界“逆时针”方向进行凸化边界搜索,直到不满足条件的边界点出现或搜索结束;最后,判断起止边界点是否相同,若是则结束;否则,连接队头和队尾边界点,形成下一轮搜索的起始条件,进行下一轮边界凸化。本发明避开了多边形打印区域路径规划时可能面临的激光中断和继续问题。
Description
技术领域
本发明涉及3D打印领域,具体而言,涉及可凹区域的3D快速打印路径规划方法。
背景技术
3D打印中的路径规划算法就是对切片分层所获得的截面轮廓进行扫描填充,合理的路径规划不仅能够提高3D打印速度,而且还可以节省打印材料。传统的3D打印路径生成算法在处理凹多边形打印区域时可能面临激光中断和继续问题。
发明内容
为了解决现有技术中的上述问题,本发明提出了一个多边形打印区域的顺时针&逆时针双向凸化分割算法(Clockwise and Counterclockwise Two-way ConvexifySegment Algorithm,CCTCSA),简称CCTCSA算法。提高了激光器的使用效率,延长了激光器的寿命。
CCTCSA算法的基本思想是将多边形打印区域分割成若干个非凹的凸形区域,以此避开多边形打印区域路径规划时可能面临的激光中断和继续问题。
为此,本发明提供一种可凹区域的3D快速打印路径规划方法,包括下列步骤:
步骤1.任意选取区域边界上的一点A作为凸化边界边起始搜索节点;
步骤2.初始化存储“头尾节点”和“头尾边界边”的两个双向队列,队头节点Hp=A,队尾节点Rp=A,队头边界边He=null,队尾边界边Re=null;
步骤3.沿着区域边界的“顺时针”方向进行凸化边界搜索,将顺时针方向的下一个边界点记为P,判断点P是否符合凸化边界条件,如果是,则更新所述两个双向队列,将点P作为顺时针方向的下一个凸化边界边节点,重复步骤3,否则,进行到步骤4;
步骤4.沿着区域边界的“逆时针”方向进行凸化边界搜索,将逆时针方向的下一个边界点记为Q,判断点Q是否符合凸化边界条件,如果是,则更新所述两个双向队列,将点Q作为逆时针方向的下一个凸化边界边节点,重复步骤4,否则,进行到步骤5;
步骤5.判断队头节点和队尾节点是否相同,如果不同,则连接队头节点Hp和队尾节点Rp作为下一轮凸化边界边搜索的起始搜索边界边,将这两个节点作为下一轮凸化边界边搜索的头尾节点,初始化所述两个双向队列,返回到步骤3。
优选地,点P符合凸化边界的条件如下:
队尾边界边Re为空或点P在队尾边界边的右侧,并且
队头边界边He为空或点P在队头边界边的左侧,并且
队头节点Hp在队尾节点Rp和点P形成的连线的右边。
优选地,点Q符合凸化边界的条件如下:
队头边界边He为空或点P在队头边界边反向边的左侧,并且
队尾边界边Re为空或点P在队尾边界边的右侧,并且
队尾节点Rp在队头节点Hp和点P形成的连线的左边。
优选地,令点P或点Q的坐标为P(x,y),则根据如下步骤来判断点P(x,y)是在有向线段的左侧还是右侧:
计算由P(x,y),A(x1,y1),B(x2,y2)组成的两个向量和的叉积υ(P,A,B)若υ>0,则所述点在有向线段的右侧;若υ<0,则所述点在有向线段的左侧;若υ=0,则所述点与有向线段共线。
优选地,所述叉积υ(P,A,B)的计算公式如下:
υ(P,A,B)=(x-x1)×(y2-y1)-(x2-x1)×(y-y1)。
附图说明
将参考附图中所说明的示范性的实施例而在下文中更详细地解释本发明。
图1是CCTCSA算法的处理流程图。
图2是以A为起点进行多边形打印区域的凸化边界搜索过程图。
图3示出了多边形打印区域的另一个凸化边界“EHGFE"。
具体实施方式
图1示出了CCTCSA算法进行打印区域多边形的凸化分割流程。其中,CCTCSA算法将可能为凹的多边形打印区域转变为一系列凸形区域的方法是:
首先,任意选取区域边界上的一点作为凸化边界搜索的起始点,初始化存储起止边界点和起止边界边的两个双端队列Hp,Rp,He,Re。
然后,沿着打印区域多边形的边界“顺时针”方向进行凸化边界搜索,采用贪心策略,直到不满足条件的边界点出现或搜索结束;
紧接着,采用贪心策略,沿着打印区域多边形的边界“逆时针”方向进行凸化边界搜索,直到不满足条件的边界点出现或搜索结束;
最后,根据起止边界点是否相同,判断打印区域多边形的边界凸化过程是否结束。若是,则结束算法;否则,连接队头和队尾边界点,形成下一轮搜索的起始条件,进行下一轮边界凸化。
以图2所示的多边形打印区域为例,若以A为起始搜索点、且先沿着打印区域多边形边界顺时针方向进行搜索,后沿着打印区域多边形边界逆时针方向进行搜索,则多边形打印区域的双向凸化分割过程如图2所示。
初始时刻队头边界点为Head-PNT=A,队尾边界点为Rear-PNT=A,队头边界边为Head-EDGE=null,队尾边界边为Rear-EDGE=null,如图2(1)所不。
步骤1:采用贪心策略,沿着顺时针方向进行凸化边界搜索。如图2(2~5)所示。
步骤1.1:获得顺时针方向的第一个边界顶点K,形成第一条边界边并更新队头边界点Head-PNT、队尾边界点Rear-PNT,队头边界边Head-EDGE,队尾边界边Rear-EDGE,使得Head-PNT=A,Rear-PNT=K,如图2(2)所示。
步骤1.2:循环。沿着顺时针方向寻找凸化边界点,直到碰到不满足条件的边界点或边界点搜索结束。如图2(2~5)所示。
首先,找到边界点J,判断:(1)点J是否在当前队尾边界边的右侧(顺时针方向)?(2)点J是否在队头边的反向边的左侧(逆时针方向)?(3)队头边界点Head-PNT=A是否在形成的边界边的右侧(顺时针方向)?因为三个条件皆成立,因此,点J符合凸化边界条件,为下一条凸边界边,并更新队尾边界点Rear-PNT=J和队尾边界边如图2(3)所示。
然后,找到边界点H,判断:(1)点H是否在当前队尾边界边的右侧(顺时针方向)?(2)点H是否在队头边的反向边的左侧(逆时针方向)?(3)队头边界点Head-PNT=A是否在形成的边界边的右侧(顺时针方向)?因为三个条件皆成立,因此,点H符合凸化边界条件,为下一条凸边界边,并更新队尾边界点Rear-PNT=H和队尾边界边如图2(4)所示。
紧接着,找到边界点G,判断:(1)点G是否在当前队尾边界边的右侧(顺时针方向)?(2)点G是否在队头边的反向边的左侧(逆时针方向)?(3)队头边界点Head-PNT=A是否在形成的边界边的右侧(顺时针方向)?由于条件(1)不成立,即边界点G在当前队尾边界边的左侧,不构成凸化边界,且边界点G不是队头边界点Head-PNT=A,因此结束顺时针方向的边界点搜索,进入下一步骤“逆时针方向的凸化边界点搜索”。如图2(5)所示。
步骤2:采用贪心策略,沿着逆时针方向进行凸化边界搜索。如图2(6~10)所示。
步骤2.1:循环。沿着逆时针方向寻找凸化边界点,直到碰到不满足条件的边界点或边界点搜索结束。如图2(6~10)所示。
首先,找到边界点B,判断:(1)点B是否在当前队头边界边反向边的左侧(逆时针方向)?(2)点B是否在当前队尾边界边的右侧(顺时针方向)?(3)队尾边界点Rear-PNT=H是否在形成的边界边的左侧(逆时针方向)?因为三个条件皆成立,因此,点B符合凸化边界条件,为下一条凸化边界边,并更新队头边界点Head-PNT=B和队头边界边如图2(6)所示。
然后,找到边界点C,判断:(1)点C是否在当前队头边界边反向边的左侧(逆时针方向)?(2)点C是否在当前队尾边界边的右侧(顺时针方向)?(3)队尾边界点Rear-PNT=H是否在形成的边界边的左侧(逆时针方向)?因为三个条件皆成立,因此,点C符合凸化边界条件,为下一条凸化边界边,并更新队头边界点Head-PNT=C和队头边界边如图2(7)所示。
紧接着,找到边界点D,判断:(1)点D是否在当前队头边界边反向边的左侧(逆时针方向)?(2)点D是否在当前队尾边界边的右侧(顺时针方向)?(3)队尾边界点Rear-PNT=H是否在形成的边界边的左侧(逆时针方向)?因为三个条件皆成立,因此,点D符合凸化边界条件,为下一条凸化边界边,并更新队头边界点Head-PNT=D和队头边界边如图2(8)所示。
再者,找到边界点E,判断:(1)点E是否在当前队头边界边反向边的左侧(逆时针方向)?(2)点E是否在当前队尾边界边的右侧(顺时针方向)?(3)队尾边界点Rear-PNT=H是否在形成的边界边的左侧(逆时针方向)?因为三个条件皆成立,因此,点E符合凸化边界条件,为下一条凸化边界边,并更新队头边界点Head-PNT=E和队头边界边如图2(9)所示。
最后,找到边界点F,判断:(1)点F是否在当前队头边界边反向边的左侧(逆时针方向)?(2)点F是否在当前队尾边界边的右侧(顺时针方向)?(3)队尾边界点Rear-PNT=H是否在形成的边界边的左侧(逆时针方向)?因为条件(1)成立、条件(2)不成立,因此,点F不符合凸化边界条件,不是下一条凸化边界边,逆时针凸化边界搜索结束。如图2(10)所示。
步骤3:顺时针和逆时针凸化边界搜索都结束后,若队头节点E和队尾节点H不相同,则连接E和H两个节点,形成一个局部凸化边界。如图2(11)所示。
经过上述步骤1~3之后,因为寻找到的凸化边界的起始节点分别为E和H,不相同。因此,连接E和H两个节点形成一个局部凸化边界。之后,以凸化边界为队头边界边,开始新一轮的凸化边界搜索,便可找到下一个凸化边界EHGF。如图3所示,具体过程在此省略。
CCTCSA算法实现的核心步骤和伪代码如以下清单。
CCTCSA算法使用到的核心操作是:判断点P(x,y)是在有向线段的左侧?还是右侧?其原理是计算三个点P(x,y),A(x1,y1),B(x2,y2)组成的2个向量和的叉积υ(P,A,B)。若υ>0,则点P在有向线段的右侧;若υ<0,则点P在有向线段的左侧;若υ=0,则点P与有向线段共线。其中,叉积υ(P,A,B)的计算公式如下:
υ(P,A,B)=(x-x1)×(y2-y1)-(x2-x1)×(y-y1)
对于规模为n的打印区域多边形,因为CCTCSA算法在进行边界凸化时每个边界节点只搜索一次,核心计算时间是判断点与边界边之间的左右侧向(顺逆时针方向)关系,由于叉积υ的计算可以视为常量时间,因此,规模为n的打印区域多边形的边界凸化的时间复杂度为O(n),而打印路径规划所使用的核心算法为经典的方法,可见CCTCSA算法的时间复杂度与经典的路径规划算法一样。
上面结合附图和实施例对本发明做了详细的说明。但是,应当理解,本发明的实施例并不限于所公开的特定实施例,并且对该实施例的修改和其他实施例也意图被包含在所附权利要求书的范围内。尽管此处使用了特定术语,但是它们仅在通用和描述性意义上使用,而非为了限制的目的。
Claims (5)
1.一种可凹区域的3D快速打印路径规划方法,其特征在于,包括下列步骤:
步骤1.任意选取区域边界上的一点A作为凸化边界边起始搜索节点;
步骤2.初始化存储“头尾节点”和“头尾边界边”的两个双向队列,队头节点Hp=A,队尾节点Rp=A,队头边界边He=null,队尾边界边Re=null;
步骤3.沿着区域边界的“顺时针”方向进行凸化边界搜索,将顺时针方向的下一个边界点记为P,判断点P是否符合凸化边界条件,如果是,则更新所述两个双向队列,将点P作为顺时针方向的下一个凸化边界边节点,重复步骤3,否则,进行到步骤4;
步骤4.沿着区域边界的“逆时针”方向进行凸化边界搜索,将逆时针方向的下一个边界点记为Q,判断点Q是否符合凸化边界条件,如果是,则更新所述两个双向队列,将点Q作为逆时针方向的下一个凸化边界边节点,重复步骤4,否则,进行到步骤5;
步骤5.判断队头节点和队尾节点是否相同,如果不同,则连接队头节点HD和队尾节点Rp作为下一轮凸化边界边搜索的起始搜索边界边,将这两个节点作为下一轮凸化边界边搜索的头尾节点,初始化所述两个双向队列,返回到步骤3。
2.根据权利要求1所述的可凹区域的3D快速打印路径规划方法,其特征在于,点P符合凸化边界的条件如下:
队尾边界边Re为空或点P在队尾边界边的右侧,并且
队头边界边He为空或点P在队头边界边的左侧,并且
队头节点Hp在队尾节点Rp和点P形成的连线的右边。
3.根据权利要求1所述的可凹区域的3D快速打印路径规划方法,其特征在于,点Q符合凸化边界的条件如下:
队头边界边He为空或点P在队头边界边反向边的左侧,并且
队尾边界边Re为空或点P在队尾边界边的右侧,并且
队尾节点Rp在队头节点Hp和点P形成的连线的左边。
4.根据权利要求2或3所述的可凹区域的3D快速打印路径规划方法,其特征在于,令点P或点Q的坐标为P(x,y),则根据如下步骤来判断点P(x,y)是在有向线段的左侧还是右侧:
计算由P(x,y),A(x1,y1),B(x2,y2)组成的两个向量和的叉积υ(P,A,B).若υ>0,则所述点在有向线段的右侧;若υ<0,则所述点在有向线段的左侧;若υ=0,则所述点与有向线段共线。
5.根据权利要求4所述的可凹区域的3D快速打印路径规划方法,其特征在于,所述叉积υ(P,A,B)的计算公式如下:
υ(P,A,B)=(x-x1)×(y2-y1)-(x2-x1)×(y-y1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610654586.2A CN106273480B (zh) | 2016-08-11 | 2016-08-11 | 可凹区域的3d快速打印路径规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610654586.2A CN106273480B (zh) | 2016-08-11 | 2016-08-11 | 可凹区域的3d快速打印路径规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106273480A CN106273480A (zh) | 2017-01-04 |
CN106273480B true CN106273480B (zh) | 2019-02-22 |
Family
ID=57669189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610654586.2A Expired - Fee Related CN106273480B (zh) | 2016-08-11 | 2016-08-11 | 可凹区域的3d快速打印路径规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106273480B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108995220B (zh) * | 2018-07-17 | 2020-04-28 | 大连理工大学 | 基于强化学习的复杂薄壁结构物体3d打印路径规划方法 |
CN109685751B (zh) * | 2018-12-27 | 2021-03-09 | 拉扎斯网络科技(上海)有限公司 | 配送区域的合并方法、装置、电子设备及存储介质 |
CN111907054B (zh) * | 2020-08-08 | 2021-06-11 | 西安交通大学 | 基于应力方向的连续纤维增强复合材料3d打印凸分解方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996414A (zh) * | 2009-08-18 | 2011-03-30 | 富士通株式会社 | 用于渲染凹多边形的方法和装置 |
CN102110306A (zh) * | 2009-12-23 | 2011-06-29 | 富士通株式会社 | 用于对凹多边形进行三角化的方法和*** |
CN102193998A (zh) * | 2011-05-05 | 2011-09-21 | 河南理工大学 | 一种含边拓扑信息的不规则三角网弧扫式构建方案 |
CN103528585A (zh) * | 2013-09-26 | 2014-01-22 | 中北大学 | 一种不等距分割可通行区域的路径规划方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8349239B2 (en) * | 2009-09-23 | 2013-01-08 | Stratasys, Inc. | Seam concealment for three-dimensional models |
-
2016
- 2016-08-11 CN CN201610654586.2A patent/CN106273480B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996414A (zh) * | 2009-08-18 | 2011-03-30 | 富士通株式会社 | 用于渲染凹多边形的方法和装置 |
CN102110306A (zh) * | 2009-12-23 | 2011-06-29 | 富士通株式会社 | 用于对凹多边形进行三角化的方法和*** |
CN102193998A (zh) * | 2011-05-05 | 2011-09-21 | 河南理工大学 | 一种含边拓扑信息的不规则三角网弧扫式构建方案 |
CN103528585A (zh) * | 2013-09-26 | 2014-01-22 | 中北大学 | 一种不等距分割可通行区域的路径规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106273480A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106273480B (zh) | 可凹区域的3d快速打印路径规划方法 | |
US9619587B2 (en) | Decomposition of 3D geometry into developable surface patches and 2D cut patterns | |
CN106273496A (zh) | 一种增材制造中的复杂切片区域自动分割方法 | |
Tavakkoli-Moghaddam et al. | Solving a multi-objective job shop scheduling problem with sequence-dependent setup times by a Pareto archive PSO combined with genetic operators and VNS | |
US11922574B2 (en) | Method and device for determining plurality of layers of bounding boxes, collision detection method and device, and motion control method and device | |
CN106582023A (zh) | 一种游戏寻路方法和装置 | |
CN108537797B (zh) | 一种虚拟手术中可变形对象切割仿真的网格变形优化方法 | |
CN103529843A (zh) | Lambda*路径规划算法 | |
CN106584860B (zh) | 一种3d打印中带岛层片区域的快速路径规划方法 | |
CN105978711A (zh) | 一种基于最小生成树的最佳交换边查找方法 | |
WO2023138010A1 (zh) | 面向混凝土3d打印的平面路径拟合方法及*** | |
CN105869512A (zh) | 多信息的混杂度量地图建图方法和装置 | |
EP2884453A1 (en) | A computer implemented method, a system and computer program product for partitioning a graph representative of a communication network | |
CN107665496A (zh) | 一种三维姿态配准方法 | |
CN113487101A (zh) | 基于双激光头的增材制造路径规划算法 | |
JP2022135882A5 (zh) | ||
CN110975288B (zh) | 基于跳点路径搜索的几何容器数据压缩方法及*** | |
Kammer et al. | Identifying and exploiting commonalities for the job-shop scheduling problem | |
CN107982917B (zh) | 一种3d游戏的人物路径搜索方法 | |
CN110188290B (zh) | 一种基于星型拓扑结构的分布式无人仓库位推荐智能算法 | |
CN116892945A (zh) | 移动机器人路径死锁处理方法及装置 | |
Anwit et al. | Obstacle adaptive smooth path planning for mobile data collector in the internet of things | |
CN112862212B (zh) | 基于改进麻雀搜索算法的多agv调度方法、装置及设备 | |
CN105975532A (zh) | 一种基于属性图中的冰山顶点集的查询方法 | |
CN103295061B (zh) | 一种基于蚁群算法的船舶调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190222 Termination date: 20210811 |
|
CF01 | Termination of patent right due to non-payment of annual fee |