Jeżeli dobrze zrozumiałem to w momencie styku oś z zatrzymuje się automatycznie?Tak może wyglądać zautomatyzowany Twój pomiar. Klikając przycisk makro dokona 2 pomiarów. U mnie przy podłączonym czujniku narzędzia do kompa makro działa:)
Dim zmienna,hit,zdro,wz 'deklaracja zmiennych
Code "G31 Z" & 0 & "f290" 'zjazd osią z do położenia 0 z prędkością 290, czeka na
While IsMoving() 'sygnał sondy(g31)
Wend
zdro=getdro(2) 'zapamietanie położenia osi z gdy sonda da sygnał
wz=zdro+20
Code "g53 g0 Z" &wz 'podniesienie osi z o 20 do góry
While IsMoving()
Wend
MsgBox("Wymień narzędzie i naciśnij OK") 'komunikat
Code "G31 Z" & 0 & "f290" ' ponowny pomiar,analogicznie jak poprzednio
While IsMoving()
Wend
Call setoemdro(802,zdro) 'ustawienie osi z do wartości zapamiętanej po 'pierwszym pomiarze(zdro=getdro(2))
message("Zmieniono długość narzędzia") 'komunikat wyświetlany w głównym oknie 'programu na dole strony
Co do pisania makr to pisze się je w języku VB, którego nie znam

[ Dodano: 2009-05-21, 09:36 ]
ostrowiecki pisze:call SetDRO( 2, .125 )
if IsSuchSignal (22) Then
odnośnie pierwszego wiersza to jest to ustawienie wysokości z na 0.125 (na pewno)
drugi wiersz czeka na sygnał od sondy(digitize), jeżeli jest to zwraca wartość true. jest to warunek przy pętli if. Jeżeli jest on prawdziwy to wykonuje kod pod nim, jeżeli nie to instrukcjie po else(jeżeli jest, a jeżeli nie ma to opuszcza if'a).
[ Dodano: 2009-05-21, 09:46 ]
to co napisałem, przypuszczam że można wpleść w Twoje istniejące już makro.