Makro to pomiaru środka materiału od zewnątrz.

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
sp9kn
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 2
Posty: 44
Rejestracja: 31 gru 2012, 08:01
Lokalizacja: Zawiercie

Makro to pomiaru środka materiału od zewnątrz.

#1

Post napisał: sp9kn » 12 lis 2013, 20:09

Szukam specyficznego makra.

Mianowicie chodzi mi o znalezienie punktu środkowego przedmiotu (załóżmy że jest okrągły).

Jest Makro, które sprawdza środek rurki ale nie o to mi chodzi a ja potrzebuje żeby:
- standardowo dokonało pomiaru wysokości przedmiotu
- jechało w lewo poza obręb przedmiotu (może być zdefiniowany na stałe)
- jechało w dół o cofało się w prawo wolno do czasu styku
I tak dla czterech stron.

Następnie ustawienie wrzeciona idealnie na środku przedmiotu, i mierzyć go po zewnętrznej nie po wewnętrznej.

Ktoś coś ma takiego może?


SP9KN

Tagi:


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

#2

Post napisał: tomcat65 » 12 lis 2013, 20:33

Tak na marginesie, kol. jest sp9kn czy guru79 ? bo to samo pytanie było z innego nicka :).
Otwórz Mach'a, g-kody, g31, w opisie jest przykładowe makro do wyznaczania środka otworu. Trochę je przerobić i zaadaptować do swoich potrzeb i będzie.


Autor tematu
sp9kn
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 2
Posty: 44
Rejestracja: 31 gru 2012, 08:01
Lokalizacja: Zawiercie

#3

Post napisał: sp9kn » 14 lis 2013, 11:55

W sumie to kolego masz rację...Jak się nie zrobi samemu to człowiek nigdy się nie nauczy...

Popełniłem coś takiego, prosiłbym o sprawdzenie z racji braku przez kilka dni dostępu do frezarki. Program w swoim zamyśle ma mierzyć przedmiot po zewnętrznej średnicy w czterech miejscach. Pasuje oczywiście jeszcze przed programem właściwym ustawić odpowiednio wysokość osi Z. Jak poniższy program będzie dobry dodam na początku pomiar wysokości materiału.

Oczywiście poniższe makro ma sens gdy przedmiot odizolowany jest od reszty...

Kod: Zaznacz cały

Xstary=GetDro(0)
Ystary=GetDro(1)

'Parametry
'--------------------
POM_Z = 30
BEZP_Z = 50
MIER_Z = -10

PRED_POM = 100
PRED_NAJ = 1000
SZER_PRZED = 100 ' szerokość przedmiotu, podajemy faktycznie wartość większą niż szerokość
'--------------
Message("Dokonuje  centrowania do istniejącego materiału")
If GetOEMLed(825) Then 
Message( "Błąd:  Czujnik zwarty. Przerywam pomiar." ) 
End 
End If

If GetOEMLed(11) Then 
Message( "Błąd: Uwaga włączone wrzeciono. Przerywam pomiar.!" ) 
End 
End If

Code("G1 Z" & POM_Z & " F"&PRED_NAJ )
While IsMoving()
	Wend 

rem pomiar lewo
	XNowy= Xstary - SZER_PRZED 'ustawienie ofsetu dla szerokości materialu ; pozycja x minus szerokość przedmiotu
	Code ("G0 X" &XNowy)       'ustawienie wrzeciona dla pozycji początkowej minus szerokość przedmiotu
	While IsMoving()
	Wend
	Code ("G1 Z" & MIER_Z & " F"&PRED_NAJ )
	While IsMoving()
	Wend
	Code ("G31 X" &Xstary & " F"&PRED_POM)     ' ruch do materiału odwrotny z wykryciem przedmiotu
	While IsMoving()
	Wend
	X1= GetVar(2000)	   'zapisanie do zmiennej x1 pozycji X ; 
	Code ("G0 X" &XNowy)       'cofnięcie wrzeciona w osix
	While IsMoving()
	Wend
	Code ("G1 Z" & POM_Z & " F"&PRED_NAJ )        ' podniesienie wrzeciona do wartości pomiarowej
	While IsMoving()
	Wend
	Code ("G0 X" &Xstary)           ' szybki powrót do pierwotnej pozycji

Rem pomiar prawo
	XNowy= Xstary + SZER_PRZED 'ustawienie ofsetu dla szerokości materialu
	Code ("G0 X" &XNowy)       'ustawienie wrzeciona dla pozycji początkowej minus szerokość przedmiotu
	While IsMoving()
	Wend
	Code ("G1 Z" & MIER_Z & " F"&PRED_NAJ )
	While IsMoving()
	Wend
	Code ("G31 X" &Xstary & " F"&PRED_POM)     ' ruch do materiału odwrotny z wykryciem przedmiotu
	While IsMoving()
	Wend
	x2= GetVar(2000)	   'zapisanie do zmiennej x2 pozycji X ;
	xcenter=  (X1+X2)/2		'środek między X1 i X2 
	Code ("G0 X" &XNowy)       'cofnięcie wrzeciona w osix
	While IsMoving()
	Wend
	Code ("G1 Z" & POM_Z & " F"&PRED_NAJ )        ' podniesienie wrzeciona do wartości pomiarowej
	While IsMoving()
	Wend
	Code ("G0 X" &Xcenter)           ' szybki powrót do środkowej pozycji X

Rem pomiar góra 
	YNowy= Ystary - SZER_PRZED 'ustawienie ofsetu dla szerokości materialu ; pozycja y minus szerokość przedmiotu
	Code ("G0 Y" &YNowy)       'ustawienie wrzeciona dla pozycji początkowej minus szerokość przedmiotu
	While IsMoving()
	Wend
	Code ("G1 Z" & MIER_Z & " F"&PRED_NAJ )
	While IsMoving()
	Wend
	Code ("G31 Y" &Ystary & " F"&PRED_POM)     ' ruch do materiału odwrotny z wykryciem przedmiotu
	While IsMoving()
	Wend
	Y1= GetVar(2001)	   'zapisanie do zmiennej y1 pozycji y ; 
	Code ("G0 Y" &YNowy)       'cofnięcie wrzeciona w osiy
	While IsMoving()
	Wend
	Code ("G1 Z" & POM_Z & " F"&PRED_NAJ )        ' podniesienie wrzeciona do wartości pomiarowej
	While IsMoving()
	Wend
	Code ("G0 Y" &Ystary)           ' szybki powrót do pierwotnej pozycji

Rem pomiar prawo
	YNowy= Ystary + SZER_PRZED 'ustawienie ofsetu dla szerokości materialu
	Code ("G0 Y" &YNowy)       'ustawienie wrzeciona dla pozycji początkowej minus szerokość przedmiotu
	While IsMoving()
	Wend
	Code ("G1 Z" & MIER_Z & " F"&PRED_NAJ )
	While IsMoving()
	Wend
	Code ("G31 Y" &Ystary & " F"&PRED_POM)     ' ruch do materiału odwrotny z wykryciem przedmiotu
	While IsMoving()
	Wend
	Y2= GetVar(2000)	   'zapisanie do zmiennej y1 pozycji y ;
	Ycenter=  (Y1+Y2)/2		'środek między y1 i y2 
	Code ("G0 Y" &YNowy)       'cofnięcie wrzeciona w osiy
	While IsMoving()
	Wend
	Code ("G1 Z" & POM_Z & " F"&PRED_NAJ )        ' podniesienie wrzeciona do wartości pomiarowej
	While IsMoving()
	Wend
	Code ("G0 Y" &Ycenter)           ' szybki powrót do środkowej pozycji y
Ostatnio zmieniony 14 lis 2013, 18:44 przez sp9kn, łącznie zmieniany 2 razy.
SP9KN


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1236
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

#4

Post napisał: tomcat65 » 14 lis 2013, 17:35

sp9kn pisze:.Jak się nie zrobi samemu to człowiek nigdy się nie nauczy
Też tak uważam i dlatego podałem tylko tak skąpe informacje :).
Makra nie sprawdzę, brak czynnej maszyny.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”