倾斜椭圆的编程
以长半轴30,短半轴20,倾斜30度为例
#1=0
n1#2=cos[#1]*30
#3=sin[#1]*20
#4=atan[#3]/[#2]+30
#5=sqrt[#2*#2+#3*#3]
#6=cos[#4]*#5
#7=sin[#4]*#5
if[#1gt360]goto2
g1x#6y#7f100
#1=#1+1
goto1
n2m00
椭圆长半轴为30,短半轴为20,椭圆绕椭圆圆心旋转30度.椭圆加工到X直径为40止.
#1=30 椭圆长半轴
#2=20 椭圆短半轴
#3=COS[30]*26.19 #3为椭圆长轴起点 26.19为椭圆圆心到椭圆Z方向起点距离
#4=20-TAN[30]*21.02 #4为椭圆短轴终点 21.02为椭圆圆心到椭圆Z方向终点距离
#5=COS[30]*21.02
#6=SIN[30]*#4
#7=#5+#6 #7为椭圆长轴终点
WHILE[#3GE#7]DO1 判断椭圆长轴是否走到终点
#8=#2*SQRT[#1*#1-#3*#3]/#1 椭圆公式
#9=COS[30]*#8 #9为X轴的变量
#10=SIN[30]*#8+COS[30]*#3 #10为Z轴的变量
G01X[2*#9-#3] Z[#10-26.19] 直线插补
#3=#3-0.5 长轴步进0.5
END1
FANUC-0i 数控车抛物线宏程序数控 2008-01-07 19:26:11 阅读113 评论0 字号:大中小 订阅 .
O1234
T1;
M3 S800;
GO X0 Z30;
G1 Z25 F0.1;
#2 =0.01;
#3 =0;
#4 =25;
N1 #1 =#3*#3+#4-25
IF[#1LE0] GOTO2;
IF[#1GT0] GOTO3;
IF[#1LT0] GOTO4;
N2 U#2 F0.1;
#3 =#3+#2;
#3 =#3;
GOTO1;
N3 W-#2;
#4=#4-#2;
#4=#4;
GOTO1;
N4 GO X50 Z100
T00 M05;
M30;
%
或者
O1234
T01 M3 S600
G0X11 Z31
G1 Z30 F0.2
X0
G0 X10 Z31
G1 Z25
#2=0.05
#3=10
#4=25
#5=18.9
#6=5
N1 #7=#7+#2
#9=0.5*#7
#8=-[#9-5]*[#9-5]+25
G1 X#7 Z#8 F0.1
WHILE[#7 GE #5] DO1
G1Z#6
GOTO2
END1
WHILE[#8 GT #6] DO1
G1 X#5
GOTO2
END1
GOTO1
N2 G2 X24.9 Z2.5 R2.5
G1 Z0
G0 X50 Z100
T00 M05
M30
%
说明:
EQ NE GT GE LT LE
等于 不等于 大于 大于等于 小于 小于等于
语法
1.GOTOn
2.IF[条件式] GOTOn
3.IF[条件式] THEN____
4.WHILE[条件式] DOn
____
____
ENDn
注:n为程序行号
____为另一个处理
数控车椭圆宏程序编制% C$ U- V% F+ A8 M6 x
2 c" V8 i, S" b* ~2 j8 Y
: I0 p6 {' T. U6 F# }. N1 u Y近年来 随着数控加工设备技术的进步与发展,数控机床已成为机械加工技术中不可缺少的关键设备。从国家到地方也经常举行数控方面的比赛,在数控车比赛中频繁出现各种二次曲线轮廓的结构,其中椭圆轮廓出现的次数最多。椭圆宏程序根据方程的不同可以有用z做变量和用角度做变量两种,笔者根据自己在训练加工中的体会,结合宏程序的特点,将椭圆宏程序(以FANUC系统为例),用z做变量做一下总结,以方便同行使用。9 i1 Z7 E% t- F0 ?
1.基本椭圆宏编程:9 e- ~" f: }' ?- g3 f
( j4 c6 M Y' b2 p
1 O# d" _$ d* P& I1 ~% K
: c0 {6 N0 ]$ |
8 g2 X: b# \4 ]
4 i- k: E- H% U; I4 {: y图一 数学坐标系 图二 工件坐标系8 q& @8 }& f) u
椭圆的数学方程: + =1,该方程坐标系如图一。实际数控编程中我们必须将上面公式进行变换,以符合数控车加工中的工件坐标系,见图二,于是方程变换为: + =1,把Z作为已知量,求解X。
1 ^% Q _; Q5 e! g% g" y解得:X=b
$ ^6 E, ?* h/ ~' G0 v i; ] E3 s编程思路为:把Z方向加工长度进行密分,间隔量(步进量)视椭圆弧轮廓度要求而定,然后根据Z向密分坐标解得X坐标值,该计算交给系统完成,因此必须把椭圆的相关已知条件进行赋值,最后根据X、Z进行直线插补,加工出椭圆弧 。 图三
) v- ]3 l X6 X* e/ M; {( r4 A编程如下:(见图三)
. O4 ]9 w. P7 ^7 ]# W7 J2 ?2 e#101=a;(长半轴)
$ L! V# S# g* `/ [' d) K#102=b;(短半轴)
& T r" v, N- h5 m# e; n. ]#103=a;(z向椭圆起始点)
1 A6 A* T1 {" @5 ?6 CN10 #104=#102*SQRT[#101*#101-#103*#103]/ #101;(半径值的计算)* c4 ^4 ^% y. d9 x2 `. N- L
G01 X[2*#104] Z[#103] F0.2;(直线插补)
0 ?9 x: f- i: d& P8 x+ J#103=#103-0.5;(设定z向步进量0.5mm) P2 w/ f9 D' N$ J3 ^# |: O
IF [#103 GE 0] GOTO10;(判断是否到达椭圆弧终点,图三中加工90º椭圆弧,Z方向终点为0)
# Q0 {/ s* [/ d k7 s: j( yG00 U50 Z……;(退刀)
! r' O: v: R1 T! D. j- w2.变化后椭圆宏编程: v L# Z+ g" e+ [% p: r2 a! L
在实际图纸中,椭圆弧在零件上的位置根据总结大概有以下几种:- L4 O. j V- O9 @' c; T! O0 p5 r( G
(1)凸椭圆弧位于零件的最右端及中间位置(如图四);
# [7 L* A1 Q, w+ P
" T; _6 Z( j3 B9 K; a5 c
& j+ n1 H( t. {& X2 A p
* W x0 {$ h3 U3 ^- k9 @ r图四
1 i( q9 r8 m$ W(2)凸椭圆弧中心线不和零件轴线重合(如图五);
; K. I G; X: t' _( i8 ]% ?- c% ~& H+ n6 T
9 p+ U1 D0 P3 G/ r
$ T7 T4 ?: h- L
* E/ y1 u* | z5 L- k; ^图五
8 u5 O$ X0 A) l2 X" c(3)凹椭圆弧同样对应上面一、二两类变化(在图中将凸弧改换成凹弧);4 `5 M: L' A( P, z' j+ T
(4)长、短半轴互换后凸凹椭圆弧位置同样对应上面一、二两类变化;
, ?& @9 V9 k0 B( H' u! _4 [(5)倾斜椭圆弧(椭圆弧中心线与零件轴线成锐角)对应的以上变化。! M- p) N) p- a+ P. Z) V! W, a
仔细分析这些变化,在编程中实际上包含椭圆弧起始及终止点的变化,椭圆弧中心点轴向位置、径向位置的变化,凹凸椭圆弧的变化,长半轴及短半轴的互换,椭圆弧中心线与零件轴线夹角的变化(倾斜椭圆)等,这里笔者对除倾斜椭圆外的几种
情况进行总结,编程如下:(见图六)
# v$ {+ _# J# R0 H6 s$ J1 \4 g! K
- n N! C* ^; u* E( k4 m: A. J图六0 q+ |3 p; r& H, P% T
#101=a;(与Z轴平行的半轴长)
/ z# M; H7 u# T; A#102=b;(与X轴平行的半轴长)$ h0 K* Y2 J4 m
#103=m;(椭圆弧起始点到椭圆中心距离,起始点位于椭圆中心线左侧为负,右侧为正)7 e0 Z4 T; y' A8 \$ L* [+ D( j1 R1 I
#104=n;(椭圆弧终止点到椭圆中心距离,终止点位于椭圆中心线左侧为负,右侧为正)
% j4 o, E- h4 g$ G9 E% \- c#105=e;(椭圆中心线到零件轴线距离)" M! }0 K. y2 r# G
#106=L;(椭圆中心到编程原点z向距离,这里将编程原点置于零件右端面中心)
1 Q; d% I' t2 U: m- bN10 #107=#102*SQRT[#101*#101-#103*#103]/ #101;(计算X值); o$ i& S' D+ P9 g0 D* {8 B" F" M$ C3 y
G01 X[2*#105±2*#107] Z[#103-#106] F0.2;(凸椭圆弧x计算中取“+”,凹椭圆弧取“-”)# u+ F/ R/ W9 u6 L+ C3 {3 j1 H
#103=#103-0.5;(设定z向步进量0.5mm)7 ^7 R4 y% K+ `) p; n% y& i# Y% B
IF [#103 GE#104] GOTO10;(判断是否到达椭圆弧终点)
' ~* ]; R! L1 T3 m' g1 _7 @2 XG00 U50 Z……;(退刀)2 E% G7 p3 g |' Z5 E( o! {4 e1 G
3.结语" B3 D& p4 K; L8 c) v% Z
这个程序里面椭圆弧起始及终止点的变化取决于m、n,椭圆弧中心点轴向位置变化取决于L,径向位置变化取决于e,凹凸椭圆弧的变化取决于X值计算中的正、负号的选择,长半轴及短半轴的互换在程序注释上a、b值已经注明。实际使用中只要将该程序存入系统,通过修改#101~#106就可以加工各种情况下的椭圆轮廓。至于椭圆弧中心线与零件轴线夹角的变化的宏编程只是在X、Z值上进行三角函数的计算,这里就不再赘述。9 S1 |# o/ O l5 N+ ]
* f* J7 N7 x/ V9 B
倾斜椭圆的编程
以长半轴30,短半轴20,倾斜30度为例
#1=0
n1#2=cos[#1]*30
#3=sin[#1]*20
#4=atan[#3]/[#2]+30
#5=sqrt[#2*#2+#3*#3]
#6=cos[#4]*#5
#7=sin[#4]*#5
if[#1gt360]goto2
g1x#6y#7f100
#1=#1+1
goto1
n2m00
椭圆长半轴为30,短半轴为20,椭圆绕椭圆圆心旋转30度.椭圆加工到X直径为40止.
#1=30 椭圆长半轴
#2=20 椭圆短半轴
#3=COS[30]*26.19 #3为椭圆长轴起点 26.19为椭圆圆心到椭圆Z方向起点距离
#4=20-TAN[30]*21.02 #4为椭圆短轴终点 21.02为椭圆圆心到椭圆Z方向终点距离
#5=COS[30]*21.02
#6=SIN[30]*#4
#7=#5+#6 #7为椭圆长轴终点
WHILE[#3GE#7]DO1 判断椭圆长轴是否走到终点
#8=#2*SQRT[#1*#1-#3*#3]/#1 椭圆公式
#9=COS[30]*#8 #9为X轴的变量
#10=SIN[30]*#8+COS[30]*#3 #10为Z轴的变量
G01X[2*#9-#3] Z[#10-26.19] 直线插补
#3=#3-0.5 长轴步进0.5
END1
FANUC-0i 数控车抛物线宏程序数控 2008-01-07 19:26:11 阅读113 评论0 字号:大中小 订阅 .
O1234
T1;
M3 S800;
GO X0 Z30;
G1 Z25 F0.1;
#2 =0.01;
#3 =0;
#4 =25;
N1 #1 =#3*#3+#4-25
IF[#1LE0] GOTO2;
IF[#1GT0] GOTO3;
IF[#1LT0] GOTO4;
N2 U#2 F0.1;
#3 =#3+#2;
#3 =#3;
GOTO1;
N3 W-#2;
#4=#4-#2;
#4=#4;
GOTO1;
N4 GO X50 Z100
T00 M05;
M30;
%
或者
O1234
T01 M3 S600
G0X11 Z31
G1 Z30 F0.2
X0
G0 X10 Z31
G1 Z25
#2=0.05
#3=10
#4=25
#5=18.9
#6=5
N1 #7=#7+#2
#9=0.5*#7
#8=-[#9-5]*[#9-5]+25
G1 X#7 Z#8 F0.1
WHILE[#7 GE #5] DO1
G1Z#6
GOTO2
END1
WHILE[#8 GT #6] DO1
G1 X#5
GOTO2
END1
GOTO1
N2 G2 X24.9 Z2.5 R2.5
G1 Z0
G0 X50 Z100
T00 M05
M30
%
说明:
EQ NE GT GE LT LE
等于 不等于 大于 大于等于 小于 小于等于
语法
1.GOTOn
2.IF[条件式] GOTOn
3.IF[条件式] THEN____
4.WHILE[条件式] DOn
____
____
ENDn
注:n为程序行号
____为另一个处理
数控车椭圆宏程序编制% C$ U- V% F+ A8 M6 x
2 c" V8 i, S" b* ~2 j8 Y
: I0 p6 {' T. U6 F# }. N1 u Y近年来 随着数控加工设备技术的进步与发展,数控机床已成为机械加工技术中不可缺少的关键设备。从国家到地方也经常举行数控方面的比赛,在数控车比赛中频繁出现各种二次曲线轮廓的结构,其中椭圆轮廓出现的次数最多。椭圆宏程序根据方程的不同可以有用z做变量和用角度做变量两种,笔者根据自己在训练加工中的体会,结合宏程序的特点,将椭圆宏程序(以FANUC系统为例),用z做变量做一下总结,以方便同行使用。9 i1 Z7 E% t- F0 ?
1.基本椭圆宏编程:9 e- ~" f: }' ?- g3 f
( j4 c6 M Y' b2 p
1 O# d" _$ d* P& I1 ~% K
: c0 {6 N0 ]$ |
8 g2 X: b# \4 ]
4 i- k: E- H% U; I4 {: y图一 数学坐标系 图二 工件坐标系8 q& @8 }& f) u
椭圆的数学方程: + =1,该方程坐标系如图一。实际数控编程中我们必须将上面公式进行变换,以符合数控车加工中的工件坐标系,见图二,于是方程变换为: + =1,把Z作为已知量,求解X。
1 ^% Q _; Q5 e! g% g" y解得:X=b
$ ^6 E, ?* h/ ~' G0 v i; ] E3 s编程思路为:把Z方向加工长度进行密分,间隔量(步进量)视椭圆弧轮廓度要求而定,然后根据Z向密分坐标解得X坐标值,该计算交给系统完成,因此必须把椭圆的相关已知条件进行赋值,最后根据X、Z进行直线插补,加工出椭圆弧 。 图三
) v- ]3 l X6 X* e/ M; {( r4 A编程如下:(见图三)
. O4 ]9 w. P7 ^7 ]# W7 J2 ?2 e#101=a;(长半轴)
$ L! V# S# g* `/ [' d) K#102=b;(短半轴)
& T r" v, N- h5 m# e; n. ]#103=a;(z向椭圆起始点)
1 A6 A* T1 {" @5 ?6 CN10 #104=#102*SQRT[#101*#101-#103*#103]/ #101;(半径值的计算)* c4 ^4 ^% y. d9 x2 `. N- L
G01 X[2*#104] Z[#103] F0.2;(直线插补)
0 ?9 x: f- i: d& P8 x+ J#103=#103-0.5;(设定z向步进量0.5mm) P2 w/ f9 D' N$ J3 ^# |: O
IF [#103 GE 0] GOTO10;(判断是否到达椭圆弧终点,图三中加工90º椭圆弧,Z方向终点为0)
# Q0 {/ s* [/ d k7 s: j( yG00 U50 Z……;(退刀)
! r' O: v: R1 T! D. j- w2.变化后椭圆宏编程: v L# Z+ g" e+ [% p: r2 a! L
在实际图纸中,椭圆弧在零件上的位置根据总结大概有以下几种:- L4 O. j V- O9 @' c; T! O0 p5 r( G
(1)凸椭圆弧位于零件的最右端及中间位置(如图四);
# [7 L* A1 Q, w+ P
" T; _6 Z( j3 B9 K; a5 c
& j+ n1 H( t. {& X2 A p
* W x0 {$ h3 U3 ^- k9 @ r图四
1 i( q9 r8 m$ W(2)凸椭圆弧中心线不和零件轴线重合(如图五);
; K. I G; X: t' _( i8 ]% ?- c% ~& H+ n6 T
9 p+ U1 D0 P3 G/ r
$ T7 T4 ?: h- L
* E/ y1 u* | z5 L- k; ^图五
8 u5 O$ X0 A) l2 X" c(3)凹椭圆弧同样对应上面一、二两类变化(在图中将凸弧改换成凹弧);4 `5 M: L' A( P, z' j+ T
(4)长、短半轴互换后凸凹椭圆弧位置同样对应上面一、二两类变化;
, ?& @9 V9 k0 B( H' u! _4 [(5)倾斜椭圆弧(椭圆弧中心线与零件轴线成锐角)对应的以上变化。! M- p) N) p- a+ P. Z) V! W, a
仔细分析这些变化,在编程中实际上包含椭圆弧起始及终止点的变化,椭圆弧中心点轴向位置、径向位置的变化,凹凸椭圆弧的变化,长半轴及短半轴的互换,椭圆弧中心线与零件轴线夹角的变化(倾斜椭圆)等,这里笔者对除倾斜椭圆外的几种
情况进行总结,编程如下:(见图六)
# v$ {+ _# J# R0 H6 s$ J1 \4 g! K
- n N! C* ^; u* E( k4 m: A. J图六0 q+ |3 p; r& H, P% T
#101=a;(与Z轴平行的半轴长)
/ z# M; H7 u# T; A#102=b;(与X轴平行的半轴长)$ h0 K* Y2 J4 m
#103=m;(椭圆弧起始点到椭圆中心距离,起始点位于椭圆中心线左侧为负,右侧为正)7 e0 Z4 T; y' A8 \$ L* [+ D( j1 R1 I
#104=n;(椭圆弧终止点到椭圆中心距离,终止点位于椭圆中心线左侧为负,右侧为正)
% j4 o, E- h4 g$ G9 E% \- c#105=e;(椭圆中心线到零件轴线距离)" M! }0 K. y2 r# G
#106=L;(椭圆中心到编程原点z向距离,这里将编程原点置于零件右端面中心)
1 Q; d% I' t2 U: m- bN10 #107=#102*SQRT[#101*#101-#103*#103]/ #101;(计算X值); o$ i& S' D+ P9 g0 D* {8 B" F" M$ C3 y
G01 X[2*#105±2*#107] Z[#103-#106] F0.2;(凸椭圆弧x计算中取“+”,凹椭圆弧取“-”)# u+ F/ R/ W9 u6 L+ C3 {3 j1 H
#103=#103-0.5;(设定z向步进量0.5mm)7 ^7 R4 y% K+ `) p; n% y& i# Y% B
IF [#103 GE#104] GOTO10;(判断是否到达椭圆弧终点)
' ~* ]; R! L1 T3 m' g1 _7 @2 XG00 U50 Z……;(退刀)2 E% G7 p3 g |' Z5 E( o! {4 e1 G
3.结语" B3 D& p4 K; L8 c) v% Z
这个程序里面椭圆弧起始及终止点的变化取决于m、n,椭圆弧中心点轴向位置变化取决于L,径向位置变化取决于e,凹凸椭圆弧的变化取决于X值计算中的正、负号的选择,长半轴及短半轴的互换在程序注释上a、b值已经注明。实际使用中只要将该程序存入系统,通过修改#101~#106就可以加工各种情况下的椭圆轮廓。至于椭圆弧中心线与零件轴线夹角的变化的宏编程只是在X、Z值上进行三角函数的计算,这里就不再赘述。9 S1 |# o/ O l5 N+ ]
* f* J7 N7 x/ V9 B