CN101225507B - 基于stl文件的曲面切割轨迹获得方法 - Google Patents
基于stl文件的曲面切割轨迹获得方法 Download PDFInfo
- Publication number
- CN101225507B CN101225507B CN2008100069232A CN200810006923A CN101225507B CN 101225507 B CN101225507 B CN 101225507B CN 2008100069232 A CN2008100069232 A CN 2008100069232A CN 200810006923 A CN200810006923 A CN 200810006923A CN 101225507 B CN101225507 B CN 101225507B
- Authority
- CN
- China
- Prior art keywords
- curved surface
- node
- plane
- chained list
- point
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明提供了基于STL文件的曲面切割轨迹获得方法,其包括如下步骤:1)读取Stl文件;2)用一个或多个平面切割曲面;3)将平面与三角形两边的交点按照顺序排列,再进行均匀化差补处理,即得到曲面切割轨迹。利用上述方法获得的三维轨迹能够用于控制溅射靶的行走,使得磁控溅射镀膜机能够加工复杂基片,并且具有良好的精度和均匀性。
Description
技术领域
本发明涉及一种曲面轨迹的获得方法,具体地说是一种基于Stl文件的曲面切割轨迹的获得方法。
背景技术
Stl是STereo Lithography的缩写,由3D Systems公司开发而来,它使用三角形面片来表示三维实体模型,现已成为CAD/CAM系统接口文件格式的工业标准之一,绝大多数造型系统能支持并生成此种格式文件。
基于Stl文件可以对各种平面或者曲面进行加工。然而,对于曲面表面进行加工时必须要有一个合适的运行轨迹,目前还没有一种适合磁控溅射喷涂运行轨迹的获得方法。
发明内容
本发明针对上述不足,提供一种基于STL文件的曲面切割轨迹获得方法,按照该方法获得的三维轨迹能够实现对多种复杂的基片进行喷涂。
本发明方法包括如下步骤:
1)读取Stl文件;2)用一个或多个平面切割曲面,求得平面与三角形两边的交点;3)将获得的交点按照顺序排列,再进行均匀化差补处理,即得到曲面三维轨迹。
其中,步骤3所述的排序方法通过如下步骤实现:假定用某一平面S切割曲面,将与平面S相交的三角形数据建立单链表,每个三角形数据用链表中的每一个结点表示,设链表指针为Sn,n=1,2,3,...,Max,设Sn所指向的结点中平面与三角形的交点为An和Bn,取任一结点中的两个交点,假设为Ai和Bi,以Ai为头结点,Bi作为尾结点,建立新的链表,用Ai的值遍历链表,找到具有相同交点的结点,假定为Sj,则下一个点为Bj,以此类推,从而得到以Ai作为头结点的链表,同样可以得到以Bi为尾结点的链表,将这两个链表连接成一个链表,即得到平面S切割形成的连续排列的曲面三维轨迹。
用多个平面切割曲面时,将得到多个轨迹,将相邻两平面a、b切割得到的顺序排列的链表的首结点或尾结点相连,将平面b以及与平面b相邻的另一平面c的尾结点或首结点相连,依次类推,将多个平面切割得到的轨迹拟合成一个。
利用上述方法获得的三维轨迹能够用于控制溅射靶的行走,使得磁控溅射镀膜机能够加工复杂基片,并且具有良好的精度和均匀性。
附图说明
图1、用某一平面α切割坐标系中三角形示意图;
图2、用平面A切割曲面B(平面)示意图;
图3、Stl文件中三角形数据储存格式;
图4、链表中各结点以及保存的交点示意图;
图5、多条切割轨迹示意图;
图6、轨迹末端延伸示意图;
图7、多条轨迹拟合示意图;
图8、用平面S切割曲面R示意图;
图9、链表中各结点以及保存的交点示意图。
具体实施方式
下面结合附图进一步说明本发明,但是一下实施例不应理解为对本发明的限制,在不背离本发明精神和实质的情况下,对一下实施方式所作的修改或替换均属于本发明的范围。
实施例1
本例以Stl文件为源文件,来说明本发明的过程。
读取Stl文件
Stl文件实际上是许多三角形的集合,它给出了每一个三角形的三个顶点的坐标和三角形的法向量。其数据存储格式如下所示:
facet normal 9.763660e-001-3.565955e-002 2.131615e-001
outer loop
vertex-3.640531e+002 4.261792e+003 4.675909e+002
vertex-3.656961e+002 4.195778e+003 4.640729e+002
vertex-3.651771e+002 4.207171e+003 4.636015e+002
endloop
endfacet
可以将stl文件中的数据读到设计好的单链表中去,单链表结点的可用如下格式表示:
Struct Triangle
{
CPOINT N;/*法向量*/
CPOINT A;/*顶点1*/
CPOINT B;/*顶点2*/
CPOINT C;/*顶点3*/
float f_MaxX,f_MinX;/*最大和最小X坐标*/
float f_MaxY,f_MinY;/*最大和最小Y坐标*/
float f_MaxZ,f_MinZ;/*最大和最小Z坐标*/
struct Triangle*next;
};
读取的程序的编码可采用的是由C++标准委员会提供的输入输出接口函数。读取在stl文件中的所有三角形的值,直到把所有的值都写入到设计的单链表中去。
切割曲面
实际中的曲面是不规则的空间曲面,为了把空间中的曲面转化为计算机能够识别和认识的数据,我们把空间中的曲面用很小的三角形进行拼凑,使得用许多平面三角形拼凑的空间曲面近似于实际的曲面。这些三角的顶点和法向量数据都保存到了stl文件中。现在所有的三角形的数据都已经写入到了单链表中了。
用空间中的平面去切割实际中的不规则曲面,对于计算机来说就是用平面切割那个近似曲面。实际上是求空间三角形和空间平面的交点。如图1所示。
空间平面的y坐标是已知的,三角形的两条边的空间直线方程根据公式可以求出。
公式如下:
[(x-x1)/(x1-x2)]=[(y-y1)/(y1-y2)]=[(z-z1)/(z1-z2)]=t
由于知道空间平面坐标的y值,故交点的Y坐标值是已知的,根据直线方程可以求出直线参数方程中的未知数t,交点的x和z坐标就可以求出。由于默认三角形为平面,所以三角形上的点的法向量和三角形的法向量保持一致。所求的点的数据可保存到如下的结构体中:
struct CROSS
{
CPOINT norm[2]; //法向量
CPOINT P[2]; //只能有两个交点
int NoOfTriangle;//三角形的索引号
CROSS*next;
};
排序
当空间的平面和三角形相交得到交点所构成的链表是一个无序链表,也就是说链表中的任意一点,它的左右邻居点并不是它在数模中的左右邻居点。举例说明如下:
假设有一个空间曲面A(为简单起见,以空间平面举例)。它由8个三角形表示,用一平面B截A即得到c到k九个点。由于得到的Stl文件中的三角形并不是如图2所示那样排序的,而是任意排序的,如图3所示。
这种排序方式不满足我们要求,必须把各点的顺序调整到图2中所示的顺序。
一种可行的方法是采用三角形拓扑排序法,其原理如下:由于一个完整的曲面被一形平面三角形近似的拼成的这三角形除了在边远处的之外,其它三角形的一条边是两个三角形所共有的。
在用平面截三角形求交点的过程中,这些交点(除边缘处之外)都保存了两次。因而利用相关性就可以排序。
如图2所示:平面B与③号三角形所交得到交点e和f,并保存在一个链表结点中,而平面B又与④号三角形所交得到交点f,g,并保存。说明f点被保存二次。如图4所示。
假设④号三角形的交点是这个链表的头接点。我们分别取出f和g并以g为头结点,f为尾结点建立新的链表,通过用f的值来遍历整个链表,找到③号三角形,得到f的下一个点为e。以此类推,我就可以得到c→d→e→f这个链表。同样的方法可以得到g为顶点的链表g→h→i→k。然后合并两个链表就可以得到所需要的链表。
再如:假定用某一平面S切割曲面R,将与平面S相交的三角形数据建立单链表,每个三角形数据用链表中的每一个结点表示,设链表指针为Sn,n=1,2,3,...,Max,设Sn所指向的结点中平面与三角形的交点为An和Bn,取任一结点中的两个交点,假设为Ai和Bi,以Ai为头结点,Bi作为尾结点,建立新的链表(临时链表),用Ai的值遍历链表,找到具有相同交点的结点,假定为Sj,则下一个点为Bj,以此类推,从而得到以Ai作为头结点的链表,同样可以得到以Bi为尾结点的链表,将这两个链表连接成一个链表,即得到平面S切割形成的连续排列的曲面三维轨迹。
如图8所示,平面S切割曲面R,S将与曲面上的5个三角形相交,这五个三角形分别为S1、S2、S3、S4、S5,在Stl文件中S1~S5并不是顺序排列的,将这些三角形数据建立一个单链表,如图9所示,每个三角形数据用链表中的每一个结点表示,设链表指针为分别为S1、S2、S3、S4、S5,设Sn所指向的结点中平面与三角形的交点为An和Bn,取任一结点中的两个交点,假设用A4和B4,以A4为头结点,B4作为尾结点,建立新的链表(临时链表),用A4的值遍历链表,找到与A4值相同的点B3,说明A4与B3表示的为同一点,在B3所在的结点中,还存在另外一点即A3,A3与B3为同一三角形与平面相交的点,因此A3与B3相邻,因而下一个点为A3,以此类推,从而得到以A4作为头结点的链表,同样可以得到以B4为尾结点的链表,将这两个链表连接成一个链表,即得到平面S切割形成的连续排列的曲面三维轨迹。
按照上述方法即可获得排序的链表,即曲面的三维轨迹。
差补链表中的点
上面所得到的链表上两两相邻两点的距离是不均匀的,由于工艺的要求需要保证点与点的距离是定值。本例采用的差补方式为直线差补。仍用上例来说明问题。假设得到排序链表c→d→e→f→g→b→i→j→k。规定两点之间的距离为S,当c到d的距离大于S时,在c与d之间加入d1点,并计算d1到d的距离与S的关系。如大于继续加点,如小于S抛弃d,d1与e比较,以此类推得到一个两点距离均匀的链表。
轨迹的延伸
为了保证空间曲面边缘的镀膜的均匀性,轨迹路线相对于空间曲面需要有一个延长量。如图5所示,假设用平面截三角形获得二条空间的轨迹路线ab和cd,如果直线从a过渡到c或者从b过渡到d,这都会导致边缘镀膜过厚,所以通过延长cd和ab曲线,在从延长点e到h或f到g,这对边缘的影响较小,延伸的方法可采用按切线方向进行延伸,如图6所示。假设A、B点为链表中的最边缘处所截得的两个点,以A、B点的坐标建立直线方程,根据所要求的外延量求出点C,即当溅射靶移动到C点处时,不会对曲面产生镀膜,在C与A之间等进行直线差补,得到距离均匀的点的集合。
按照理论要求,外延的直线应该是曲线在点A处的切线方向,并不是直线AB,在此我们根据实际工程做了近似。由数学定理可知,由AB确定的直线在曲线AB上必有一点,该点的切线与AB确定直线是平行的。由于AB之间距离很小,AB的曲率变化很小,所以在AB上任选一点做切线,与在点A处求得切线是近似平行的。如图6是所示。
拟合曲线
用多个平面切割曲面后,得到的是一条条链表,而溅射靶行走轨迹路线应该是一条完整的曲线,所以必须把各条的链表合成一个,如图7所示。两链表相连中,例如在链表1与链表2的表各相连中,由于1到2的距离可能超过真空电机的运动极限而导致电机抱死,产生中途停车的现象,所以在链表1与2相连过程中,有必要在两链表相连的两结点间插入适当的点,以使得两点之间的距离在真空电机的运动极限范围之内。补入的点可以以两个链表头的坐标建立直线方程,按照一定的距离,进行等距的差分。
基于上述方法,控制溅射靶按照获得的三维轨迹行走,通过实验表明可以对多种复杂的基片进行镀膜,并取得了良好的镀膜效果。
Claims (3)
1.磁控溅射曲面喷涂方法,其包括如下步骤:1)读取Stl文件;2)用一个或多个平面切割曲面;3)将平面与三角形两边的交点按照顺序排列,再进行均匀化差补处理,即得到曲面切割轨迹,控制磁控溅射靶按照获得的轨迹行走进行喷涂,
其中步骤2)和3)用某一平面S切割曲面,将与平面S相交的三角形数据建立单链表,每个三角形数据用链表中的每一个结点表示,设链表指针为Sn,n=1,2,3,...,Max,,设Sn所指向的结点中平面与三角形的交点为An和Bn,取任一结点中的两个交点,假设为Ai和Bi,以Ai为头结点,Bi作为尾结点,建立新的链表,用Ai的值遍历链表,找到具有相同交点的结点,假定为Sj,则下一个点为Bj,以此类推,从而得到以Ai作为头结点的链表,同样可以得到以Bi为尾结点的链表,将这两个链表连接成一个链表,即得到平面S切割形成的连续排列的曲面三维轨迹。
2.如权利要求1所述的方法,其特征在于,将相邻两平面a、b切割得到的顺序排列的链表的首结点或尾结点相连,将平面b以及与平面b相邻的另一平面c的尾结点或首结点相连,依次类推,将多个平面切割得到的轨迹拟合成一个。
3.如权利要求1或2所述的方法,其还包括用距离均匀的点来表示获得的三维轨迹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100069232A CN101225507B (zh) | 2008-01-25 | 2008-01-25 | 基于stl文件的曲面切割轨迹获得方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100069232A CN101225507B (zh) | 2008-01-25 | 2008-01-25 | 基于stl文件的曲面切割轨迹获得方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101225507A CN101225507A (zh) | 2008-07-23 |
CN101225507B true CN101225507B (zh) | 2011-08-17 |
Family
ID=39857708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100069232A Expired - Fee Related CN101225507B (zh) | 2008-01-25 | 2008-01-25 | 基于stl文件的曲面切割轨迹获得方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101225507B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838907A (zh) * | 2013-09-13 | 2014-06-04 | 上海大学 | 基于stl模型的曲面切割轨迹获得方法 |
CN109182991B (zh) * | 2018-11-06 | 2020-11-10 | 哈尔滨工业大学 | 一种适用于共形基底表面镀膜的磁控溅射镀膜装置相对运动机构及其镀膜方法 |
CN112024165B (zh) * | 2020-08-31 | 2022-05-17 | 长春理工大学 | 用于曲面均匀喷涂的轨迹分块规划方法 |
CN116038705A (zh) * | 2023-01-04 | 2023-05-02 | 江苏科技大学 | 一种用于喷涂机器人的喷枪轨迹规划方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101025831A (zh) * | 2006-02-24 | 2007-08-29 | 山东理工大学 | 复杂曲面产品的快速精确构建与成型方法 |
-
2008
- 2008-01-25 CN CN2008100069232A patent/CN101225507B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101025831A (zh) * | 2006-02-24 | 2007-08-29 | 山东理工大学 | 复杂曲面产品的快速精确构建与成型方法 |
Non-Patent Citations (2)
Title |
---|
王桂兰,文少波,张海鸥.面向等离子体熔射制模的机器人轨迹生成系统的实现.航空制造技术 6.2003,(6),35-37、75. |
王桂兰,文少波,张海鸥.面向等离子体熔射制模的机器人轨迹生成系统的实现.航空制造技术 6.2003,(6),35-37、75. * |
Also Published As
Publication number | Publication date |
---|---|
CN101225507A (zh) | 2008-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111462137B (zh) | 一种基于知识蒸馏和语义融合的点云场景分割方法 | |
Qu et al. | A 3D surface offset method for STL‐format models | |
CN101225507B (zh) | 基于stl文件的曲面切割轨迹获得方法 | |
CN1990074B (zh) | 一种网络游戏中的物体运动控制方法 | |
CN101224576B (zh) | 磁控溅射喷涂机器人示教轨迹优化控制方法 | |
US11574253B2 (en) | Distributed training for deep learning models | |
CN110226806A (zh) | 一种鞋底涂胶轨迹生成方法及装置 | |
EP4446094A1 (en) | 3d printing file generation method, apparatus, computer device, and storage medium | |
CN115194931B (zh) | 混凝土3d打印路径的规划方法、装置、设备及存储介质 | |
WO2023160556A1 (zh) | 量子芯片版图的构建方法和装置及存储介质 | |
CN112070908A (zh) | 三维模型的自动拆分方法、计算机设备以及存储介质 | |
CN100572588C (zh) | 磁控溅射曲面喷涂三维轨迹智能控制方法 | |
CN113220815A (zh) | 区域信息处理方法及装置 | |
CN112659316B (zh) | 一种3d水泥打印的快速分层方法 | |
CN112711231B (zh) | 一种增材制造加工路径规划的方法及装置 | |
CN105068879A (zh) | 一种查找目标订阅的方法及装置 | |
CN113175904B (zh) | 一种基于旋量模型的键槽特征公差建模方法及系统 | |
CN114170384A (zh) | 三维模型的处理方法、装置、存储介质及电子设备 | |
US10452056B2 (en) | Three-dimensional object fabrication using multiple extruders | |
CN112330679A (zh) | 一种面向数控加工的自由曲面的分割方法及系统 | |
CN112052641A (zh) | 大规模集成电路版图非结构网格偏心中点生成方法和系统 | |
CN108122240B (zh) | 一种三维图像中的目标区域的确定方法、装置及设备 | |
US10210303B2 (en) | Sleep signal stitching technique | |
Gao et al. | A nonlocal method with modified initial cost and multiple weight for stereo matching | |
Puig-Pey et al. | Some applications of scalar and vector fields to geometric processing of surfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110817 Termination date: 20130125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |