图1 干涉示意图
图2 刀具左偏
一、尖角过渡
- 直线与直线相交
- 在图2中,A、B、C、D为工件轮廓节点,a、b、c、d为刀具中心轨迹节点,其坐标关系为:
- xm=xn+ΔxN
- ym=yn+ΔyN
- 式中,xm、ym为刀具中心轨迹节点坐标值;xn、yn为工件轮廓节点的坐标值;ΔxN、ΔyN为工件轮廓和刀具中心对应节点连线的向量在两个坐标轴上的分量。
- 欲求xm、ym应先求出ΔxN、ΔyN,设直线AB、BC与X轴的夹角为a和b,则有:
ΔxN=l cos[(a+b)/2+p/2]=-l sin[(a+b)/2]
ΔyN=l sin[(a+b)/2+p/2]=l cos[(a+b)/2]- 式中,l=r/cos[(a-b)/2]由此可得:
ΔxN=r{-sin[(a+b)/2]}/cos[(a-b)/2]
ΔyN=r cos[(a+b)/2]/cos[(a-b)/2]- 式中,l为工件轮廓和刀具中心对应节点间的距离;r为刀具半径;a、b为按逆时针方向工件轮廓节点前、后两直线与X轴的夹角。
- 令:p=-sin[(a+b)/2]/cos[(a-b)/2],q=cos[(a+b)/2]/cos[(a-b)/2]
- 则有:ΔxN=rp ΔyN=rq
xm=xn+rp ym=yn+rq (1) - 若连续三个节点的坐标为(xA、yA)、(xB、yB)、(xC、yC),则有:
- tana=(yB-yA)/(xB-xA)
- tanb=(yC-yB)/(xC-xB)
- 如果p、q不用a、b表示,可直接用节点前、后两直线的坐标增量表示:
p=[x2(x12+y12)1/2-x1(x22+y22)1/2]/(x1y2-x2y1)
q=[y2(x12+y12)1/2-y1(x22+y22)1/2]/(x1y2-x2y1)- 式中 x1=xB-xA y1=yB-yA
- x2=xC-xB y2=yC-yB
图3 刀具右偏- 上面公式是顺着刀具运动方向看,刀具在工件轮廓左侧的情况下导出的,对于其刀具在工件轮廓右侧的情况,其矢量方向正好相反,如图3所示,则有:
p=[x1(x22+y22)1/2-x2(x12+y12)1/2]/(x1y2-x2y1)
q=[y1(x22+y22)1/2-y2(x12+y12)1/2]/(x1y2-x2y1)- 为了计算方便,将p、q表示为:
{ p=K[x2(x12+y12)1/2-x1(x22+y22)1/2]/(x1y2-x2y1) (2) K[y2(x12+y12)1/2-y1(x22+y22)1/2]/(x1y2-x2y1) - 式中,K为刀偏修正系数,当刀具左偏时,K=1,当刀具右偏时K=-1。
图4 直线与圆弧、圆弧与圆弧相切示意图- 直线与圆弧、圆弧与圆弧相切
- 如图4所示,切点B处的矢量可通过直线或圆弧求出。
- 直线与圆弧相切时,有:
{ p=K(yA-yB)/[(yB-yA)2+(xB-xA)2]1/2 (3) q=K(xA-xB)/[(yB-yA)2+(xB-xA)2]1/2 - 或:
{ p=K(xB-x0)/R (4) q=K(yB-y0)/R - 式中,K为刀偏修正系数,取值同前;x0、y0为圆弧段圆心坐标值;R为圆弧段半径。
- 圆弧与圆弧相切时,设两相切圆的方程为:
- (x-x1)2+(y-y1)2=R12
- (x-x2)2+(y-y2)2=R22
- 切点为B,则B处的矢量为:
{ p=K(xB-x2)/R2 (5) q=K(yB-y2)/R2 - 或:
{ p=K(xB-x1)/R1 (6) q=K(yB-y1)/R1 - 式中,K为刀偏修正系数,取值同前;x1、y1和x2、y2为相切圆弧的圆心坐标;xB、yB为切点坐标;R1、R2为圆弧半径。
- 或:
图5 直线与圆弧、圆弧与圆弧相交过渡示意图- 直线与圆弧、圆弧与圆弧相交
- 单位矢量补偿法只能处理相交两直线、直线与圆弧或圆弧与圆弧相切的情况,对于直线与圆弧或圆弧与圆弧相交的情形,则需要对原始图作适当的修改,在不降低工件精度的情况下,于相交处增加一辅助圆弧r以过渡。如图5所示。过渡圆弧半径r的选取至关重要,它既与技术要求有关,还同本程序段所采用的刀具半径r刀有关,选择时应满足r>r刀的条件,否则将不能构成连续切削的图形,同样会产生干涉。
- 设直线L的方程为:
- Kx-y-KxA+yA=0 令A=B B=-1
- C=yA-KxA或C=yB-KxB
- K=(yB-yA)/(xA-xB)
- O1(x1,y1)为与直线L相交圆弧的圆心,R为半径,O(x0,y0)为过渡圆弧r的圆心,它与直线L和圆R分别相切于D、E,r、R及O1坐标已知,则有:
{ r=(Ax0+By0+C)/(A2+B2)1/2 (7) (r+R)2=(x0-x1)2+(y0-y1)2 - 解式(7)求出过渡圆弧r的圆心坐标x0,y0,切点D、E的坐标可通过解下列方程组求出:
{ r2=(x0-yD)2+(y0-yD)2 (8) AxD+ByD+C=0 { r2=(x0-yE)2+(y0-yE)2 (9) R2=(x1-yE)2+(y1-yE)2 - 同理可求出两圆弧相交时,在交点处过渡圆弧r的圆心O及与R1、R2圆的切点D、E的坐标值,其中圆心为O1、O2,其求值的方程为:
{ (R1+r)2=(x0-x1)2+(y0-y1)2 (10) (R2+r)2=(x0-x2)2+(y0-y2)2 { r2=(x0-xD)2+(y0-yD)2 (11) R12=(x1-xD)2+(y1-yD)2 { r2=(x0-xE)2+(y0-yE)2 (12) R22=(x2-xE)2+(y2-yE)2 - 式中r、R1、R2、x1、y1、x2、y2已知,解式(10),求得过渡圆弧r的圆心坐标值x0、y0;解式(11)、式(12),求得切点D、E的坐标值xD、yD、xE、yE。
- 对于刀具引入和退出轮廓面的矢量同理可求出:
- 直线段:
{ p=K(x2-x1)/[(x2-x1)2+(y2-y1)2]1/2 (13) q=K(y2-y1)/[(x2-x1)2+(y2-y1)2]1/2 - 式中,K为刀偏修正系数,取值同前;x1、y1为进入点坐标;x2、y2为退出点坐标。
- 圆弧段:
{ p=K(x1-x0)/R (14) q=K(y1-y0)/R - 式中,K为刀偏修正系数,取值同前;x0、y0、R为圆弧的圆心坐标和半径;x1、y1为圆弧起点坐标。
图6 刀具半径r大于台阶高度h的过渡示意图- 对小台阶型面的过渡
- 在实际加工中,常会遇到加工刀具的半径r大于台阶高度h的情况,如图6所示。若编程时不作任何处理,直接用给定的坐标值以转角的方式编程,则必将导致过切如图6a中阴影部分。因此,遇到这种情形时,需对编程点坐标作相应的处理,在程序中采用走直线的方法对台阶面进行过渡,如图6b所示,有:
BE=[r2-(r-h)2]1/2 (15) - xE=xB-BE yE=yB
- 为了计算方便,走刀终点E的求解通式为(如图6c所示):
{ xE=xB-BEcosq (16) yE=yB+BEsinq - 式中,q为直线段AB与X轴的夹角,有正负之分。
- 其正确的加工程序段为:
N100 G01 G41 xa ya Za Fg N110 xe ye ;不能用转角指令 N120 G71 xe ye ;转外角 N130 G41 xd yd - 以上过渡算法,已用C语言编成了计算机程序(具体程序略)。
- 在图2中,A、B、C、D为工件轮廓节点,a、b、c、d为刀具中心轨迹节点,其坐标关系为:
图7 轮廓进、退刀示意图
图8 型腔进、退刀示意图
二、切入切出程序的设计
图9 工件上留下的凹痕
图10 锪孔时进、退刀示意图