后处理G52的输出
四轴后处理,B轴,旋转后要重新设定坐标系,能不能通过后处理自动计算,编刀轨的时候给其他面都设定了坐标系,然后希望旋转后能够自动通过G52计算,有点像五轴加工的G68.2的功能。为什么不用卧加回转宏程序呢?非常适用卧加的多面加工,你只需设定一个坐标系并对刀,比如G54,后面的G55~G59甚至G54.1 P1~G54.1 P48全部由控制系统自动帮你填写,而且不用重新对刀。
%
O7999;
#110=;
#111=;
IF [#1LT1] GOTO 3000;
IF [#1GT60] GOTO 3000;
IF [#1EQ49] GOTO 3000;
IF [#1EQ50] GOTO 3000;
IF [#1EQ51] GOTO 3000;
IF [#1EQ52] GOTO 3000;
IF [#1EQ53] GOTO 3000;
IF [#1LE48] GOTO 20;
#101=#*20];
#102=#*20];
#103=#*20];
GOTO 30;
N20 #101=#*20];
#102=#*20];
#103=#*20];
GOTO 30;
N30 #21=#101-#110;
#22=#103-#111;
#30=ABS[#21];
#31=ABS[#22];
IF [#2GT0] GOTO 40;
#2=#2+360.;
N40 IF [#21EQ0] GOTO 50;
IF [#22EQ0] GOTO 60;
IF [#21GT0] GOTO 70;
IF [#22LT0] GOTO 80;
IF [#22GT0] GOTO 90;
N50 IF [#22EQ0] GOTO 100;
IF [#22GT0] GOTO 200;
IF [#22LT0] GOTO 300;
N60 IF [#21GT0] GOTO 400;
IF [#21LT0] GOTO 500;
N70 IF [#22GT0] GOTO 600;
IF [#22LT0] GOTO 700;
N80 #120=ATAN[#30]/[#31];
GOTO 1000;
N90 #120=ATAN[#31]/[#30]+90;
GOTO 1000;
N100 #101=#110;
#103=#111;
GOTO 1010;
N200 #120=180;
GOTO 1000;
N300 #120=0;
GOTO 1000;
N400 #120=270;
GOTO 1000;
N500 #120=90;
GOTO 1000;
N600 #120=ATAN[#30]/[#31]+180;
GOTO 1000;
N700 #120=ATAN[#31]/[#30]+270;
GOTO 1000;
N1000 #18=SQRT[(#101-#110)*(#101-#110)+(#103-#111)*(#103-#111)];
#24=#18*SIN[#120+#2];
#26=#18*COS[#120+#2];
#106=#110+#24;
#107=#111+#26;
GOTO 2000;
N1010 #106=#110;
#107=#111;
N2000 IF [#3LT1] GOTO 3000;
IF [#3GT60] GOTO 3000;
IF [#3EQ49] GOTO 3000;
IF [#3EQ50] GOTO 3000;
IF [#3EQ51] GOTO 3000;
IF [#3EQ52] GOTO 3000;
IF [#3EQ53] GOTO 3000;
IF [#3LE48] GOTO 2200;
N2100 #*20]=#106;
#*20]=#102;
#*20]=#107;
GOTO 9000;
N2200 #*20]=#106;
#*20]=#102;
#*20]=#107;
M99;
N3000 #3000=21(#A&#C DATD ERROR);
%
我这有一PDF文档,详细介绍了回转宏的使用方法,但论坛不支持此格式文件,所以发不上来。
laomei 发表于 2015-6-28 10:27 static/image/common/back.gif
为什么不用卧加回转宏程序呢?非常适用卧加的多面加工,你只需设定一个坐标系并对刀,比如G54,后面的G55~G ...
楼主,我们也经常会遇到这类问题,可否将PDF文件发给我一份啊,谢谢啦!QQ邮箱1046648786@qq.com 这个问题是会经常遇到,如果四轴能自锁,用四轴联动的后处理就可以,不过每次加工前要重新取高度差,调试时前两件可能也会NG。不用联动的后处理,每转动一次又需要重新分中取数,挺麻烦的。帮你顶一下,希望有高手能出个方便的方法 顶顶顶顶顶顶{:victory:}{:victory:} switch $controller_type {
"siemens" {
MOM_output_literal "G52 X$X Y$Y Z$Z"
MOM_output_literal "G68 X$X Y$Y Z$Z I0 J1 K0 R$B"
set rot ""
set rot "ROT X$A"
set rot "$rot ROT Y$B"
set rot "$rot ROT Z$C"
# MOM_output_literal $rot
}
谁能把G52和G68分开,其中G52的判断条件是当B轴为零的时候,其他时候输出G68 laomei 发表于 2015-6-28 10:27 static/image/common/back.gif
为什么不用卧加回转宏程序呢?非常适用卧加的多面加工,你只需设定一个坐标系并对刀,比如G54,后面的G55~G ...
东西不错不知道我能不能用,如果可以发文件的话就给我看看。396146683@qq.com laomei 发表于 2015-6-28 10:27 static/image/common/back.gif
为什么不用卧加回转宏程序呢?非常适用卧加的多面加工,你只需设定一个坐标系并对刀,比如G54,后面的G55~G ...
已经收到了你的文件,谢谢,不过我对变量不是很熟悉,没有看懂。感觉好像是首先找正一个坐标,然后就能确定这个坐标相对于机床原点的位置,旋转以后这个坐标相对原点位置发生了变化,然后根据一些判断条件重新找到旋转后这个位置在机床坐标系下的新位置并重新写入一个新的坐标系,用来建立新的坐标位置。 laomei 发表于 2015-6-28 10:27 static/image/common/back.gif
为什么不用卧加回转宏程序呢?非常适用卧加的多面加工,你只需设定一个坐标系并对刀,比如G54,后面的G55~G ...
G52test.prt(203.00K)这是我做的一个文件,里面只有一个块儿,然后我在需要设定坐标原点的位置设置了坐标系,打开加工就能看到。你能帮我看看,你的宏程序可以自动设置在我需要设置的地方吗?谢谢!
页:
[1]