Tablaya parçayı bağlama

Galiba buldum. Şöyle yapacağım.
Sıfırlama Probe'un konumu Makina koordinatı olarak şöyle X-300Y-300Z-165

Önce makinayı makina koordinatını kullanarak X-300 Y-300 e alıyorum.
Sonra yine makina koordinatı kullanarak Z0 a alıyorum. Ve Normal DRO(makina dro değil) yu 0 lıyorum. Daha sonra makinayı G53 makina koordinatı ile Z-160 a hızlı feedrate ile alıyorum.
Sonra daha yavaş şekilde G31 sıfırlama koduyla -165' e alıyorum. Probe dokunduğundaki konum probe kalınlığı oluyor. Buradan gelen değere göre parça kalınlığını ekleyip DRO'ya değer gireceğim.

Fakat bunun için benim ilk başta parça kalınlığını hep hafızamda/değişkende tutmam gerekiyor. Bunu hangi kod ile yapabilirim?

Edit: Onuda buldum. ToolChange scripti çalışınca ilk iş makinayı 0'ladığım yere göndereceğim. O noktaya geldikten sonra yani parçaya sıfırlama yapılan konumda iken makina koordinatına göre Z değerini alıp bir değişkene kaydedeceğim.


Bu sayede makrolar ve kodlama tecrübesi edinilmiş oluyor. Dro tanımlarken skıntı genelde user coordu kullanması. bunun artıları da eksileri de var.

Son yapılanda scriptin içine yedirince çalıştımı?
 
Kod:
'************ Otomatik Takım Sıfırlama******************* (Gökhan abimizin paylaşmış olduğu takım sıfırlama macrosudur)
PlateThickness = GetUserDRO(1151)
If GetOemLed (825)=0 Then
DoOEMButton (1010)
Code "G4 P1" 'P1 değeriyle oynayabilirsiniz. Amacı auto tool zero tuşuna bastığınızda harekete geçmek için ne kadar süre beklemesi gerektiğidir. Mesela acelem var derseniz 0.25 yapabilirsiniz:) Yalnız nokta ile virgül değil
Code "G53 G0 Z11 X6 Y6" 'Takım sıfırlama sensörünün kordinatları buraya yazılacak
Code "G31 Z0 F500" '0 değeri Z eksenininsıfırlama yapmak için en fazla ne kadar ineceğinin sınırıdır. Mesela Auto tool zero dedeniz ve Z inmeye başladı. -40 birimde probu göremezse işlem iptal :) F500 ise bildiginiz gibi iniş hızınız. Düşürmekte fayda var.
While IsMoving()
Wend
ZProbePos = GetVar(2002)
Code "G0 Z" &ZProbePos
While IsMoving ()
Wend
Call SetDro (2, ProbKalınlığı) 'Buraya virgülden sonra boşluk bırakarak probunuzun kalınlığını giriniz. Mesela 10.5 gibi. Onluk ayıracının Nokta olmasına dikkat)
Code "G4 P0.25" 'Buradaki P değeri sıfırlama işlemi bittikten sonra Z ekseninin alt satıra yazacağımız değere kalkarak ne kadar süreyle beklemede kalacağıdır.
Code "G0 Z20" '20 değeri Z nin probu gördükten sonra ne kadar yükseğe kalkması gerektiğidir
Code "(Z ekseni sıfırlandı...)" 'Buraya sıfırmala işlemi sonrasında Mach3 Statüs barında yazmasını istediğiniz mesajı yazacaksınız.
Else
Code "(Z Eksen Sıfırlama Hatası... Bağlantıları kontrol ederek tekrar deneyiniz...)" 'Anlaşılacağı üzere hata durumunda mesajınız
Code "G00 X" & x & " Y" & y '*** Takım değiştirmeyi tamamlayıp kaldığı yere konumlanma....
Exit Sub
End If
bu macro sadece probu sıfırlayıp kaldığı konuma gönderiyor
 
Kod:
'OTOMATİK TAKIM DEĞİŞTİRME MAKROSU
'İzzet Mehmet KÖSE ve Ramertürk (Mustafa Abi)
'[B]Farklı Z seviyelerindeki tool için ATC makrosu[/B]
Public xtool As Integer
Public Ytool As Integer
Public ToolDown As Integer

Sub Main()
OldTool = GetOEMDRO (1200)
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool

MaxToolNum = 16 '*** Değiştirmek istenen max. takım sayısı
ToolDown = 20   '*** Takımı almak yada bırakmak için Z nin pozisyonu...! Her tool icin ayrı olabilir.

If NewTool = OldTool Then
Exit Sub
End If

While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend

'*************** Eski takım bırakılıyor *************************

Code "G00 G53 Z" & ToolDown
While IsMoving()
Wend

Call ToolPos(OldTool)
Code "G53 X" & XTool & " Y" & YTool
While IsMoving()
Wend

'************** Yeni takım alınıyor ******************************
Call ToolPos(NewTool)
Code "G53 X" & XTool & " Y" & YTool
While IsMoving()
Wend

'************* Tool numarası set ediliyor ***********************
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
' Tell the user to load the requested tool
Speak("Please insert tool number " & "  (  " & GetCurrentTool() & " )     click ok When Ready")
Code "M00"
' Verify Tool Change Complete message box
Dim Msg, Style, Title, Help, Ctxt, Response,MyString
Msg = "Please Insert Tool  Number " & "   (   "  & GetCurrentTool() & "   ) "
'Msg = "Please Insert Tool  Number " & " ( "  & GetSelectedTool() & " ) " ' Define message
Style = vbYesNo + vbCritical + vbDefaultButton2   ' Define buttons
Style = 0 + 48 + 0   ' Define buttons.
Title = "Tool Change Requested"   ' Define title
Help = "DEMO.HLP"   ' Define Help file
Ctxt = 1000   ' Define topic       
'context.       
' Display message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbOk Then   ' User chose Ok   
MyString = "Ok"   ' Perform some action
End If
' Tell the user to load the requested tool
Speak("tool number " & "  (  " & GetCurrentTool() & " )   " & "  )  Installed Returning to Tool Change Start position")
Code "M00"
'Show user the current tool description
Message "Tool  #   " & GetCurrentTool() & " :  Installed  " & "   Returning To Tool Change Start Position"
' Tell the user to Press cycle start
Speak("Tool Change complete")
Code "M00"
Speak("Press Cycle Start")
Code "M00"


'************ Otomatik Takım Sıfırlama******************* (Gökhan abimizin paylaşmış olduğu takım sıfırlama macrosudur)

PlateThickness = GetUserDRO(1151)
If GetOemLed (825)=0 Then
DoOEMButton (1010)
Code "G4 P1" 'P1 değeriyle oynayabilirsiniz. Amacı auto tool zero tuşuna bastığınızda harekete geçmek için ne kadar süre beklemesi gerektiğidir. Mesela acelem var derseniz 0.25 yapabilirsiniz:) Yalnız nokta ile virgül değil
Code "G53 G0 Z15 X15 Y15" 'Takım sıfırlama sensörünün kordinatları buraya yazılacak
Code "G31 Z0 F500" '0 değeri Z eksenininsıfırlama yapmak için en fazla ne kadar ineceğinin sınırıdır. Mesela Auto tool zero dedeniz ve Z inmeye başladı. 0 birimde probu göremezse işlem iptal :) F500 ise bildiginiz gibi iniş hızınız. Düşürmekte fayda var.
While IsMoving()
Wend
ZProbePos = GetVar(2002)
Code "G0 Z" &ZProbePos
While IsMoving ()
Wend
Call SetDro (2, ProbKalınlığı) 'Buraya virgülden sonra boşluk bırakarak probunuzun kalınlığını giriniz. Mesela 10.5 gibi. Onluk ayıracının Nokta olmasına dikkat)
Code "G4 P0.25" 'Buradaki P değeri sıfırlama işlemi bittikten sonra Z ekseninin alt satıra yazacağımız değere kalkarak ne kadar süreyle beklemede kalacağıdır.
Code "G0 Z20" '20 değeri Z nin probu gördükten sonra ne kadar yükseğe kalkması gerektiğidir
Code "(Z ekseni sıfırlandı...)" 'Buraya sıfırmala işlemi sonrasında Mach3 Statüs barında yazmasını istediğiniz mesajı yazacaksınız.
Else
Code "(Z Eksen Sıfırlama Hatası... Bağlantıları kontrol ederek tekrar deneyiniz...)" 'Anlaşılacağı üzere hata durumunda mesajınız
Code "G00 X" & x & " Y" & y '*** Takım değiştirmeyi tamamlayıp kaldığı yere konumlanma....
Exit Sub
End If
End Sub

'*********** Takım konumlnma alt fonksiyonu Takım yerleri burda belirtilir. ************
'Xtool: Toolun X değeri  Ytool: Toolun Y değeri.
'Tool hangi eksende ise ona göre değerleri değiştirmek gerekir.

Sub ToolPos(ByVal ToolNumber As Integer)

Select Case ToolNumber

Case Is = 1
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 2
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 3
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 4
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 5
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 6
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 7
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 8
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 9
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 10
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 11
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 12
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 13
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 14
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 15
XTool = 20
YTool = 20
ToolDown = 20

Case Is = 16
XTool = 20
YTool = 20
ToolDown = 20

End Select
End Sub
Main
Bu da yeni takım değiştirme ve sıfırlama makrosu
 
@Yusuf SEYLAN abi yok bu da değil. Ben olayı anladım. Ama mesela benim parça ters çevrilecek 0'lanacak her seferinde vs. Olayı anladımda matematiğini çözmeye çalışıyorum. Baya beynimi yaktı. 2 konuda takıldım.

Buton ekleme konusunda yardımcı olabilir misiniz? Ekstra bir buton ekleyip, buna script eklemek istiyorum. Free şekilde bunu nasıl yapabilirim?

Diğer problem ise malzeme 0'larken zaman kaybetmemek için g-code'lar içerisinde geçen
(Material Size)
(Z= 100.000, Y=1000, Z=100)

değişkenlerini macro ile okuyabikmek istiyorum.
 
Son düzenleme:
Macro ile bilgim sınırlı size sadece olan macroları düzenleyerek veriyorum baştan bir macro yazmıyorum. Bir butona macro atama konusunu bende çözemedim geçenlerde @KAYSERİ liye lazım olmuştu. Konu hale arafta bekliyor öyleo_O
 
Buton ekleme konusunda yardımcı olabilir misiniz? Ekstra bir buton ekleyip, buna script eklemek istiyorum. Free şekilde bunu nasıl yapabilirim?

Referans aldırma içinse harici buton ekleriz :) eve geçince izah edeyim detaylı olarak

Kontrol kartın nedir abi
 
Son düzenleme:
"Mengene 0'ına git"
"Parçayı 0'la ama önce gir probe'a dokun"
"Takımı Sıfırla ve Başlangıç noktasına git, malzemeyi bu uca göre sıfırla"

gibi macrolar yaptım/yapıyorum. Fena da olmadı. Bu screendesigner lar ile bir buton ekleyip DoOEMButton () ile filan tetikleyebilirsem güzel olacak...
 
"Mengene 0'ına git"
"Parçayı 0'la ama önce gir probe'a dokun"
"Takımı Sıfırla ve Başlangıç noktasına git, malzemeyi bu uca göre sıfırla"

gibi macrolar yaptım/yapıyorum. Fena da olmadı. Bu screendesigner lar ile bir buton ekleyip DoOEMButton () ile filan tetikleyebilirsem güzel olacak...

Screen desiner programını töbe çözemedim :) Çok karışık geliyo hala :(
 
Benim önerim şey olacaktı. Şimdi ToolChange Pos yada Auto Tool Zero tuşlarını kullanmıyorsan birisine istediğin macroyu attığında çalıştırır. Sonuçta macroya ne yazıldıysa makine onu yapacak. Tuşların üzerinde ne yazdığının önemi yok. Ama İki tuş içinde Oem Code yapılmamış maalsef.

Bu arada şunu da kontrol etmek lazım. ToolChange Pos düğmesine başka macro atıldığında manuel takım değiştirmeye mani oluyor mu onu kontrol etmeli.

Yusuf Abinin bahsettiği benim yapmak istediğim olay şu idi. Mach3 ile farklı bir makine kontrol ediyorum. Bu makinenin çalışma mantığına göre de iş parçasını tutan vantuzlar eğer iş parçasını alamazsa arıza moduna geçmiş gibi yapıp iş akışını durdurup eksenleri sıfır noktasına çekecek. MAcrosu tamam sıkınıtı yok basit bir şey zaten ama oem code olmadığı için bunu fizik düğme haline yani vantuzlara bağlayamadım. Hala da öyle duruyor başka nasıl çözerim bilmiyorum
 

Forum istatistikleri

Konular
130,182
Mesajlar
934,061
Kullanıcılar
453,320
Son üye
hunter mst41

Yeni konular

Geri
Üst