
/* Suchen der Referenzpunkte ------------------------------- */

if(_demo == 0){ /* Im Demo-Modus nicht ausführen */

if(_oStat[1] == 0){MsgBox "Erst Motoren einschalten!";}

rmpMode 'Y';	/* Look ahead aus */

mlimit '0';		/* Bereichsüberwachung aus */
OcFlag = 0;		/* Koord.transf. aus */

sp0 = ML_f;		/* Bisher eingestellte Geschw. merken */
spf = 10.0;		/* Geschw. für schnelles suchen */
sps = 0.5;		/* Geschw. für langsames wieder freifahren */

dx = -1.0;		/* Fahrt-Richtung für X, Y, Z */
dy =  1.0;
dz =  1.0;

/* Suchlauf Z */
print "Suche Endschalter Z";
stoprequest _iEndZ 1;
ML_f = spf; MVPAR; Z _Z + 10000 * dZ; ml;
wait 0.2 0; wait 0 3; mreset;
stoprequest _iEndZ 0;
ML_f = sps; MVPAR; Z _Z - 10 * dZ; ml;
wait 0.2 0; wait 0 3; mreset; wait 1;
_ocNext = getmc; z 0; setmc;
z _z - 2 * dz; mf;

/* Suchlauf X */
print "Suche Endschalter X";
stoprequest _iEndX 1;
ML_f = spf; MVPAR; X _X + 10000 * dX; ml;
wait 0.2 0; wait 0 3; mreset;
stoprequest _iEndX 0;
ML_f = sps; MVPAR; X _X - 10 * dX; ml;
wait 0.2 0; wait 0 3; mreset; wait 1;
_ocNext = getmc; x 0; setmc;
x _x - 5 * dx; mf;

/* Suchlauf Y */
print "Suche Endschalter Y";
stoprequest _iEndY 1;
ML_f = spf; MVPAR; Y _Y + 10000 * dY; ml;
wait 0.2 0; wait 0 3; mreset;
stoprequest _iEndY 0;
ML_f = sps; MVPAR; Y _Y - 10 * dY; ml;
wait 0.2 0; wait 0 3; mreset; wait 1;
_ocNext = getmc; y 0; setmc;
y _y - 5 * dy; mf;

print "Referenzieren beendet!";

ML_f = sp0;

wait 0;
}

if(_demo){x y z 0; setmc;}

if(_ToolAuto >= 2)
{
 _ToolRefZ = 9999.0;	/* kein gültiger Tool Offset */
 fcall _path & "/ToolRefZ.ts";
 wait 0;
}

mlimit '1';
_ocNext[0] = getmc[0] - _OcOfs[0];
_ocNext[1] = getmc[1] - _OcOfs[1];
_ocNext[2] = getmc[2] - _OcOfs[2];
setoc;
