script cambio utensle

Sezione dedicata a Mach3
Rispondi
FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

script cambio utensle

Messaggio da FIREF00X » lunedì 12 febbraio 2018, 21:05

Salve non riesco a trovare uno script per il cambio utensile , mi spiego:
Se per ipotesi sto facendo dei fori da D 6mm ed a un certo punto ne devo fare altri da 5 mm , ho la necessità di cambiare l'utensile. Ora, per non perdere lo zero pezzo trovato con l'utensile precedente, dovrei posizionare esattamente la stessa altezza ( naso ) il nuovo utensile, cosa impossibile da fare manualmente. Ora in aiuto ho visto che esistono degli script , i quali al momento cambio utensile, alzano la z, si portano in possibilità del tastatore e misurano la nuova altezza, per poi riportarsi sul pezzo ( zero pezzo ).
C'è qualcuno che possa spiegarmi se funziona cosi e possa postare tale script?

Grazie anticipatamente

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » lunedì 12 febbraio 2018, 23:53

Nessuno risponde?
Ho provato vari script, ma a me non funzionano, nel senso che azzerano l'utensile ( quando si fa il cambio utensile ) ma poi si posizione in modo errato sul pezzo ( non a zero pezzo )

Diego
Member
Member
Messaggi: 559
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: script cambio utensle

Messaggio da Diego » martedì 13 febbraio 2018, 7:03

Ciao, scrivi per cortesia almeno di che macchina e/o scheda di controllo stiamo parlando... ogni macchina/scheda vuole "il suo linguaggio".
Se lo script che hai tu funziona fino all'aggiornamento dello zero pezzo controlla se viene aggiornato il G92 con le varie lunghezze utensile (variabili) dopo il cambio utensile e la misura del tastatore... sei troppo generico per ottenere una risposta.

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » martedì 13 febbraio 2018, 13:34

Ciao innanzitutto grazie per avermi risposto:
1) la scheda che posseggo si chiama amw-102 v3 tedesca e con lo script per zero pezzo di mephysto funziona perfettamente.
2 ) lo script che sto usando è questo:
' Condizioni macchina:
' Zero macchina X dietro Y sinistra Z in alto
' Asse X, sinistra -X destra +X
' Asse Y, dietro +Y avanti -Y
' Asse Z, alto +Z basso -Z
' Abilitare l'ingresso PROBE (port 1 pin 10)(Config | Input Signal)
'
' condizioni di lavoro iniziali:
' 1) Referenziare a ZERO macchina
' 2) Azzerare i contatori
' 3) Portarsi sullo Zero pezzo
' 4) Azzerare i contatori
' 5) Inizio lavorazione

code "M5" ' fermo il motore

' controllo se la macchina è stata referenziata

If Not GetLed (7) Then ' è referenziato X
vxled = 1
End If

If Not GetLed (8) Then ' è referenziato Y
vyled = 1
End If

If Not GetLed (9) Then ' è referenziato Z
vzled = 1
End If

Tled = vxled + vyled + vzled

If Tled = 3 Then ' se non sono referenziati X, Y e Z esco

' parametri lavorazione
xzero = GetDRO (30) ' memorizzo la posizione iniziale ASSOLUTA di cambio utensile
yzero = GetDRO (31)
zzero = GetDRO (32)

xpos = GetDRO (0) ' memorizzo la posizione inizioale RELATIVA di cambio utensile
ypos = GetDRO (1)
zpos = GetDRO (2)

fpos = GetDRO (18) ' memorizzo il feedrate iniziale

' variabili del programma
fmax = 400 ' imposto il feedrate massimo
fmin = 100 ' imposto il feedrate per la palpata

zavv = -20 ' distanza rapida di avvicinamento al palpatore
zmin = 20 ' profondità oltre il palpatore
xcut = 100 ' posizione X per cambio utensile
ycut = -100 ' posizione Y per cambio utensile

xtool = GetUserDRO (1200) ' posizione X del palpatore (Settings -> Tool Change Location)
ytool = GetUserDRO (1201) ' posizione Y del palpatore
ztool = GetUserDRO (1202) ' posizione Z del palpatore

' inizio programma
code "G0 F" & fmax ' porto il feedrate al valore massimo
code "G53 G0 Z0" ' porto Z a ZERO macchina
While IsMoving()
Wend
Call SetDro (2,0) ' porto il contatore Z a zero

code "G53 G0 X" & xtool & "Y" & ytool ' mi allineo sul palpatore
While IsMoving()
Wend
code "G0 Z" & zavv ' scendo in avvicinamento (fino a zavv)
While IsMoving()
Wend

code "G0 F" & fmin ' porto il feedrate al minimo

If IsSuchSignal (22) Then ' scendo sul palpatore per vedere la misura della punta attuale
code "G31 Z" & zmin
While IsMoving()
Wend
End If
zorig = GetDRO (2) ' memorizzo il valore di Z della punta attuale
code "G0 F" & fmax ' riporto il feedrate al massimo

code "G53 G0 Z0" ' porto Z a ZERO macchina
While IsMoving()
Wend

code "G53 G0 X" & xcut & "Y" & ycut ' vado in una posizione comoda per il cambio utensile
While IsMoving()
Wend

MsgBox ("Ora si può cambiare la punta")

Response = MsgBox ("E' stata cambiata la punta?", 4 , "ATTENZIONE")
If (Response = 6) Then
i = 99
Else
MsgBox ("Riprendo il lavoro con la punta iniziale")
End If

If i <> 99 Then ' non faccio nulla

code "G53 G0 X" & xzero & "Y" & yzero ' torno alla posizione X Y zero pezzo
While IsMoving()
Wend
code "G0 X" & xpos & "Y" & ypos ' torno alla posizione X Y da dove ero partito
While IsMoving()
Wend
code "G53 G0 Z" & zzero ' riporto Z al valore zero pezzo
While IsMoving()
Wend
Call SetDro (2,0) ' porto il contatore Z a zero
code "G0 Z" & zpos ' riporto Z al valore di partenza
While IsMoving()
Wend
code "G0 F" & fpos ' riporto il feedrate al valore di partenza
MsgBox ("Per riprendere il lavoro premere il pulsante 'LAVORAZIONE'")
code "M3" ' riaccendo il motore e riprendo il lavoro da dove l'avevo lasciato

Else

code "G53 G0 X" & xtool & "Y" & ytool ' mi allineo sul palpatore
While IsMoving()
Wend
code "G0 Z" & zavv ' scendo in avvicinamento
While IsMoving()
Wend

code "G0 F" & fmin ' porto il feedrate al minimo

If IsSuchSignal (22) Then ' scendo sul palpatore
code "G31 Z" & zmin
While IsMoving()
Wend
znew = GetDRO (2) ' memorizzo il valore di Z della nuova punta

code "G0 F" & fmax ' riporto il feedrate al massimo

code "G53 G0 Z0" ' ritorno Z ZERO macchina
While IsMoving()
Wend
End If

code "G53 G0 X" & xzero & "Y" & yzero ' torno alla posizione X Y zero pezzo
While IsMoving()
Wend

code "G0 X" & xpos & "Y" & ypos ' torno alla posizione X Y da dove ero partito
While IsMoving()
Wend

code "M3" ' riaccendo il motore

zdif = zorig - (znew) ' controllo se l'utensile è più corto o piu lungo

code "G53 G0 Z" & zzero-(zdif) ' riporto Z al valore zero pezzo con la differenza utensile
While IsMoving()
Wend
Call SetDro (2,0) ' porto contatore Z a zero
code "G0 Z" & zpos ' riporto Z al valore di partenza (inizio programma)
While IsMoving()
Wend
code "G0 F" & fpos ' riporto il feedrate al valore di partenza
MsgBox ("Per riprendere il lavoro premere il tasto LAVORAZIONE")

End If

' riprendo il lavoro da dove l'avevo lasciato

Else
MsgBox ("Per poter cambiare l'utensile bisognava prima aver referenziato la macchina")
End If

Quando vado a fare il cambio utensile , dopo aver referenziato la macchina,azzerato i contatori , porto la macchina a zero pezzo, azzero i contatori e inizio a simulare la lavorazione ad esempio di fori da 6mm. Finito questo , ora ho bisogno di fare un cambio utensile , ad esempio utensile da 5 mm, premo l'apposito tasto ( dove ho inserito lo script di sopra ), la macchina si porta prima a z0 (cioe zero macchina) e poi in posizione del palpatore ( che nel mio caso è alto 20 mm) . Qui dovrebbe misurare la lunghezza dell'utensile che ho ( almeno cosi ho capito ), solo che scende di poco e poi risale ( primo problema). Poi si porta in posizione X100, Y-100 per il cambio utensile . Faccio il cambio( con utensile più corto ) e premo tasto cambio effettuato, allora si porta verso il palpatore, di nuovo scende di un po e poi risale senza trovare il palpatore. Poi mi dice " cambio utensile effettuato con successo o cosa simile", a questo punto si porta verso lo zero pezzo, solo che ovviamente l'altezza sullo zero pezzo non si trova. Sicuramente sbaglio io qualche parametro , ma vorrei capire dove , grazie
L'altezza del palpatore è 20mm

Diego
Member
Member
Messaggi: 559
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: script cambio utensle

Messaggio da Diego » martedì 13 febbraio 2018, 14:20

se scende e non trova il tastatore ... misura il nulla... ma il tuo G53 Z0 è Z tutto alto? lavori con coordinate macchina tutte negative in Z? controlla la tua corsa in Z e controlla quanto scende quando cerca il tastatore... dovrebbe scendere finchè non suona... altrimenti c'è un errore il G31 (Z scende troppo poco)

qui hai messo le coordinate tue?
code "G0 Z" & zavv ' scendo in avvicinamento (fino a zavv)

qui forse devi correggere lo Z minimo di discesa... magari si ferma prima. Se mephysto aveva Z-5 e a te serve Z-40... controlla
If IsSuchSignal (22) Then ' scendo sul palpatore per vedere la misura della punta attuale
code "G31 Z" & zmin

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » martedì 13 febbraio 2018, 15:06

ciaa le mie coordinate macchina sono X NEGATIVA , mentre Y POSITIVA e Z positiva

a volte al posto di scendere , sale per trovare il tastatore ( boooooo ) , credo però proprio perchè ho Z MACCHINA POSITIVA , per cui va un po modificato lo script, giusto?

adesso ho modificato cosi:
avv = -20 ' distanza rapida di avvicinamento al palpatore ( DA Z0 CHE E' IN ALTO SCENDE IN RAPIDO DI 20MM )
zmin = -80 ' profondità oltre il palpatore ( AVENDO IO Z POSITIVA , DEVE ESCENDERE FINO A 80 MM PER TROVARE IL PALPATORE)
xcut = 100 ' posizione X per cambio utensile
ycut = -100 ' posizione Y per cambio utensile
dimmi se è corretto grazie
Un altro dubbio è questo : code "G31 Z" & zmin ( AVENDO IO Z MACCHINA TUTTO IN ALTO , NON è CHE CI VUOLE UN SEGNO - VICINO A G31 Z-
Altra domanda: alla prima palpata , prima di posizionarsi per il cambio utensile, serve per capire la lunghezza dell'utensile attuale? se si, anche qui a me non tocca il palpatore .

Diego
Member
Member
Messaggi: 559
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: script cambio utensle

Messaggio da Diego » martedì 13 febbraio 2018, 15:24

il mio HOME è settato X e Y (per comodità di CAD/CAM) in basso a Sx così disegno sempre con lo Zero in basso a sinistra e conosco gli ingombri dei pezzi. z0 è tutto basso in modo che se scrivo G53 Z-1 entrano i finecorsa altrimenti sfonderei il piano. e se scrivo g0 z100 son sicuro che è tutto in alto :doubt:
se il tuo Z0 è tutto alto... hai un Z negativo non positivo

avv = -20 ' distanza rapida di avvicinamento al palpatore ( DA Z0 CHE E' IN ALTO SCENDE IN RAPIDO DI 20MM )
zmin = -80 ' profondità oltre il palpatore ( AVENDO IO Z POSITIVA , DEVE ESCENDERE FINO A 80 MM PER TROVARE IL PALPATORE)


zmin = -80 ' profondità oltre il palpatore ( AVENDO IO Z POSITIVA , DEVE ESCENDERE FINO (no FINO... Di 80 mm) PER TROVARE IL PALPATORE)... forse questi 80 mm non son sufficienti per trovare il palpatore...

secondo me le tue Z sono impostate male...
la tua corsa di Z quanto è? Z0 tutto alto e -Z tutto basso???

si, serve per capire la lunghezza attuale far la differenza di lunghezze

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » martedì 13 febbraio 2018, 15:36

per z fino a 80 mm intendevo proprio : può percorrere 80 mm per trovare il palpatore
la mia corsa di z è 95 mm
se possiamo andare passo passo cortesemente, cosi capisco meglio dove sta l'errore
esempio:
' inizio programma
code "G0 F" & fmax ' porto il feedrate al valore massimo
code "G53 G0 Z0" ' porto Z a ZERO macchina ( a me dovrebbe posizionarsi tutto in alto z ) giusto?
While IsMoving()

Wend
Call SetDro (2,0) ' porto il contatore Z a zero
code "G53 G0 X" & xtool & "Y" & ytool ' mi allineo sul palpatore ( qui dovrebbe portarsi sul palpatore che se non erro sta a X0, Y0 ( COME SI CAMBIA-? )
While IsMoving()
Wend
code "G0 Z" & zavv ' scendo in avvicinamento (fino a zavv) ( QUI SI AVVICINA IN RAPIDO A Z-20 )
While IsMoving()
Wend

code "G0 F" & fmin ' porto il feedrate al minimo ( ESEMPIO A 100 )

If IsSuchSignal (22) Then ' scendo sul palpatore per vedere la misura della punta attuale
code "G31 Z" & zmin ( QUI SECONDO ME DOVREBBE ESSERE Z- , VISTO CHE A ME è TUTTO POSITIVO )
While IsMoving()
Wend
End If
zorig = GetDRO (2) ' memorizzo il valore di Z della punta attuale
code "G0 F" & fmax ' riporto il feedrate al massimo
Ultima modifica di FIREF00X il martedì 13 febbraio 2018, 15:46, modificato 1 volta in totale.

Diego
Member
Member
Messaggi: 559
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: script cambio utensle

Messaggio da Diego » martedì 13 febbraio 2018, 15:44

ma se tu scrivi sopra al tastatore (o palpatore che sia) g31 z-95... lui scende finchè non tocca il tastatore? o si ferma prima?

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » martedì 13 febbraio 2018, 15:49

con il comando da te descritto , nell'azzeratore di mephisto , quello per lo zero pezzo, scende tranquillamente
adesso provo

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » martedì 13 febbraio 2018, 16:10

già alla prima palpata dove dovrebbe misurare l'utensile attuale , si porta sul palpatore, poi scende in rapido della misura da me impostata in : zavv = -20 e poi risale nonostante gli ho messo lo Z negativo:

PREMESSA:
' variabili del programma
fmax = 400 ' imposto il feedrate massimo
fmin = 100 ' imposto il feedrate per la palpata

zavv = -20 ' distanza rapida di avvicinamento al palpatore
zmin = -80 ' profondità oltre il palpatore
xcut = 100 ' posizione X per cambio utensile
ycut = 100 ' posizione Y per cambio utensile

code "G0 Z" & zavv ' scendo in avvicinamento (fino a zavv) ( IN EFFETTI QUI FUNZIONA)
While IsMoving()
Wend

code "G0 F" & fmin ' porto il feedrate al minimo ( QUESTO NON LO SO , DOVREBBE ESSERE 100)

If IsSuchSignal (22) Then ' scendo sul palpatore per vedere la misura della punta attuale
code "G31 Z " & zmin ( QUI ANCHE SE METTO AD ESEMPIO Z-30 NON LO FA ), MA SI PORTA IN ALTO E VA A X100, Y-100 PER IL CAMBI UTENSILE
While IsMoving()
Wend
End If
zorig = GetDRO (2) ' memorizzo il valore di Z della punta attuale
code "G0 F" & fmax ' riporto il feedrate al massimo

code "G53 G0 Z0" ' porto Z a ZERO macchina ( INFATTI COME DICEVO SI PORTA IN ALTO )
While IsMoving()
Wend
code "G53 G0 X" & xcut & "Y" & ycut ' vado in una posizione comoda per il cambio utensile( NEL MIO CASO X100, Y-100
While IsMoving()
Wend

MsgBox ("Ora si può cambiare la punta")
QUI PREMO OK DOPO I CAMBIO
LUI SI PORTA SUL PALPATORE PER EFFETTUARE MISURA , CHE FA PERFETTAMENTE
QUANDO TORNA SUL ZERO PEZZO NON SI TROVA, PROPRIO PERCHE' NON HA FATTO LA PRIMA OPERAZIONE
COME SI RISOLVE?

Diego
Member
Member
Messaggi: 559
Iscritto il: domenica 13 gennaio 2008, 15:18
Località: Vicenza

Re: script cambio utensle

Messaggio da Diego » martedì 13 febbraio 2018, 16:32

sull'originale è scritto...
zavv = -20 ' distanza rapida di avvicinamento al palpatore
zmin = 20 ' profondità oltre il palpatore
xcut = 100 ' posizione X per cambio utensile
ycut = -100 ' posizione Y per cambio utensile

perchè tu hai un - davanti?

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » martedì 13 febbraio 2018, 21:48

io li ho cambiati per vedere come si comporta

FIREF00X
Member
Member
Messaggi: 425
Iscritto il: sabato 25 aprile 2009, 15:25
Località: salerno

Re: script cambio utensle

Messaggio da FIREF00X » sabato 17 febbraio 2018, 18:02

Stranamente, cancellando lo script e rimettendolo di nuovo, ora funziona, Proverò nei prossimi giorni a vedere se va ancora, Misteroooooo

Avatar utente
walgri
God
God
Messaggi: 4735
Iscritto il: giovedì 13 gennaio 2011, 18:37
Località: Cagliari

Re: script cambio utensle

Messaggio da walgri » sabato 26 maggio 2018, 22:43

Spostato in Mach3.
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Rispondi

Torna a “Mach3”