Frezarka cnc domowej roboty mach3

Tu możemy porozmawiać na temat podstaw budowy amatorskich maszyn CNC

Autor tematu
kasinski1
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 2
Posty: 2
Rejestracja: 22 kwie 2019, 17:53

Frezarka cnc domowej roboty mach3

#1

Post napisał: kasinski1 » 22 kwie 2019, 18:09

Witam wszystkich potrzebuje jakiś skrypt na wymiane narzędzia.Chodzi o to żeby maszyna podjechała sobie pod probe i zmierzyła różnice wysokosci.Sciągnąłem takie macro z embi ale jest w nim jakiś błąd bo pod koniec nie przelicza róznicy.pozdr




Autor tematu
kasinski1
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 2
Posty: 2
Rejestracja: 22 kwie 2019, 17:53

Re: Frezarka cnc domowej roboty mach3

#2

Post napisał: kasinski1 » 25 kwie 2019, 22:19

Panowie/Panie pomóżcie mam takie macro pomiaru narzędzia ;problem w tym że coś nie chodzi u mnie jak trzeba.myli kierunki np.code "g90"

Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend odbiera tak że jedzie do góry a przecież z-20 a znowu za następnym wywołanie macra i oba pomiary dwóch narzędzi zrobi dobrze ale zamiast opuścić sie na zpoz to wyjeżdża do góry poza limit. Ciekawe bo mam wrażenie jakby jeździła jak chce. Oczywiscie współrzedne w machu pokrywają sie z tym co robi maszyna (ewidentnie cos jest nie tak programowego) ślicznie dziekuje wszystkim którzy pomogą.(wszystkie inne macra działaja (probe zero,center,corner itp)







'witam
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

' Deklaracja zmiennych

Dim X,Y,Z,px,py,pz,wx,wy,wz,d,zpoz
Dim tool,Hits,zs,zn,Hitn
Dim w

'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Poniższe zmienne wymagają deklaracji przez użytkownika
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

wx= 10 ' Tutaj podajemy położenie punktu wymiany narzędzia w odniesieniu do krańcówek bazujących ( współrzędne maszynowe )
wy= 10
wz= 10 'wz - określa na jakiej wysokości ma ustawić się wrzeciono przy wymianie

'!!!!!!!!!!!!!!!!!!

px = 11 ' Tutajokreślamy punkt pomiaru narzędzia, również w odniesieniu do krańcówek bazujących
py = 11 ' (współrzędne maszynowe)


'!!!!!!!!!!!!
pz = 11 ' wysokość przejazdowa ( wysokość na jakiej odbywają się przejazdy na punkt pomiaru oraz wymiany
'pownna być jak najwyższa, tak aby narzędzie nie zachaczyło o obrabiany element, czy mocowanie


'""""""""""""""""""""""
'Koniec definicji
'""""""""""""""""""""""""""""

'"""""""""""""""""""""""""""""""""""""""
'Właściwy program
'"""""""""""""""""""""""""""""""



'zapamiętanie współrzędnych punktu wyjściowego

X = GetoemDRO( 83 )
Y = GetoemDRO( 84 )
zm=getoemdro(85)
Z = GetoemDRO( 180)

'message( (px)&(" , ")& (py)&(" , ")& (pz))

MsgBox ("Teraz nastąpi przejazd do spółrzędnych czujnika pomiaru narzędzia. Po czym jeżeli wrzeciono jest uruchamiane ręcznie, wyłącz je, a następnie kliknij ok") ' wyświetlenie komunikatu

Code "g53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend

w=Getoemled(11) ' zapamiętanie, czy wrzeciono było uruchomione
Code"m5" ' wyłączenie wrzeciona


Code " g53 G00 X" & px & "Y" & py 'szybki przejazd na pozycje czujnika
While IsMoving()
Wend

'!!!!!!!!!!!!!!!!!!!

Message ("Teraz nastąpi pierwszy pomiar") ' komunkat o rozpoczęciu pomiaru

' pomiar podzielony jest na dwa etapy, w opuszczenie może być dość szybkie; po wykryciu czujnika, następuje podniesienie o 2mm
' a nstępnie ponowny pomiar - tutaj prędkość powinna być miejsza, pozowli to na osiągnięcie większej precyzji pomiaru


Code "G31 Z-20 F50" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość pierwszego pomiaru - Wartość przy parametrze F, 50 oznacza 50mm/min
Wend

Code "G91 Z2 F50" 'podniesienie osi Z o 2 mm
While IsMoving() ' Tutaj możemy zmienić prędkość oraz drogę o ile ma się podnieść - podniesienie powinno spowodować wyłączenie czujnika
Wend

code "g90"

Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend


Hits = GetVar(2002) 'przechwycenie wysokości na jakiej zadziałał czujnik przy "starym" narzędziu


Code "G53 G00 Z" & pz 'podniesienie osi Z na wysokość przelotową
While IsMoving()
Wend


MsgBox ("Teraz nastąpi przejazd do współrzędnych wymiany narzędzia") ' komunikat o przelocie na punkt wymiany

Code "g53 G00 X" & wx & "Y" & wy 'przejazd na pozycje wymiany
While IsMoving()
Wend

Code "g53 G00 Z" & wz 'ustawienie osi Z na wysokości wymiany
While IsMoving()
Wend



MsgBox ("Wymień narzędzie i kliknij OK, Po czym nastąpi przejazd do spółrzędnych czujnika pomiaru narzędzia") ' komunikat


Code "g53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend

Code " g53 G00 X" & px & "Y" & py 'przejazd na pozycje czujnika
While IsMoving()
Wend

'!!!!!!!!!!!!!!!!!!!!!!!!!!m


MsgBox ("Teraz nastąpi drugi pomiar")'komunikato pomiarze drugiego narzędzia



Code "G31 Z-20 F50" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość pierwszego pomiaru - Wartość przy parametrze F, 50 oznacza 50mm/min
Wend

Code "G91 Z2 F50" 'podniesienie osi Z o 2 mm
While IsMoving() ' Tutaj możemy zmienić prędkość oraz drogę o ile ma się podnieść - podniesienie powinno spowodować wyłączenie czujnika
Wend

code "g90"

Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend


Hitn = GetVar(2002) 'przechwycenie wysokości na jakiej zadziałał czujnik przy "nowym" narzędziu



Code "G53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend



d= Hits- Hitn ' obliczanie różnicy długości
d =Abs(d)

'message(Hits)
'message(Hitn)
'message(d)


zpoz=0

If Hits < Hitn Then zpoz=zm+d ' na podstawie wysokości zadziałań czujnika przy pomiarach obliczana jest wartość współczynnika korekcji wysokości osi Z
If Hits > Hitn Then zpoz=zm-d


Code "G53 G00 X" & X & "Y" & Y 'przejazd na współrzędne punktu wyjściowego ( ten w którym zostało wywołane makro )
While IsMoving()
Wend

MsgBox ("włącz wrzeciono i kliknij OK") ' komunikat o włączeniu wrzeciona - w przypadku gdy włączamy je ręcznie


Code "G0 g53 Z" & zpoz ' opuszczenie narzędzia - jego koniec powinien znaleźć się tam gdzi przed wywyołaniem makra
While IsMoving()
Wend

Call setdro(2,z) ' ustawienie wspłrzędnych - ofset

If w = true Then Code"m3" ' automatyczne włączenie wrzeciona jeżeli było uruchomine przed pomiarem.

End

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „CNC podstawy”