Vorrei passare a MACH4...ma...

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

Vorrei passare a MACH4...ma...

Messaggio da FIREF00X » giovedì 23 febbraio 2023, 12:59

Salve, come da titolo vorrei passare a mach 4 , anche per usarlo con windows 10 , ma visto i miei limiti nel creare gli script , vorrei che avesse almeno i due script : auto tool zero ( e questo mi sembra c'è ), ma specialmente la funzione di cambio utensile , come è stata creata da qualcuno qui sul forum ( se non erro Mephisto e altri ) per mach 3 . C'è qualcuno che li ha convertiti per mach4?
grazie anticipatamente

torn24
God
God
Messaggi: 5080
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Vorrei passare a MACH4...ma...

Messaggio da torn24 » venerdì 24 febbraio 2023, 8:28

Mach4 è stato usato da meno tempo e da meno utenti di mach3 per cui non sono disponibili la stessa quantità di risorse e script. Comunque esiste un esempio standard di cambio utensile mach4 ed è la conversione in linguaggio LUA dello script Mach3.
Dipende come è fatto il tuo cambio utensile se va bene quello script o ne hai bisogno di uno personalizzato. Consiglio fai una ricerca in lingua inglese con google traduttore, è più probabile che trovi qualcosa di pronto in qualche forum estero:D
CIAO A TUTTI !

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

Re: Vorrei passare a MACH4...ma...

Messaggio da FIREF00X » sabato 25 febbraio 2023, 1:16

Ciao, innanzitutto grazie per la risposta, il mio cambio utensile è quello trovato qui sul forum , cioè quello che si comporta in questo modo : quando il programma trova M6 si ferma e tu clicchi sul pulsante per attivare lo script che porta il mandrino in una posizione sicura per il cambio, poi prima di cambiare va sul probe per misurare la lunghezza dell'utensile attuale, poi fai il cambio e ritorni sul probe per misurare il nuovo utensile . Infine si riporta nella posizione lasciata prima del cambio utensile e riprende la lavorazione. Purtroppo non sono bravo nell'inglese, come nello scrivere gli script, per questo chiedevo se c'era qualcuno in grado di trasformare lo script per mach3 in mach4. In Italia vedo che non è molto usato , peccato perchè credo ha tante potenzialità di sviluppo.

torn24
God
God
Messaggi: 5080
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Vorrei passare a MACH4...ma...

Messaggio da torn24 » sabato 25 febbraio 2023, 7:33

Ciao, esistono varie versioni di cambio utensile mach3 anche sul forum.
Adesso un cambio utensile a rastrelliera ad esempio fatto in mach3 potrei tradurlo in linguaggio Lua per mach4 perché esistono esempi sufficienti a fare modifiche, mentre per misurare la lunghezza utensile non esiste nessun esempio il Lua per mach4, quindi non saprei quali funzioni esistono e si potrebbero usare. Pensa che ho trovato su ebay da una ricerca misurazione lunghezza utensile per mach4 a circa 80 euro, il fatto che se si fanno pagare vuol dire che non si trova niente di già fatto e gratuito :shock:
CIAO A TUTTI !

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

Re: Vorrei passare a MACH4...ma...

Messaggio da FIREF00X » domenica 26 febbraio 2023, 0:57

Ciao grazie per aver risposto, io intendo cambio manuale , se puoi modificarlo da mach3 a mach 4 ti do lo script che trovi anche qui nel forum.
fammi sapere ciao

torn24
God
God
Messaggi: 5080
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Vorrei passare a MACH4...ma...

Messaggio da torn24 » domenica 26 febbraio 2023, 5:47

Ci potrei provare, ma hai detto che il tuo cambio utensile misura anche la lunghezza.
Comunque posta la macro che gli do un occhiata e confronto con quello che esiste per mach4. Usa i tag code simbolo </>
CIAO A TUTTI !

torn24
God
God
Messaggi: 5080
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Vorrei passare a MACH4...ma...

Messaggio da torn24 » domenica 26 febbraio 2023, 5:47

Ci potrei provare, ma hai detto che il tuo cambio utensile misura anche la lunghezza.
Comunque posta la macro che gli do un occhiata e confronto con quello che esiste per mach4. Usa i tag code simbolo </>
CIAO A TUTTI !

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

Re: Vorrei passare a MACH4...ma...

Messaggio da FIREF00X » domenica 26 febbraio 2023, 18:47

ti ho inviato un mp

torn24
God
God
Messaggi: 5080
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Vorrei passare a MACH4...ma...

Messaggio da torn24 » martedì 28 febbraio 2023, 6:35

Adesso esiste la macro azzeramento utensile mach4 e la macro cambio utensile m6 mach4 senza cono, BISOGNA IMPARARLE AD USARLE.

La macro è questa ho cambiato input con input0, in configurazione mach4 dovrai mettere input0 come ingresso del segnale del tuo proble.
La macro ha nome M1005, Dovrai metterla nella cartella percorso, C:\Mach4Hobby\Profiles\Mach4Mill\Macros, METTERAI IL FILE DI NOME M1005.mcs. Fatto questo la macro esiste ed è utilizzabile.
1)Configuri mach4 input0 come segnale del tuo proble
2)in C:\Mach4Hobby\Profiles\Mach4Mill\Macros inserisci il file m1005.mcs
3)richiami la macro quando ti serve per misurare 'utensiele.

Macro, devi copiare il testo in un editor di testo, poi salva con nome m1005.mcs, non con estnsione txt, ma .mcs.

Codice: Seleziona tutto


-----------------------------------------------------------------------------
-- Auto Tool Setting Macro
-----------------------------------------------------------------------------
--[[
 Requires the following instance registers to be defined
 TS_XPos-----------X position of probe (machine position)
 TS_YPos-----------Y position of probe (machine position)
 TS_Type-----------Offset type (1 or 2)
 TS_TouchPos-------Z position of touch off surface (machine position)
 TS_ProbeH---------Height of probe above touch off surface
 TS_DefaultL-------Default tool length guess
 TS_Retract--------Retract distance after probe touch
 Offset Type 1-----Length of tool from gauge line to tip
 Offset Type 2-----Distance from tip of tool to the touch position
]]
--The function GetRegister() must be defined for use by macros
function m1005()
 local inst = mc.mcGetInstance()

 ------------- Define Vars -------------
 local ProbeSignal = mc.ISIG_INPUT0
 ------------- Get current state -------------
 local CurTool = mc.mcToolGetCurrent(inst)
 local CurHNum = mc.mcCntlGetPoundVar(inst, 2032)
 local CurFeed = mc.mcCntlGetPoundVar(inst, 2134)
 local CurZOffset = mc.mcCntlGetPoundVar(inst, 4102)
26
 local CurFeedMode = mc.mcCntlGetPoundVar(inst, 4001)
 local CurAbsMode = mc.mcCntlGetPoundVar(inst, 4003)
 ------------- Get touch off parameters -------------
 local Xpos = GetRegister("TS_XPos", 1)
 local Ypos = GetRegister("TS_YPos", 1)
 local OffsetType = GetRegister("TS_Type", 1)
 local TouchPos = GetRegister("TS_TouchPos", 1)
 local ProbeHeight = GetRegister("TS_ProbeH", 1)
 local RetractDistance = GetRegister("TS_Retract", 1)
 local ToolLengthGuess = GetRegister("TS_DefaultL", 1)
 ------------- Check Probe -------------
 local hsig = mc.mcSignalGetHandle(inst, ProbeSignal)
 local ProbeState = mc.mcSignalGetState(hsig)
 if (ProbeState == true) then
 mc.mcCntlSetLastError(inst, "ERROR: Probe signal is activated")
 do return end
 end

 ------------- Calculations for Gcode -------------
 local StartHeight = TouchPos + ProbeHeight + ToolLengthGuess + .5

 ------------- Generate GCode -------------
 AutoToolSetGCode = ""
 AutoToolSetGCode = AutoToolSetGCode .. "G00 G80 G40 G49 G90\n"
 AutoToolSetGCode = AutoToolSetGCode .. "G00 G53 Z0.0\n"
 AutoToolSetGCode = AutoToolSetGCode .. string.format("G00 G53 X%.4f Y%.4f\n", Xpos, Ypos)
 AutoToolSetGCode = AutoToolSetGCode .. string.format("G00 G53 Z%.4f\n", StartHeight)
 AutoToolSetGCode = AutoToolSetGCode .. "G91 G31 Z-2.0 F25.\n"

 mc.mcCntlGcodeExecuteWait(inst, AutoToolSetGCode)
 --Check probe contact
 ProbeState = mc.mcSignalGetState(hsig)
 if (ProbeState ~= 1) then
 mc.mcCntlSetLastError(inst, "ERROR: No contact with probe")
 mc.mcCntlGcodeExecuteWait(inst, "G0 G90 G53 Z0.0\n")
 do return end
 end

 AutoToolSetGCode = ""
 AutoToolSetGCode = AutoToolSetGCode .. string.format("G91 G00 Z%.4f\n", RetractDistance)
 AutoToolSetGCode = AutoToolSetGCode .. "G91 G31 Z-1.0 F10.\n"

 mc.mcCntlGcodeExecuteWait(inst, AutoToolSetGCode)
 --Check probe contact
 ProbeState = mc.mcSignalGetState(hsig)
 if (ProbeState ~= 1) then
 mc.mcCntlSetLastError(inst, "ERROR: No contact with probe")
 mc.mcCntlGcodeExecuteWait(inst, "G0 G90 G53 Z0.0\n")
 do return end
 end

 AutoToolSetGCode = ""
 AutoToolSetGCode = AutoToolSetGCode .. "G90 G00 G53 Z0.0\n"
 mc.mcCntlGcodeExecuteWait(inst, AutoToolSetGCode)
 ------------- Get touch position and set offset -------------
 local ZProbed = mc.mcCntlGetPoundVar(inst, 5063)
 local ZOffset = ZProbed - ProbeHeight + CurZOffset
 if (OffsetType == 1) then
 ZOffset = math.abs(TouchPos - ZOffset)
 end

 mc.mcToolSetData(inst, mc.MTOOL_MILL_HEIGHT, CurTool, ZOffset)
 mc.mcCntlSetLastError(inst, string.format("Auto tool setting complete, Offset = %.4f",
ZOffset))

27
 ------------- Set previous state -------------
 mc.mcCntlSetPoundVar(inst, 2134, CurFeed)
 mc.mcCntlSetPoundVar(inst, 4001, CurFeedMode)
 mc.mcCntlSetPoundVar(inst, 4003, CurAbsMode)

end
if (mc.mcInEditor() == 1) then
 m1005()
end




CIAO A TUTTI !

torn24
God
God
Messaggi: 5080
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: Vorrei passare a MACH4...ma...

Messaggio da torn24 » martedì 28 febbraio 2023, 7:02

Correzione codice erano presenti caratteri non validi...
Se aprendo mach4 sono visibili 6 assi a b c, non stai usando mach4millis ma mach46axis, per cui la macro andra in quel percorso.

Di più non posso fare, se non riesci dovrai cercare altrove.

Codice: Seleziona tutto

-----------------------------------------------------------------------------
-- Auto Tool Setting Macro
-----------------------------------------------------------------------------
--[[
 Requires the following instance registers to be defined
 TS_XPos-----------X position of probe (machine position)
 TS_YPos-----------Y position of probe (machine position)
 TS_Type-----------Offset type (1 or 2)
 TS_TouchPos-------Z position of touch off surface (machine position)
 TS_ProbeH---------Height of probe above touch off surface
 TS_DefaultL-------Default tool length guess
 TS_Retract--------Retract distance after probe touch
 Offset Type 1-----Length of tool from gauge line to tip
 Offset Type 2-----Distance from tip of tool to the touch position
]]
--The function GetRegister() must be defined for use by macros
function m1005()
 local inst = mc.mcGetInstance()

 ------------- Define Vars -------------
 local ProbeSignal = mc.ISIG_INPUT0
 ------------- Get current state -------------
 local CurTool = mc.mcToolGetCurrent(inst)
 local CurHNum = mc.mcCntlGetPoundVar(inst, 2032)
 local CurFeed = mc.mcCntlGetPoundVar(inst, 2134)
 local CurZOffset = mc.mcCntlGetPoundVar(inst, 4102)

 local CurFeedMode = mc.mcCntlGetPoundVar(inst, 4001)
 local CurAbsMode = mc.mcCntlGetPoundVar(inst, 4003)
 ------------- Get touch off parameters -------------
 local Xpos = GetRegister("TS_XPos", 1)
 local Ypos = GetRegister("TS_YPos", 1)
 local OffsetType = GetRegister("TS_Type", 1)
 local TouchPos = GetRegister("TS_TouchPos", 1)
 local ProbeHeight = GetRegister("TS_ProbeH", 1)
 local RetractDistance = GetRegister("TS_Retract", 1)
 local ToolLengthGuess = GetRegister("TS_DefaultL", 1)
 ------------- Check Probe -------------
 local hsig = mc.mcSignalGetHandle(inst, ProbeSignal)
 local ProbeState = mc.mcSignalGetState(hsig)
 if (ProbeState == true) then
 mc.mcCntlSetLastError(inst, "ERROR: Probe signal is activated")
 do return end
 end

 ------------- Calculations for Gcode -------------
 local StartHeight = TouchPos + ProbeHeight + ToolLengthGuess + .5

 ------------- Generate GCode -------------
 AutoToolSetGCode = ""
 AutoToolSetGCode = AutoToolSetGCode .. "G00 G80 G40 G49 G90\n"
 AutoToolSetGCode = AutoToolSetGCode .. "G00 G53 Z0.0\n"
 AutoToolSetGCode = AutoToolSetGCode .. string.format("G00 G53 X%.4f Y%.4f\n", Xpos, Ypos)
 AutoToolSetGCode = AutoToolSetGCode .. string.format("G00 G53 Z%.4f\n", StartHeight)
 AutoToolSetGCode = AutoToolSetGCode .. "G91 G31 Z-2.0 F25.\n"

 mc.mcCntlGcodeExecuteWait(inst, AutoToolSetGCode)
 --Check probe contact
 ProbeState = mc.mcSignalGetState(hsig)
 if (ProbeState ~= 1) then
 mc.mcCntlSetLastError(inst, "ERROR: No contact with probe")
 mc.mcCntlGcodeExecuteWait(inst, "G0 G90 G53 Z0.0\n")
 do return end
 end

 AutoToolSetGCode = ""
 AutoToolSetGCode = AutoToolSetGCode .. string.format("G91 G00 Z%.4f\n", RetractDistance)
 AutoToolSetGCode = AutoToolSetGCode .. "G91 G31 Z-1.0 F10.\n"

 mc.mcCntlGcodeExecuteWait(inst, AutoToolSetGCode)
 --Check probe contact
 ProbeState = mc.mcSignalGetState(hsig)
 if (ProbeState ~= 1) then
 mc.mcCntlSetLastError(inst, "ERROR: No contact with probe")
 mc.mcCntlGcodeExecuteWait(inst, "G0 G90 G53 Z0.0\n")
 do return end
 end

 AutoToolSetGCode = ""
 AutoToolSetGCode = AutoToolSetGCode .. "G90 G00 G53 Z0.0\n"
 mc.mcCntlGcodeExecuteWait(inst, AutoToolSetGCode)
 ------------- Get touch position and set offset -------------
 local ZProbed = mc.mcCntlGetPoundVar(inst, 5063)
 local ZOffset = ZProbed - ProbeHeight + CurZOffset
 if (OffsetType == 1) then
 ZOffset = math.abs(TouchPos - ZOffset)
 end

 mc.mcToolSetData(inst, mc.MTOOL_MILL_HEIGHT, CurTool, ZOffset)
 mc.mcCntlSetLastError(inst, string.format("Auto tool setting complete, Offset = %.4f",
ZOffset))


 ------------- Set previous state -------------
 mc.mcCntlSetPoundVar(inst, 2134, CurFeed)
 mc.mcCntlSetPoundVar(inst, 4001, CurFeedMode)
 mc.mcCntlSetPoundVar(inst, 4003, CurAbsMode)

end
if (mc.mcInEditor() == 1) then
dofile ("load_modules.mcs")
 m1005()
end










CIAO A TUTTI !

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

Re: Vorrei passare a MACH4...ma...

Messaggio da FIREF00X » martedì 28 febbraio 2023, 13:57

ok grazie di tutto, provo e poi scrivo qui eventualmente
grazie di nuovo

Avatar utente
danieleee
God
God
Messaggi: 3684
Iscritto il: lunedì 8 marzo 2010, 22:38
Località: Borgo Vercelli

Re: Vorrei passare a MACH4...ma...

Messaggio da danieleee » martedì 28 febbraio 2023, 16:01

@FIREFOX volendo puoi provare pure questo....
viewtopic.php?f=5&t=1159&start=15
vai alla pag2 verso la fine, vi sono file e descrizioni.
come la vuoi usare tu, se un utensile si spezza o danneggia perdi gli zero, con questo sistema non succede.

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

Re: Vorrei passare a MACH4...ma...

Messaggio da FIREF00X » venerdì 3 marzo 2023, 1:03

grazie danieleee,

Rispondi

Torna a “Mach4”