CN108594764B - 一种三角网格模型的等残留高度刀触点轨迹生成方法 - Google Patents
一种三角网格模型的等残留高度刀触点轨迹生成方法 Download PDFInfo
- Publication number
- CN108594764B CN108594764B CN201810224947.9A CN201810224947A CN108594764B CN 108594764 B CN108594764 B CN 108594764B CN 201810224947 A CN201810224947 A CN 201810224947A CN 108594764 B CN108594764 B CN 108594764B
- Authority
- CN
- China
- Prior art keywords
- point
- knife
- path
- contact
- intersection
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4097—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by using design data to control NC machines, e.g. CAD/CAM
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35327—Display tool locus together with correlated machining parameter, load motor
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
Abstract
本发明涉及一种三角网格模型的等残留高度刀触点轨迹生成方法,主要包括将刀触点轨迹中的刀触点分为三种类型、对刀触点进行各向异性偏置获得相应的偏置刀触点、偏置刀具路径自相交处理三个部分来进行刀触点轨迹的生成。本发明针对三角网格模型数控加工的精确等加工残余高度控制,提出对于不同类型的刀触点,在刀触点切平面内各向异性偏置基础上计算实际偏置点,然后进行偏置刀触点轨迹的自相交检测、交点计算和有效子路径判断,最终使得刀具轨迹间的加工残留高度更接近最大允许值,提高数控加工效率。
Description
技术领域
本发明涉及CAM技术领域,更具体地说,涉及一种三角网格模型的等残留高度刀触点轨迹生成方法。
背景技术
五轴数控加工通过调整刀轴矢量,具有更好的刀具可达性、更快的材料去除率、更高的表面质量、更少的加工时间、不再需要手工抛光操作等优点,是工业中复杂高性能零件高效加工的重要手段。
以STL文件格式为代表的三角网格模型已成为不同CAD/CAM***间交换数据的三种常用模型(即IGES,STEP和STL)之一,此类模型广泛应用于3D打印、CAD/CAM、逆向工程等领域。
目前三角网格模型生成数控加工刀具路径的方法主要可以分为三类:
(1)截面法。一般用于三轴数控加工,采用垂直截面法来生成刀位点轨迹或刀触点轨迹,也有采用水平截面来生成三轴加工轨迹。为保证加工精度一般采用较小的轨迹行距参数,只能保证加工残留高度小于最大允许值,对于曲率和法矢变化较大的模型,将出现较多的重复切削。
(2)参数化法。为使得适用于参数曲面的等参数法能够应用到三角网格模型,研究人员提出了三角网格曲面映射到平面区域的参数化法来实现等参数刀具轨迹,能够生成较为光滑的刀具加工轨迹,但为保证精度一般选择较小的参数变化值,也只能保证加工残留高度小于最大允许值,因此同样会出现较多的重复切削。
(3)等残留高度法,即两条刀具路径间加工残留高度等于最大允许值,以尽量缩短刀具路径总长度。因此,理论上等残留高度法生成轨迹的加工效率比截面法和参数化法都要高。
但实际上,三角网格模型的等残留高度刀具路径生成一般采用路径偏置法实现,即下一条刀具路径通过当前刀具路径上的刀触点偏置获得,如陈晓兵等人在学术期刊《计算机辅助设计与图形学学报》2009,(12),P1800-1804发表的学术论文“三角网格表面等残留高度刀轨生成算法”、Hauth S等人在学术期刊《The International Journal ofAdvanced Manufacturing Technology》2011,53(1-4),P325-338发表的学术论文“Constant cusp toolpath generation in configuration space based on offsetcurves”、Xu J等人在学术期刊《Computer-Aided Design》2015,62,P131-142发表的学术论文“A mapping-based approach to eliminating self-intersection of offset pathson mesh surfaces for CNC machining”等所采用的方法。采用偏置法生成刀具路径的过程中,都只是将刀触点沿一个方向进行偏置,该偏置方向同时垂直该点的法矢和该点的刀具轨迹切矢。基于点的偏置可以简化算法,但大多数情况下轨迹间的实际加工残留高度要明显小于最大允许值,因此也会造成重复切削,降低加工效率。
综上可见,目前对于三角网格模型的五轴加工刀具轨迹生成研究,并没有达到最优的加工残留高度控制,降低了加工效率,因此有必要研究新的方法以实现更加接近等残留加工的方法。
发明内容
本发明的目的在于克服现有技术的不足,提供一种使刀具轨迹间的加工残留高度更接近最大允许值,缩短刀具轨迹总长度,提高加工效率的三角网格模型的等残留高度刀触点轨迹生成方法。
本发明的技术方案如下:
一种三角网格模型的等残留高度刀触点轨迹生成方法,步骤如下:
1)载入三角网格模型;
读取三角网格模型,采用C++标准模板库中的关联容器类set进行冗余顶点的去除,建立无重复顶点的vector类型点表和面片表;采用关联容器类set查找伙伴半边并创建半边数据结构,建立vector类型的半边表;同时建立面片到顶点、面片到半边、顶点到面片、顶点到半边、半边到顶点、半边到面片内的前后相连半边、半边到相对应半边的邻接关系;
2)对于需要偏置的刀具路径,将路径中的刀触点分为凸刀触点、凹刀触点和平滑刀触点三类;
3)刀具路径的刀触点各向异性偏置:对于路径中的刀触点,先计算三类刀触点的切平面内各向异性偏置,再计算模型表面上的实际偏置刀触点;
4)偏置刀具路径的自相交处理,包括刀具路径自相交检测、路径交点计算、有效子路径判断等三个方面处理;
5)重复步骤2)至步骤4),直到刀具路径覆盖整个三角网格模型表面。
作为优选,步骤2)中,路径中的刀触点包括凸刀触点、凹刀触点和平滑刀触点;刀触点类型的判别方法具体如下:
设点P为刀触点,P点处的单位法矢为n,l1和l2为连接P点的前后两段路径线段的单位方向矢量,P点前连接线段所决定的偏置方向t1,则当偏置后的新刀触点在沿着刀具路径方向的左边时,即左偏置时t1=(n×l1)/|n×l1|,当进行右偏置时t1=(l1×n)/|l1×n|,设标量d1=t1·l2、d2=l1·l2,ε1为一个接近0的正数,ε2为一个小于1但接近1的正数,则:
当|d1|<ε1且d2>ε2时,P点为平滑刀触点;
当d1>ε1时,P点为凹刀触点;
当d1<-ε1时,P点为凸刀触点。
作为优选,步骤3)中,计算三类刀触点的切平面内各向异性偏置,是根据刀触点类型在刀触点的切平面内对刀触点进行相应偏置,具体计算方法分别如下:
(a)凸刀触点的切平面内偏置:凸刀触点设为Pi,j,采用各向异性的三点偏置,在过Pi,j点的网格模型切平面上,Pi,j点的三个偏置方向分别计算为t1=(n×l1)/|n×l1|,t2=(n×l2)/|n×l2|,t3=(n×l3)/|(n×l3)|,其中l3=(l1+l2)/|l1+l2|;计算模型在Pi,j点处沿t1、t2和t3三个方向上的行距分别为w1、w2和w3,其中沿某一方向的行距计算公式为:
式中,w为行距,h为加工残留量,r为刀具半径,ρ为刀触点在偏置方向的曲率半径;
(b)凹刀触点的切平面内偏置:凹刀触点设为Pi,j,L'1为Pi,j点前一连接线段的偏置直线,L'2为为Pi,j点前一连接线段的偏置直线,t1=(n×l1)/|n×l1|,t2=(n×l2)/|n×l2|;w1和w2分别是模型在Pi,j点处沿t1和t2两个方向上行距;则L'1的参数方程为:L'1(u)=(Pi,j+w1·t1)-l1·u,其中u为参数方程的参数变量;L'2的参数方程为:L'2(v)=(Pi,j+w2·t2)+l2·v,其中v为参数方程的参数变量;
令L'1(u)=L'2(v),解得u=w2·l1·t2/[1-(l1·l2)2],将u代入直线L'1(u)计算出Pi,j的过渡点P′i+1,j;
计算w=|P′i+1,j-Pi,j|,t=(P′i+1,j-Pi,j)/w;
(c)平滑刀触点的切平面内偏置:平滑刀触点设为Pi,j,则其偏置方向为t=(n×l)/|(n×l)|,其中l=(l1+l2)/|l1+l2|,沿t方向的行距计算为w。
作为优选,步骤3)中,实际偏置刀触点的计算方法具体为:
步骤①设当前刀触点为Pi,j,n为模型在Pi,j点处的单位法矢,t为Pi,j点处某一偏置方向的单位切矢量,w为Pi,j点在t方向上的行距计算值;
步骤②构造过Pi,j点且包含矢量n、t的平面Π,平面Π内有中点为O=Pi,j-ρ·n,ρ为模型在Pi,j点处沿t方向的曲率半径;
步骤③平面Π内t′为刀触点理论偏置方向矢量,在t′方向上的Pi+1,j为理论偏置点;为计算Pi+1,j,在Π内过O作线段Pi,jPi+1,j的垂线L,垂足为B,线段Pi,jB长度为w/2;
步骤⑤计算点O到A的矢量V=ρ·n+d·t,单位化为v;由于t′与V垂直,所以t′=((n×t)×v)/|(n×t)×v|,则P′i+1,j=Pi,j+w·t′;
步骤⑥构造参数变量为s的参数直线L′(s)=O+(P′i+1,j-O)·s与模型三角面片求交,获得实际偏置刀触点Pi+1,j。
作为优选,步骤4)中,刀具路径自相交检测处理,设偏置后获得新的刀具路径CCi+1,其中依次存放刀触点P0、P1、…、Pn-1、Pn,则刀具路径自相交检测的过程如下:
步骤①查找CCi+1中最长的轨迹线段,取其长度的一半,设为l;
步骤②基于CCi+1中的所有刀触点创建k-d搜索树;
步骤③依次取刀触点,设为Pi,i分别取值从0,1,…,n-3,线段PiPi+1的长度为d,计算γ=(d2+l2)1/2;以Pi为检索中心,以γ为检索半径,通过k-d树获得一组刀触点,从中剔除索引值小于等于i+2的刀触点,最终获得刀触点数组PList;
步骤④依次取PList中的刀触点,设为Pj,分别检测线段PiPi+1是否与Pj-1Pj和PjPj+1相交;
PiPi+1与PjPj+1相交的检测方法为:分别设矢量V1=Pi+1-Pi、V2=Pj+1-Pj、es1=Pj-Pi、ee1=Pj+1-Pi、es2=Pi-Pj、ee2=Pi+1-Pj,标量d1=(es1×V1)·(ee1×V1)、d2=(es2×V2)·(ee2×V2);分三种情况处理:
(a)如果d1<0且d2<0,则PiPi+1与PjPj+1相交,进行交点计算;
(b)如果d1=0且d2<0,则进行一步判断:如果Pj为es1×V1为零矢量则判断为无交点,如果叉积矢量ee1×V1为零矢量,则令ee1=Pj+2-Pi,再计算d1=(es1×V1)·(ee1×V1),如果d1<0则Pj+1为交点,d1>0则无交点;
d1<0且d2=0时,同样可确定交点为Pi+1或无交点;
(c)其余情况则两线段无交点;
PiPi+1与Pj-1Pj相交的检测方法同理。
作为优选,步骤4)中,路径交点计算处理,刀具路径出现自相交时,设线段PiPi+1和PjPj+1相交,交点计算如下:
步骤①线段PiPi+1的单位方向矢量li=(Pi+1-Pi)/|Pi+1-Pi|,线段PjPj+1的单位方向矢量lj=(Pj+1-Pj)/|Pj+1-Pj|,模型在四个刀触点处的单位法矢分别为ni和ni+1、nj和nj+1,则计算:
当ni+1×ni为非零矢量时,nΠ1=li×(ni+1+ni)/|ni+1+ni|,否则nΠ1=li×ni;当nj+1×nj为非零矢量时,nΠ2=lj×(nj+1+nj)/|nj+1+nj|,否则nΠ2=lj×nj;将nΠ1和nΠ2单位化后仍分别记为nΠ1和nΠ2;
步骤②过线段PiPi+1,以nΠ1为法矢构造平面Π1,计算平面Π1与线段PjPj+1的交点为点I';
步骤③以l=(nΠ1×nΠ2)/|nΠ1×nΠ2|为方向矢量,过点I'构造一条直线,分别与Pi和Pi+1所在三角面片以及位于两点之间的面片进行求交计算,获得交点I;
PiPi+1与Pj-1Pj交点的计算方法同理。
作为优选,步骤4)中,有效子路径判断处理,设线段PiPi+1和PjPj+1相交,如果Pi+1为交点,则令Pi+2为Pi+1,如果Pj+1为交点,则令Pj+2为Pj+1;交点为I,ti为刀具路径线段PiPi+1的偏置方向,tj为刀具路径线段PjPj+1的偏置方向,有效子路径判断的具体方法为:
步骤①计算矢量li=(I-Pi)、li+1=(Pi+1-I)和lj=(I-Pj)、lj+1=(Pj+1-I);
步骤②计算d1=ti·lj、d2=ti·lj+1,
步骤③如果d1>0且d2>0,则Pi、I、Pj+1所在的子刀具路径为有效路径,Pj、I、Pi+1所在的子刀具路径为无效路径;如果d1<0且d2<0,则Pi、I、Pj+1所在的子刀具路径为无效路径,Pj、I、Pi+1所在的子刀具路径为有效路径;
PiPi+1与Pj-1Pj有效性的判断方法同理。
本发明的有益效果如下:
本发明所述的三角网格模型的等残留高度刀触点轨迹生成方法,基于刀触点的各向异性的偏置,能够切削加工过程中的加工残留高度更加接近最大允许加工残留高度,以减少重复切削,提高切削加工效率。
本发明中,实际偏置点计算方法以修正的偏置方向、模型表面刀触点处在偏置方向的曲率中心为基础计算偏置点,进一步使得刀具路径之间加工残留高度接近最大允许加工残留高度。刀具路径相交处理方法能够快速检测和判断偏置后刀具路径是否存在自相交,子刀具路径有效性的判断方法既适用于封闭的刀具路径,也适用于非封闭的刀具路径。
附图说明
图1是本发明的程序流程图;
图2是刀触点路径的凸刀触点;
图3是刀触点路径的凹刀触点;
图4是三角网格模型顶点法矢计算示意图;
图5是三角网格模型面片内点的法矢计算示意图;
图6是凸刀触点沿一个方向与沿两个方向偏置的比较示意图;
图7是凹刀触点沿一个方向与沿两个方向偏置的比较示意图;
图8是凸刀触点的切平面内偏置示意图;
图9是凹刀触点的切平面内偏置示意图;
图10是实际偏置刀触点的计算示意图;
图11是刀具路径自相交交点的计算示意图;
图12是刀具路径自相交示意图;
图13是左偏置后的子刀具路径有效性判断示意图;
图14是右偏置后的子刀具路径有效性判断示意图;
图15是刀具路径自相交去除效果示意图。
具体实施方式
以下结合附图及实施例对本发明进行进一步的详细说明。
本发明为了解决现有技术中存在的加工残留高度控制有待提高,加工效率较低等不足,提供一种三角网格模型的等残留高度刀触点轨迹生成方法,如图1所示,基本过程具体如下:
1)载入三角网格模型:从硬盘中将三角网格模型,如STL模型,读入内存时,采用C++标准模板库中的关联容器类set进行冗余顶点的去除,建立无重复顶点的vector类型点表和面片表;在此基础上,同样采用关联容器类set来查找伙伴半边并创建半边数据结构,建立vector类型的半边表;同时建立面片到顶点、面片到半边、顶点到面片、顶点到半边、半边到顶点、半边到面片内的前后相连半边、半边到相对应半边的邻接关系;
2)对于需要偏置的刀具路径,将路径中的刀触点进行分类,可分为凸刀触点、凹刀触点和平滑刀触点;
3)刀具路径的刀触点各向异性偏置:对于路径中的刀触点,先计算三类刀触点的切平面内各向异性偏置,再计算模型表面上的实际偏置刀触点;
4)偏置刀具路径的自相交处理,包括刀具路径自相交检测、路径交点计算、有效子路径判断等三个方面处理;
5)重复步骤2)至步骤4),直到刀具路径覆盖整个三角网格模型表面。
其中,步骤2)至步骤4)主要涉及刀具路径中刀触点分类、刀触点各向异性偏置、偏置刀具路径的自相交处理。
1、刀触点分类
为更加精确地实现允许加工带宽,将刀触点轨迹线中的刀触点分为凸刀触点、凹刀触点和平滑刀触点,如图2和图3所示,具体的刀触点类型判别方法如下:
设点P为刀触点,P点处的单位法矢为n,l1和l2为连接P点的前后两段路径线段的单位方向矢量,P点前连接线段所决定的偏置方向t1,则当偏置后的新刀触点在沿着刀具路径方向的左边时,即左偏置时t1=(n×l1)/|n×l1|,如图2中偏置方向;当进行右偏置时t1=(l1×n)/|l1×n|,如图3中偏置方向;设标量d1=t1·l2、d2=l1·l2,ε1为一个接近0的正数,ε2为一个小于1但接近1的正数,则:
①当|d1|<ε1且d2>ε2时,P点为平滑刀触点;
②当d1>ε1时,P点为凹刀触点,如图3中所示的刀触点P;
③当d1<-ε1时,P点为凸刀触点,如图2中所示的刀触点P。
2、刀触点的偏置计算
2.1)刀触点偏置距离计算
刀触点在模型表面上偏置距离的计算方法为:
设当前刀具路径CCi中的一个刀触点Pi,j,Pi,j点处模型的单位法矢为n,l1为Pi,j点的前一连接线段的单位方向矢量,l2为Pi,j点的后一连接线段的单位方向矢量,沿某一方向的行距计算公式为:
式中,w为行距,h为加工残留量,r为刀具半径,ρ为刀触点在偏置方向的曲率半径。
其中,h和r通过交互方式来设定,其他变量计算为:l1=(Pi,j-Pi,j-1)/|Pi,j-Pi,j-1|,l2=(Pi,j+1-Pi,j)/|Pi,j+1-Pi,j|,刀触点处单位法矢n计算如下:
首先计算三角网格模型顶点法矢,如图4所示:
式中,N为顶点法矢,FNi为顶点一阶邻域的所有n个面片中第i个面片Fi的单位法矢,Si为面片Fi的面积,θi为面片Fi在该顶点处的顶角。
由于刀触点在绝大多数情况下都不是网格模型的顶点,而是面片内的点,因此,采用面积加权法来计算刀触点处的单位法矢计算,如图5所示,三角面片的三个顶点分别为V1、V2、V3,点P为面内点,S为三角面片的面积。设三个顶点的面积权值分别为u、v、w,满足以下条件:
三个顶点的面积权值大小分别为:
根据面积加权法,点P的单位法矢n为:n=(uN1+vN2+wN3)/|uN1+vN2+wN3|,其中N1、N2、N3分别为顶点V1、V2、V3的单位法矢。
模型表面刀触点处在某一切向的曲率半径ρ计算如下:
首先采用连续方法计算三角模型顶点的曲率顶点,即计算顶点V的法矢N,建立点V的局部坐标系V-huv,其中h轴沿法矢N方向,u、v轴位于点V的切平面上,且相互垂直。利用模型的半边拓扑结构查找顶点V的二阶邻域点,通过最小二乘法拟合获得二次曲面S(u,v)=(u,v,h(u,v))(式中h(u,v)=au2+buv+cv2+eu+fv+g)多项式的各个参数。计算曲面在顶点的一阶偏导和二阶偏导,则可计算出局部曲面在P点处的曲面第一基本量E、F、G和第二基本量L、M、N如下:
则顶点的平均曲率H和高斯曲率K为:
同样采用面积加权法计算面片中点P在某一方向上的曲率k为:k=uk1+vk2+wk3,其中,k1、k2、k3分别为三角面片顶点V1、V2、V3在该方向上的曲率大小,则点P在该方向上的曲率半径ρ=1/k。
2.2)刀触点的切平面内偏置
目前采用偏置法生成等残留高度加工刀具路径时,都只是将刀触点沿一个方向进行偏置,这将出现如图6和图7所示的情况,图中清楚表明,刀触点P只沿一个方向t偏置一个距离时的刀具路径行距,要比分别沿t1和t2不同方向偏置相同距离时的行距要小。为使偏置前后的刀触点路径间的加工残留高度更接近最大允许值,对于三种类型刀触点在其切平面内的偏置分别处理如下:
计算三类刀触点的切平面内各向异性偏置,是根据刀触点类型在刀触点的切平面内对刀触点进行相应偏置,具体计算方法分别如下:
①凸刀触点的切平面内偏置:如图8所示,凸刀触点设为Pi,j,采用各向异性的三点偏置,在过Pi,j点的网格模型切平面上,Pi,j点的三个偏置方向分别计算为t1=(n×l1)/|n×l1|,t2=(n×l2)/|n×l2|,t3=(n×l3)/|(n×l3)|,其中l3=(l1+l2)/|l1+l2|;计算模型在Pi,j点处沿t1、t2和t3三个方向上的行距分别为w1、w2和w3,其中沿某一方向的行距计算公式如步骤2.1)所述。
②凹刀触点的切平面内偏置:如图9所示,凹刀触点设为Pi,j,L'1为Pi,j点前一连接线段的偏置直线,L'2为为Pi,j点前一连接线段的偏置直线,t1=(n×l1)/|n×l1|,t2=(n×l2)/|n×l2|;w1和w2分别是模型在Pi,j点处沿t1和t2两个方向上行距;则L'1的参数方程为:
L'1(u)=(Pi,j+w1·t1)-l1·u,其中u为参数方程的参数变量;
L'2的参数方程为:
L'2(v)=(Pi,j+w2·t2)+l2·v,其中v为参数方程的参数变量;
令L'1(u)=L'2(v),并整理得:
w1·t1-l1·u=w2·t2+l2·v (1)
等式(1)两边乘l1,且因t1⊥l1且均为单位矢量,可得:
u=-(w2·l1·t2+l1·l2·v) (2)
等式(1)两边乘l2,且因t2⊥l2且均为单位矢量,可得:
v=w1·l2·t1-l2·l1·u (3)
将(3)式代入(2)式,并整理后可得:
u=w2·l1·t2/[1-(l1·l2)2];
将u值代入直线L'1(u)即可计算出Pi,j的过渡偏置点P′i+1,j;
然后计算w=|P′i+1,j-Pi,j|,t=(P′i+1,j-Pi,j)/w。
③平滑刀触点的切平面内偏置:平滑刀触点设为Pi,j,对其进行单向偏置,则其偏置方向为t=(n×l)/|(n×l)|,其中l=(l1+l2)/|l1+l2|,沿t方向的行距计算为w;
2.3)实际偏置刀触点的计算
实际偏置刀触点的计算原理如图10所示,具体偏置方法为:
①当前刀触点为Pi,j,n为模型在Pi,j点处的单位法矢,t为Pi,j点处某一偏置方向的单位切矢量,w为Pi,j点在t方向上的行距计算值;
②构造过Pi,j点且包含矢量n、t的平面Π,平面Π内有中点为O=Pi,j-ρ·n,其中ρ为模型在Pi,j点处沿t方向的曲率半径;
③平面Π内t′为刀触点理论偏置方向矢量,在t′方向上的Pi+1,j为理论偏置点;为计算Pi+1,j,在Π内过O作线段Pi,jPi+1,j的垂线L,垂足为B,线段Pi,jB长度为w/2;
④垂线L与Pi,j点处的t向切线交于A,设线段Pi,jA的长度d,线段AB的长度为x。图10中,直角△Pi,jAB和直角△OPi,jB相似,则根据三角形相似理论,d/ρ=x/(w/2),又由直角△Pi,jAB可得d2=x2+(w/2)2,因此可解得
⑤计算点O到A的矢量V=ρ·n+d·t,单位化为v;由于t′与V垂直,所以t′=((n×t)×v)/|(n×t)×v|,则P′i+1,j=Pi,j+w·t′;
⑥由于P′i+1,j是根据模型在Π平面内的密切圆计算而得,因此并不一定会是模型表面上的点,可构造参数变量为s的参数直线L′(s)=O+(P′i+1,j-O)·s与模型三角面片求交获得实际偏置刀触点Pi+1,j。为提高求交效率,以模型表面点Pi,j为中心来搜索邻域附近的三角面片。
3、偏置刀具路径自相交处理
偏置后获得的新刀触点路径,有可能出现自相交的情况,为提高加工效率,需要去除自相交后的无效子路径。偏置刀具路径相交处理包括刀具路径自相交检测、路径交点计算、有效路径判断三个步骤。
3.1)刀具路径自相交检测
为进行偏置刀具路径的自相交检测,设偏置获得新的刀具路径CCi+1,其中依次存放着刀触点P0、P1、…、Pn-1、Pn,则路径自相交检测过程如下:
①查找CCi+1中最长的轨迹线段,取其长度的一半,设为l;
②基于CCi+1中的所有刀触点创建k-d搜索树;
③依次取刀触点,设为Pi,i分别取值从0,1,…,n-3,线段PiPi+1的长度为d,计算γ=(d2+l2)1/2;以Pi为检索中心,以γ为检索半径,通过k-d树获得一组刀触点,从中剔除索引值小于等于i+2的刀触点,最终获得刀触点数组PList;
④依次取PList中的刀触点,设为Pj,分别检测线段PiPi+1是否与Pj-1Pj和PjPj+1相交;以PiPi+1与PjPj+1相交检测为例,PiPi+1与Pj-1Pj相交的检测方法同理,检测方法为:分别设矢量V1=Pi+1-Pi、V2=Pj+1-Pj、es1=Pj-Pi、ee1=Pj+1-Pi、es2=Pi-Pj、ee2=Pi+1-Pj,标量d1=(es1×V1)·(ee1×V1)、d2=(es2×V2)·(ee2×V2);分三种情况处理:
(a)如果d1<0且d2<0,则PiPi+1与PjPj+1相交,进行交点计算;
(b)如果d1=0且d2<0,则进行一步判断:如果Pj为es1×V1为零矢量则判断为无交点,如果叉积矢量ee1×V1为零矢量,则令ee1=Pj+2-Pi,再计算d1=(es1×V1)·(ee1×V1),如果d1<0则Pj+1为交点,d1>0则无交点;
d1<0且d2=0时,同样可确定交点为Pi+1或无交点;
(c)其余情况则两线段无交点。
3.2)路径交点计算
当刀具路径出现自相交时,设线段PiPi+1和PjPj+1相交。由于四个刀触点基本上不会在同一个三角面片内,直接对两线段求交时会出现无交点的情况,因此提出交点计算原理如图11所示,具体求交计算如下:
①线段PiPi+1的单位方向矢量li=(Pi+1-Pi)/|Pi+1-Pi|,线段PjPj+1的单位方向矢量lj=(Pj+1-Pj)/|Pj+1-Pj|,模型在四个刀触点处的单位法矢分别为ni和ni+1、nj和nj+1,则计算:当ni+1×ni为非零矢量时nΠ1=li×(ni+1+ni)/|ni+1+ni|,否则nΠ1=li×ni;当nj+1×nj为非零矢量时nΠ2=lj×(nj+1+nj)/|nj+1+nj|,否则nΠ2=lj×nj;将nΠ1和nΠ2单位化后仍分别记为nΠ1和nΠ2;
②过线段PiPi+1,以nΠ1为法矢构造平面Π1,计算平面Π1与线段PjPj+1的交点为点I',如图11所示;
③以l=(nΠ1×nΠ2)/|nΠ1×nΠ2|为方向矢量,过点I'构造一条直线,分别与Pi和Pi+1所在三角面片以及位于两点之间的面片进行求交计算,获得交点I。
PiPi+1与Pj-1Pj交点的计算方法同理。
3.3)有效子路径判断
由于刀具路径并不一定是封闭的曲线,因此通过顺时针或逆时针的轮廓旋转方向来判断有效性的传统方法并不合适。如图12所示,刀具路径CCi为非封闭的开轮廓线,其左偏置后的CCi+1出现了自相交,其交点分别为I0和I1,将CCi+1分为如图中所示的1、2、3等三条子刀具路径。为便于判断子刀具路径的有效性,如图13和图14所示,设线段PiPi+1和PjPj+1相交,如果Pi+1为交点,则令Pi+2为Pi+1,如果Pj+1为交点,则令Pj+2为Pj+1;交点为I,ti为刀具路径线段PiPi+1的偏置方向,tj为刀具路径线段PjPj+1的偏置方向,具体判断方法为:
①计算矢量li=(I-Pi)、li+1=(Pi+1-I)和lj=(I-Pj)、lj+1=(Pj+1-I);
②计算d1=ti·lj、d2=ti·lj+1,
③如果d1>0且d2>0,则图13中Pi、I、Pj+1所在的子刀具路径为有效路径,图13中Pj、I、Pi+1所在的子刀具路径为无效路径;如果d1<0且d2<0,则图14中Pi、I、Pj+1所在的子刀具路径为无效路径,图14中Pj、I、Pi+1所在的子刀具路径为有效路径。PiPi+1与Pj-1Pj有效性的判断方法同理。最终,如图12所示的刀具路径偏置后去除自相交的效果如图15所示。
上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。
Claims (1)
1.一种三角网格模型的等残留高度刀触点轨迹生成方法,其特征在于,步骤如下:
1)载入三角网格模型,具体为:
读取三角网格模型,采用C++标准模板库中的关联容器类set进行冗余顶点的去除,建立无重复顶点的vector类型点表和面片表;采用关联容器类set查找伙伴半边并创建半边数据结构,建立vector类型的半边表;同时建立面片到顶点、面片到半边、顶点到面片、顶点到半边、半边到顶点、半边到面片内的前后相连半边、半边到相对应半边的邻接关系;
2)对于需要偏置的刀具路径,将路径中的刀触点分为凸刀触点、凹刀触点和平滑刀触点三类;
3)刀具路径的刀触点各向异性偏置:对于路径中的刀触点,先计算三类刀触点的切平面内各向异性偏置,再计算模型表面上的实际偏置刀触点;
4)偏置刀具路径的自相交处理,包括刀具路径自相交检测、路径交点计算、有效子路径判断等三个方面处理;
5)重复步骤2)至步骤4),直到刀具路径覆盖整个三角网格模型表面;
步骤2)中,路径中的刀触点包括凸刀触点、凹刀触点和平滑刀触点;刀触点类型的判别方法具体如下:
设点P为刀触点,P点处的单位法矢为n,l1和l2为连接P点的前后两段路径线段的单位方向矢量,P点前连接线段所决定的偏置方向t1,则当偏置后的新刀触点在沿着刀具路径方向的左边时,即左偏置时t1=(n×l1)/|n×l1|,当进行右偏置时t1=(l1×n)/|l1×n|,设标量d1=t1·l2、d2=l1·l2,ε1为一个接近0的正数,ε2为一个小于1但接近1的正数,则:
当|d1|<ε1且d2>ε2时,P点为平滑刀触点;
当d1>ε1时,P点为凹刀触点;
当d1<-ε1时,P点为凸刀触点;
步骤3)中,计算三类刀触点的切平面内各向异性偏置,是根据刀触点类型在刀触点的切平面内对刀触点进行相应偏置,具体计算方法分别如下:
(a)凸刀触点的切平面内偏置:凸刀触点设为Pi,j,采用各向异性的三点偏置,在过Pi,j点的网格模型切平面上,Pi,j点的三个偏置方向分别计算为t1=(n×l1)/|n×l1|,t2=(n×l2)/|n×l2|,t3=(n×l3)/|(n×l3)|,其中l3=(l1+l2)/|l1+l2|;计算模型在Pi,j点处沿t1、t2和t3三个方向上的行距分别为w1、w2和w3,其中沿某一方向的行距计算公式为:
式中,w为行距,h为加工残留量,r为刀具半径,ρ为刀触点在偏置方向的曲率半径;
(b)凹刀触点的切平面内偏置:凹刀触点设为Pi,j,L'1为Pi,j点前一连接线段的偏置直线,L'2为为Pi,j点前一连接线段的偏置直线,t1=(n×l1)/|n×l1|,t2=(n×l2)/|n×l2|;w1和w2分别是模型在Pi,j点处沿t1和t2两个方向上行距;则L'1的参数方程为:L'1(u)=(Pi,j+w1·t1)-l1·u,其中u为参数方程的参数变量;L'2的参数方程为:L'2(v)=(Pi,j+w2·t2)+l2·v,其中v为参数方程的参数变量;
令L'1(u)=L'2(v),解得u=w2·l1·t2/[1-(l1·l2)2],将u代入直线L'1(u)计算出Pi,j的过渡点P′i+1,j;
计算w=|P′i+1,j-Pi,j|,t=(P′i+1,j-Pi,j)/w;
(c)平滑刀触点的切平面内偏置:平滑刀触点设为Pi,j,则其偏置方向为t=(n×l)/|(n×l)|,其中l=(l1+l2)/|l1+l2|,沿t方向的行距计算为w;
式中,w为行距,h为加工残留量,r为刀具半径,ρ为刀触点在偏置方向的曲率半径;
步骤3)中,实际偏置刀触点的计算方法具体为:
步骤①设当前刀触点为Pi,j,n为模型在Pi,j点处的单位法矢,t为Pi,j点处某一偏置方向的单位切矢量,w为Pi,j点在t方向上的行距计算值;
步骤②构造过Pi,j点且包含矢量n、t的平面Π,平面Π内有中点为O=Pi,j-ρ·n,ρ为模型在Pi,j点处沿t方向的曲率半径;
步骤③平面Π内t′为刀触点理论偏置方向矢量,在t′方向上的Pi+1,j为理论偏置点;为计算Pi+1,j,在Π内过O作线段Pi,jPi+1,j的垂线L,垂足为B,线段Pi,jB长度为w/2;
步骤⑤计算点O到A的矢量V=ρ·n+d·t,单位化为v;由于t′与V垂直,所以t′=((n×t)×v)/|(n×t)×v|,则P′i+1,j=Pi,j+w·t′;
步骤⑥构造参数变量为s的参数直线L′(s)=O+(P′i+1,j-O)·s与模型三角面片求交,获得实际偏置刀触点Pi+1,j;
步骤4)中,刀具路径自相交检测处理,设偏置后获得新的刀具路径CCi+1,其中依次存放刀触点P0、P1、…、Pn-1、Pn,则刀具路径自相交检测的过程如下:
步骤①查找CCi+1中最长的轨迹线段,取其长度的一半,设为l;
步骤②基于CCi+1中的所有刀触点创建k-d搜索树;
步骤③依次取刀触点,设为Pi,i分别取值从0,1,…,n-3,线段PiPi+1的长度为d,计算γ=(d2+l2)1/2;以Pi为检索中心,以γ为检索半径,通过k-d树获得一组刀触点,从中剔除索引值小于等于i+2的刀触点,最终获得刀触点数组PList;
步骤④依次取PList中的刀触点,设为Pj,分别检测线段PiPi+1是否与Pj-1Pj和PjPj+1相交;
PiPi+1与PjPj+1相交的检测方法为:分别设矢量V1=Pi+1-Pi、V2=Pj+1-Pj、es1=Pj-Pi、ee1=Pj+1-Pi、es2=Pi-Pj、ee2=Pi+1-Pj,标量d1=(es1×V1)·(ee1×V1)、d2=(es2×V2)·(ee2×V2);分三种情况处理:
(a)如果d1<0且d2<0,则PiPi+1与PjPj+1相交,进行交点计算;
(b)如果d1=0且d2<0,则进行一步判断:如果叉积矢量es1×V1为零矢量则判断为无交点,如果叉积矢量ee1×V1为零矢量,则令ee1=Pj+2-Pi,再计算d1=(es1×V1)·(ee1×V1),如果d1<0则Pj+1为交点,d1>0则无交点;
d1<0且d2=0时,同样可确定交点为Pi+1或无交点;
(c)其余情况则两线段无交点;
PiPi+1与Pj-1Pj相交的检测方法同理;
步骤4)中,路径交点计算处理,刀具路径出现自相交时,设线段PiPi+1和PjPj+1相交,交点计算如下:
步骤①线段PiPi+1的单位方向矢量li=(Pi+1-Pi)/|Pi+1-Pi|,线段PjPj+1的单位方向矢量lj=(Pj+1-Pj)/|Pj+1-Pj|,模型在四个刀触点处的单位法矢分别为ni和ni+1、nj和nj+1,则计算:
当ni+1×ni为非零矢量时,nΠ1=li×(ni+1+ni)/|ni+1+ni|,否则nΠ1=li×ni;当nj+1×nj为非零矢量时,nΠ2=lj×(nj+1+nj)/|nj+1+nj|,否则nΠ2=lj×nj;将nΠ1和nΠ2单位化后仍分别记为nΠ1和nΠ2;
步骤②过线段PiPi+1,以nΠ1为法矢构造平面Π1,计算平面Π1与线段PjPj+1的交点为点I';
步骤③以l=(nΠ1×nΠ2)/|nΠ1×nΠ2|为方向矢量,过点I'构造一条直线,分别与Pi和Pi+1所在三角面片以及位于两点之间的面片进行求交计算,获得交点I;
PiPi+1与Pj-1Pj交点的计算方法同理;
步骤4)中,有效子路径判断处理,设线段PiPi+1和PjPj+1相交,如果Pi+1为交点,则令Pi+2为Pi+1,如果Pj+1为交点,则令Pj+2为Pj+1;交点为I,ti为刀具路径线段PiPi+1的偏置方向,tj为刀具路径线段PjPj+1的偏置方向,有效子路径判断的具体方法为:
步骤①计算矢量li=(I-Pi)、li+1=(Pi+1-I)和lj=(I-Pj)、lj+1=(Pj+1-I);
步骤②计算d1=ti·lj、d2=ti·lj+1,
步骤③如果d1>0且d2>0,则Pi、I、Pj+1所在的子刀具路径为有效路径,Pj、I、Pi+1所在的子刀具路径为无效路径;如果d1<0且d2<0,则Pi、I、Pj+1所在的子刀具路径为无效路径,Pj、I、Pi+1所在的子刀具路径为有效路径;
PiPi+1与Pj-1Pj有效性的判断方法同理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224947.9A CN108594764B (zh) | 2018-03-19 | 2018-03-19 | 一种三角网格模型的等残留高度刀触点轨迹生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224947.9A CN108594764B (zh) | 2018-03-19 | 2018-03-19 | 一种三角网格模型的等残留高度刀触点轨迹生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108594764A CN108594764A (zh) | 2018-09-28 |
CN108594764B true CN108594764B (zh) | 2021-06-29 |
Family
ID=63626576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810224947.9A Active CN108594764B (zh) | 2018-03-19 | 2018-03-19 | 一种三角网格模型的等残留高度刀触点轨迹生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108594764B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240201B (zh) * | 2018-11-12 | 2021-07-09 | 上海维宏电子科技股份有限公司 | 应用于水切割机床刀路规划的方法 |
CN111880480B (zh) * | 2020-07-31 | 2022-03-11 | 杭州爱科科技股份有限公司 | 一种基于cnc铣床的铣刀切割路径生成方法及*** |
CN112363455B (zh) * | 2020-11-02 | 2021-09-24 | 中国科学院数学与***科学研究院 | 一种基于动力学约束的刀具路径确定方法及*** |
CN115719403B (zh) * | 2022-11-21 | 2023-08-01 | 上海铼钠克信息技术有限公司 | 构建刀具轨迹的方法和装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000275083A (ja) * | 1999-03-29 | 2000-10-06 | Okumura Engineering Corp | ガット船における積載石材量の計測方法、及びその装置 |
CN103885385A (zh) * | 2014-03-07 | 2014-06-25 | 华侨大学 | 一种三角网格模型的分治加工方法 |
CN104331023A (zh) * | 2014-10-30 | 2015-02-04 | 华侨大学 | 一种用于五轴数控加工的等残留高度刀触点轨迹的生成及优化处理方法 |
CN105045205A (zh) * | 2015-07-24 | 2015-11-11 | 广东工业大学 | 一种基于三角网格偏置补偿的刀位路径生成方法及其数控加工*** |
CN105629876A (zh) * | 2016-02-16 | 2016-06-01 | 华侨大学 | 一种三角网格模型数控加工的多刀具优化组合选择方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107093203A (zh) * | 2010-06-30 | 2017-08-25 | 巴里·林恩·詹金斯 | 图形信息的基于导航的预取发送或接收的控制方法和*** |
-
2018
- 2018-03-19 CN CN201810224947.9A patent/CN108594764B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000275083A (ja) * | 1999-03-29 | 2000-10-06 | Okumura Engineering Corp | ガット船における積載石材量の計測方法、及びその装置 |
CN103885385A (zh) * | 2014-03-07 | 2014-06-25 | 华侨大学 | 一种三角网格模型的分治加工方法 |
CN104331023A (zh) * | 2014-10-30 | 2015-02-04 | 华侨大学 | 一种用于五轴数控加工的等残留高度刀触点轨迹的生成及优化处理方法 |
CN105045205A (zh) * | 2015-07-24 | 2015-11-11 | 广东工业大学 | 一种基于三角网格偏置补偿的刀位路径生成方法及其数控加工*** |
CN105629876A (zh) * | 2016-02-16 | 2016-06-01 | 华侨大学 | 一种三角网格模型数控加工的多刀具优化组合选择方法 |
Non-Patent Citations (1)
Title |
---|
复杂三角网格模型五轴数控加工刀具轨迹规划研究;祁杨停;《中国优秀硕士学位论文全文数据库工程科技I辑》;20150215(第2期);B022-931页全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108594764A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108594764B (zh) | 一种三角网格模型的等残留高度刀触点轨迹生成方法 | |
Lasemi et al. | Recent development in CNC machining of freeform surfaces: A state-of-the-art review | |
Imani et al. | Geometric simulation of ball-end milling operations | |
Kim | Tool path generation for contour parallel milling with incomplete mesh model | |
CN105425727A (zh) | 五轴侧铣加工刀具路径光顺方法 | |
CN109343468B (zh) | 一种基于投影偏置的叶片多轴轨迹生成方法 | |
Wu et al. | Research on adaptive CNC machining arithmetic and process for near-net-shaped jet engine blade | |
Li et al. | The modeling approach of digital real tooth surfaces of hypoid gears based on non-geometric-feature segmentation and interpolation algorithm | |
Liang et al. | Iso-scallop tool path planning for triangular mesh surfaces in multi-axis machining | |
Li et al. | A tracking-based numerical algorithm for efficiently constructing the feasible space of tool axis of a conical ball-end cutter in five-axis machining | |
He et al. | Quasi-developable and signed multi-strip approximation of a freeform surface mesh for efficient flank milling | |
Kukreja et al. | Estimation of scallop height in freeform surface CNC Machining | |
Zhu et al. | Geometric conditions for tangent continuity of swept tool envelopes with application to multi-pass flank milling | |
Van Dang et al. | Enhanced vector flow of significant directions for five-axis machining of STL surfaces | |
Du et al. | The avoidance of cutter gouging in five-axis machining with a fillet-end milling cutter | |
Makhanov | Vector fields for five-axis machining. A survey | |
Duvedi et al. | The edge–torus tangency problem in multipoint machining of triangulated surface models | |
CN112347585B (zh) | 一种球头铣刀与工件接触区域解析计算方法 | |
Yan et al. | THREE-AXIS TOOL-PATH B-SPLINE FITTING BASED ON PREPROCESSING, LEAST SQUARE APPROXIMATION AND ENERGY MINIMIZATION AND ITS QUALITY EVALUATION. | |
CN114970247A (zh) | 一种面向叶盘结构的高保真有限元模型自动建模方法 | |
Fan | Cutting speed modelling in ball nose milling applications | |
Min et al. | Tool orientation planning method based on divided surface | |
Huang et al. | A sampling method based on improved firefly algorithm for profile measurement of aviation engine blade | |
Navangul et al. | A vertex translation algorithm for adaptive modification of STL file in layered manufacturing | |
Li et al. | Blade profile extraction and edge completion method based on structured light measurement point cloud |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |