发布于 2005-06-22 23:55:19
0楼
不好意思,这个是我写的,其实漏写了一点,应该是下面的才对
TRANS
ROT
SGALE
MIRROR
G500
TRAFOOF
T0
G90
$P_UIFR[2]=CTRANS($$A_Iw[x],$$A_Iw[y]$$A_Iw[z])
G55
RET
;M17
TRANS ;清零点偏移
ROT 清旋转
SGALE 请比例缩放
MIRROR 清镜像
G500 清G54等
TRAFOOF:清多轴变换
T0;清刀具
G90
这一部清机床坐标。
$P_UIFR[2]=CTRANS($$A_Iw[x],$$A_Iw[y]$$A_Iw[z]) 这一步是把你当前的刀具所在的坐标自动写入到G55当中,也就是设置当前的一个变量.
G55 激活G55
RET
;M17
这个时候你的刀具所在的位置就是你的程序零点了.
这只是一个轴的变换问题
其实我们的坐标不只是MCS和WCS在MCS当中有BCS,BCS包含了(T数据和TRAORI也就是多轴变换),还有BZS (他包含了G54到G599的数据,也就是Settable FRAMES) 还有SZS(他包含了TRANS ROT SCALE MIRROR),最终才是WCS.
只要你按顺序一个一个清楚,你的MCS就会变成WCS了.
我前面那一步只是清楚了MCS,这个时候的MCS和WCS就变成一样的了.你可以运行前面那一段,这个时候你可以发现你的MCS和WCS的数据是一样的了.要注意的一点就是你清MCS是时候你清的顺序是不能颠倒的.
如果你要还原回来那就回一下参考点就OK了.
谭小波