Messaggio
da Gasolo » domenica 13 settembre 2009, 1:06
ciao
ho provato gli script, con le opportune modifiche per adattarle alla mia cnc
solo che ho un problemino che non sono riuscito a risolvere,
dopo fatto lo zero sul pezzo con la prima fresa, lancio lo script per rilevare la posizione del tastatore, e il valore mi viene memorizzato nella casella 'Posizione tastatore', fin qui tutto ok
quando cambio l'utensile, premo il tasto zero utensile, e alla fine mi si riposiziona con la Z alla stessa distanza, ma il DRO Z non mi segna la posizione giusta
ad esempio:
utensile da 20mm, posizione Z+10
cambio con un utensile da 15mm, alla fine della macro mi ritrovo con l'utensile a +10 ma il DRO segna +5 anziché +10
allego lo script, la riga in rosso è quella che non mi convince, li dovrei inserire il valore della variabile Zpos in ZDRO, ma non so se è corretto il comando
REM A.T.Z. Antonio
ZOffset = GetUserDRO(1001) 'Altezza del probe
If IsSuchSignal (22) Then ' Il Probe è abilitato
DoSpinStop() ' Fermo il Motore
Xpos = GetParam("XMachine") ' Memorizzo XY in Assoluto
Ypos = GetParam("YMachine")
Zpos = GetParam("ZDRO") ' Memorizzo Z in Relativo
Fcurr = GetParam("FeedRate") ' Memorizzo FeedRate corrente
code "G0 G53 Z190" ' Alzo Z
code "G0 G53 X16,5 Y17,5" ' Posizione inizio ricerca Assoluta Switch Zero XY
While IsMoving() ' Aspetto mentre si muove
Wend
code "G1 F1000 G53 Z65" ' Posizione Assoluta inizio ricerca Switch Zero Z
While IsMoving() ' Aspetto mentre si muove
Wend
tmp = (GetParam("ZDRO")-50 )
code "G31 z" & tmp & "F30" ' Cerco Switch fino a -20
While IsMoving() ' Aspetto mentre si muove
Wend
Diff_ut = GetParam("ZDRO") - ZOffset
Zpos2 = Zpos + Diff_ut
code "G0 G53 Z190" ' Alzo Z
While IsMoving() ' Aspetto mentre si muove
Wend
code "G0 G53 X" & Xpos & "Y" & Ypos ' Ritorno alle coordinate XY iniziali
While IsMoving() ' Aspetto mentre si muove
Wend
code "G1 F1000 Z" & Zpos2 ' Ritorno a Z iniziale
While IsMoving() ' Aspetto mentre si muove
Wend
SetUserDRO("ZDRO", Zpos )
SetParam("FeedRate",Fcurr) ' Ripristino il FeedRate iniziale
While IsMoving() ' Aspetto mentre si muove
Wend
End If