UG爱好者

标题: 求四轴卧加B轴自动找正 宏程序 [打印本页]

作者: HZ521202    时间: 2023-8-31 21:01
标题: 求四轴卧加B轴自动找正 宏程序
请教大神 有没有四轴卧加B轴自动找正宏程序 百分表压两个点自动赋值的 求个程序 自动刀尖记忆的办法
作者: 雾色囚    时间: 2023-9-1 19:29
没明白你什么意思
我自己瞎写了一个,B轴自动找正的
你说的自动刀尖记忆是什么意思?

作者: HZ521202    时间: 2023-9-1 21:25
雾色囚 发表于 2023-9-1 19:29
没明白你什么意思
我自己瞎写了一个,B轴自动找正的
你说的自动刀尖记忆是什么意思?

卧加要找B0 因为没有探针 就用百分表 X方向就手动压两个点  这两个点的坐标值 怎么自动赋值到宏变量里边 后边再用宏变量里边的数值自动计算出要旋转的角度  发那科系统
作者: 雾色囚    时间: 2023-9-2 09:14
%
O0001
M00(手轮摇到第一点)
(A DIAN)
#101=#5021
#102=#5023

M00(手轮摇到第二点)
(B DIAN)
#103=#5021
#104=#5023

IF[#103LE#101]GOTO1(BX<AX)
IF[#103GE#101]GOTO2(BX>AX)

N1
IF[#104GE#102]GOTO3(BZ>AZ)
IF[#104LE#102]GOTO4(BZ<AZ)

N3
#105=[ABS[#102]-ABS[#104]]/[ABS[#103]+ABS[#101]]
#106=ATAN[#105]
G91G0Z200.( 退到安全平面)
G91G0B#106
M00
M30
N4
#105=[ABS[#104]-ABS[#102]]/[ABS[#103]+ABS[#101]]
#106=ATAN[-#105]
G91G0Z200.
G91G0B#106
M00
M30
N2
IF[#104GE#102]GOTO6(BZ>AZ)
IF[#104LE#102]GOTO7(BZ<AZ)


N6
#105=[ABS[#102]-ABS[#104]]/[ABS[#103]+ABS[#101]]
#106=ATAN[-#105]
G91G0Z200.
G91G0B#106
M00
M30
N5
#105=[ABS[#104]-ABS[#102]]/[ABS[#103]+ABS[#101]]
#106=ATAN[-#105]
G91G0Z200.
G91G0B#106
M00
M30


N7
#105=[ABS[#102]-ABS[#104]]/[ABS[#103]+ABS[#101]]
#106=ATAN[#105]
G91G0Z200.
G91G0B[ABS[#106]]
M00
M30



%
自己瞎写的,望网友修改
作者: 雾色囚    时间: 2023-9-2 09:29
雾色囚 发表于 2023-9-2 09:14
%
O0001
M00(手轮摇到第一点)

第一点最好在右边,第二点在左边
作者: lmjams    时间: 2023-9-20 13:54

%
O9020
#100=#5021
#101=#5023
M00
#102=#5021
#103=#5023
#104=ABS[#102-#100]
#105=ABS[#103-#101]
#106=ATAN[#105]/[#104]
IF[#102LT#100]GOTO1
IF[#103LT#101]THEN#106=#106
IF[#103GT#101]THEN#106=-#106
G91G0Z300.
B#106
M99
N1
IF[#103LT#101]THEN#106=-#106
IF[#103GT#101]THEN#106=#106
G91G0Z300.
B#106
M99
%
试试我这个,只是子程序,主程序可以调用它,不分左右,任意找两点即可。这是FANUC的,还有西门子的

作者: lmjams    时间: 2023-9-20 13:58
本帖最后由 lmjams 于 2023-9-20 14:02 编辑

这是西门子的,一直在用的。只是西门子的要麻烦点,压第一个点,复位,手动压第二个点。复位。再启动程序,自动退刀找正。(先申明高手勿喷。)喜欢就交流,不愿在网络上争论半天。
% _N_M110_MPF
D=(R30+1)
R20=$AA_IW[Z]
R21=$AA_IW[B]
IF R30<>1 GOTO GG1
IF R30==1 GOTO II1
HH1:D(R30+1)
R30=1
R10=$AA_IM[X]
R11=$AA_IM[Z]
IF R30==1 GOTO JJ1
GOTO ZZ1
II1:D(R30+1)
R30=0
R12=$AA_IM[X]
R13=$AA_IM[Z]
R14=ABS(R12-R10)
R15=ABS(R13-R11)
IF R15<0.01 GOTO AA1
IF R13==R11 GOTO AA1
IF R12==R10 GOTO AA1
R16=ATAN2(R15,R14)
IF R16<0.001 GOTO AA1
IF R12<R10 GOTO BB1
IF R13<R11 GOTO CC1
IF R13>R11 GOTO DD1
EE3:G90 G01 Z=R20+200 F3000
B=R16+R21
R30=0
ZZ1:M30
AA1:R16=0
GOTO EE3
BB1:
IF R13<R11 GOTO EE1
IF R13>R11 GOTO FF1
CC1:R16=R16
GOTO EE3
DD1:R16=-R16
GOTO EE3
EE1:R16=-R16
GOTO EE3
FF1:R16=R16
GOTO EE3
GG1:R30=0
GOTO HH1
JJ1:R30=1
GOTO ZZ1
%
作者: yin5816    时间: 2024-9-7 16:10
雾色囚 发表于 2023-9-2 09:14
%
O0001
M00(手轮摇到第一点)

牛啊,膜拜




欢迎光临 UG爱好者 (https://www.ugsnx.com/) Powered by Discuz! X3.2