Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 393fd10524 |
+76
-41
@@ -962,11 +962,11 @@ function OnRapid()
|
||||
|
||||
local bNlhParkV = ( EMT.MOVE == 0 and ( EMT.FLAG2 == 1 or EMT.FLAG2 == 2))
|
||||
if bNlhParkV then
|
||||
bParkV = ( EMT.FLAG == 2 and bParkV) or not bSplitMach
|
||||
bParkV = ( EMT.FLAG == 2 and bParkV) or ( not EMT.MCHSPLIT or bSplit)
|
||||
end
|
||||
|
||||
if bParkV then
|
||||
local bMchSplit = bNlhParkV and bSplitMach
|
||||
if bParkV or bNlhParkV then
|
||||
local bMchSplit = bSplitMach
|
||||
local dPosT = EMT.TPOS or EMT.L1op
|
||||
EmitParkRoller( dPosT, bMchSplit)
|
||||
end
|
||||
@@ -1304,6 +1304,13 @@ function OnLinear()
|
||||
EMT.DBLHEADPARA = true
|
||||
end
|
||||
|
||||
-- se testa accoppiata in parallelo, in uscita si disaccoppia per tornare ad accoppiamento speculare
|
||||
if EMT.DBLHEADPARA and
|
||||
( ( EMT.MCHTYPE == MCH_MY.DRILLING and EMT.FLAG == 104) or ( EMT.MCHTYPE == MCH_MY.POCKETING and EMT.FLAG == 404)) then
|
||||
EmtOutput( "G157 EE1")
|
||||
EMT.DBLHEADPARA = nil
|
||||
end
|
||||
|
||||
-- valori degli assi
|
||||
local sL1, bL1 = EmtGetAxis( 'L1')
|
||||
local sL2, bL2 = EmtGetAxis( 'L2')
|
||||
@@ -1323,13 +1330,6 @@ function OnLinear()
|
||||
-- emetto linea
|
||||
EmtOutput( "G1"..sSlowDown..sAxes..sFeed)
|
||||
|
||||
-- se testa accoppiata in parallelo, in uscita si disaccoppia per tornare ad accoppiamento speculare
|
||||
if EMT.DBLHEADPARA and
|
||||
( ( EMT.MCHTYPE == MCH_MY.DRILLING and EMT.FLAG == 104) or ( EMT.MCHTYPE == MCH_MY.POCKETING and EMT.FLAG == 404)) then
|
||||
EmtOutput( "G157 EE1")
|
||||
EMT.DBLHEADPARA = nil
|
||||
end
|
||||
|
||||
-- aggiorno valori come precedenti
|
||||
EMT.TPOS = EMT.L1o
|
||||
EmtUpdatePrev()
|
||||
@@ -2449,11 +2449,14 @@ end
|
||||
---------------------------------------------------------------------
|
||||
-- preselezione utensile su stessa testa (per C.U. mascherato in caso di cambio morse)
|
||||
function ToolPreSelectionSingleHead( nMchId)
|
||||
-- se macchina con due teste, preselezione già fatta
|
||||
if EgtGetHeadId( 'H21') then
|
||||
-- se macchina con due teste, devo preselezionare stessa testa quando ho motosega, altrimenti già fatta
|
||||
if EgtGetHeadId( 'H21') and not HeadIsChainSaw( EMT.HEAD) then
|
||||
return
|
||||
end
|
||||
|
||||
-- gruppo della testa
|
||||
local nHSet = GetHeadSet( EMT.HEAD)
|
||||
|
||||
-- nome utensile
|
||||
local sToolChange = nil
|
||||
local sToolChangePos = nil
|
||||
@@ -2466,22 +2469,27 @@ function ToolPreSelectionSingleHead( nMchId)
|
||||
if EgtSetCurrMachining( nNextMchId) then
|
||||
local sNextTool = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
if EgtTdbSetCurrTool( sNextTool) then
|
||||
if EMT.TOOL ~= sNextTool then
|
||||
local nClId = EgtGetFirstNameInGroup( nNextMchId, 'CL') -- recupero Id del gruppo CL della lavorazione corrente
|
||||
local nPathId = EgtGetFirstInGroup( nClId or GDB_ID.NULL) -- Id del primo gruppo nella lavorazione (P1)
|
||||
local dAuxMoveCount = EgtGetInfo( nPathId, 'AS#', 'd') or 0 -- numero di movimenti ausiliari
|
||||
if dAuxMoveCount > 3 then
|
||||
bCarrMove = true
|
||||
end
|
||||
local sNextHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
-- motosega non può essere preselezionata
|
||||
if not HeadIsChainSaw( sNextHead) then
|
||||
sToolChange = sNextTool
|
||||
sToolChangePos = EgtTdbGetCurrToolParam( MCH_TP.TCPOS)
|
||||
sToolChangeHead = sNextHead
|
||||
local sNextHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
local nNextHSet = GetHeadSet( sNextHead)
|
||||
-- se stessa testa
|
||||
if nNextHSet == nHSet then
|
||||
if EMT.TOOL ~= sNextTool then
|
||||
local nClId = EgtGetFirstNameInGroup( nNextMchId, 'CL') -- recupero Id del gruppo CL della lavorazione corrente
|
||||
local nPathId = EgtGetFirstInGroup( nClId or GDB_ID.NULL) -- Id del primo gruppo nella lavorazione (P1)
|
||||
local dAuxMoveCount = EgtGetInfo( nPathId, 'AS#', 'd') or 0 -- numero di movimenti ausiliari
|
||||
if dAuxMoveCount > 3 then
|
||||
bCarrMove = true
|
||||
end
|
||||
local sNextHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
-- motosega non può essere preselezionata
|
||||
if not HeadIsChainSaw( sNextHead) then
|
||||
sToolChange = sNextTool
|
||||
sToolChangePos = EgtTdbGetCurrToolParam( MCH_TP.TCPOS)
|
||||
sToolChangeHead = sNextHead
|
||||
end
|
||||
end
|
||||
break
|
||||
end
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2492,29 +2500,36 @@ function ToolPreSelectionSingleHead( nMchId)
|
||||
EgtSetCurrMachining( EMT.MCHID)
|
||||
EgtTdbSetCurrTool( EMT.TOOL)
|
||||
|
||||
if bCarrMove then
|
||||
if bCarrMove or EgtGetHeadId( 'H21') then
|
||||
-- se è stato trovato utensile, emetto preselezione
|
||||
if sToolChangePos and sToolChange and sToolChangeHead then
|
||||
local MyParkX1, MyParkB1, MyParkC1
|
||||
if GetHeadTCSet( sToolChangeHead, sToolChangePos) == 'Head1_TC2' then
|
||||
MyParkX1 = ParkFrnX1
|
||||
MyParkB1 = ParkFrnB1
|
||||
MyParkC1 = ParkFrnC1
|
||||
local MyParkX, MyParkB, MyParkC
|
||||
if GetHeadTCSet( sToolChangeHead, sToolChangePos) == 'Head2_TC2' then
|
||||
MyParkX = ParkX2
|
||||
MyParkZ = MaxZ2
|
||||
MyParkB = ParkB2
|
||||
MyParkC = ParkC2
|
||||
elseif GetHeadTCSet( sToolChangeHead, sToolChangePos) == 'Head1_TC2' then
|
||||
MyParkX = ParkFrnX1
|
||||
MyParkZ = MaxZ1
|
||||
MyParkB = ParkFrnB1
|
||||
MyParkC = ParkFrnC1
|
||||
else
|
||||
MyParkX1 = ParkX1
|
||||
MyParkB1 = ParkB1
|
||||
MyParkC1 = ParkC1
|
||||
MyParkX = ParkX1
|
||||
MyParkZ = MaxZ1
|
||||
MyParkB = ParkB1
|
||||
MyParkC = ParkC1
|
||||
end
|
||||
|
||||
EmtOutput( '( *** TOOL PRE-SEL *** )')
|
||||
EmitMoveDataHead( 1, { X=-MyParkX1, Z=MaxZ1, B=MyParkB1, C=MyParkC1, TPos=AdjustTcPos( false, sToolChangePos)})
|
||||
EmitMoveDataHead( nHSet, { X=-MyParkX, Z=MyParkZ, B=MyParkB, C=MyParkC, TPos=AdjustTcPos( false, sToolChangePos)})
|
||||
-- comincio i movimenti di preselezione
|
||||
EmitMoveStartHead( 1)
|
||||
EmitMoveStartHead( nHSet)
|
||||
-- se preselezione e c'era montata motosega, si aspetta fine della preselezione prima di andare avanti
|
||||
if HeadIsChainSaw( EMT.HEAD) then
|
||||
EmitMoveWaitHead( 1)
|
||||
EmitMoveWaitHead( nHSet)
|
||||
else
|
||||
EMT.START_PRESEL = 1
|
||||
EMT.START_PRESEL = nHSet
|
||||
end
|
||||
-- se non ho trovato utensile da preselezionare, e c'è motosetga montata, si scarica
|
||||
elseif HeadIsChainSaw( EMT.HEAD) then
|
||||
@@ -2522,8 +2537,8 @@ function ToolPreSelectionSingleHead( nMchId)
|
||||
EmitUnmountChainSaw()
|
||||
end
|
||||
else
|
||||
-- se ultima lavorazione e ho motosega, scarico
|
||||
if not nNextMchId and HeadIsChainSaw( EMT.HEAD) then
|
||||
-- se ho motosega, scarico
|
||||
if HeadIsChainSaw( EMT.HEAD) then
|
||||
EmtOutput( '( *** UNMOUNT CHAIN-SAW *** )')
|
||||
EmitUnmountChainSaw()
|
||||
end
|
||||
@@ -2553,6 +2568,8 @@ function PreselectNextDiffHead( nMchId, sHead)
|
||||
|
||||
-- flag preselezione eseguita
|
||||
local bPresel = false
|
||||
local bDoubleTool = false
|
||||
local sDoubleTool = ''
|
||||
|
||||
if bVerifyPresel then
|
||||
-- recupero lavorazione successiva
|
||||
@@ -2566,6 +2583,20 @@ function PreselectNextDiffHead( nMchId, sHead)
|
||||
local nNextHSet = GetHeadSet( sNextHead)
|
||||
if nNextHSet ~= nHSet then
|
||||
break
|
||||
else
|
||||
local sMachUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
||||
local nDouType = EgtGetValInNotes( sMachUserNotes, 'DOUBLE', 'i')
|
||||
if nDouType == 2 then
|
||||
local sToolUserNotes = EgtTdbGetCurrToolParam( MCH_TP.USERNOTES)
|
||||
local sOtherTool = EgtGetValInNotes( sMachUserNotes, 'TOOLDOUBLE', 's') or EgtGetValInNotes( sToolUserNotes, 'DOUBLE', 's') or ''
|
||||
local sOldTool = EgtTdbGetCurrToolParam( MCH_TP.NAME)
|
||||
if EgtTdbSetCurrTool( sOtherTool) and EgtTdbGetCurrToolParam( MCH_TP.ACTIVE) then
|
||||
sDoubleTool = sOtherTool
|
||||
bDoubleTool = true
|
||||
end
|
||||
EgtTdbSetCurrTool( sOldTool)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2575,6 +2606,10 @@ function PreselectNextDiffHead( nMchId, sHead)
|
||||
-- se esiste ed appartiene a gruppo diverso
|
||||
if nNextMchId and EgtSetCurrMachining( nNextMchId) then
|
||||
local sNextTool = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
-- se è una lavorazione in doppio, selezione altro utensile
|
||||
if bDoubleTool then
|
||||
sNextTool = sDoubleTool
|
||||
end
|
||||
if EgtTdbSetCurrTool( sNextTool) then
|
||||
local sNextHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
local nNextHSet = GetHeadSet( sNextHead)
|
||||
|
||||
+8
-3
@@ -658,6 +658,10 @@ function OnSimulToolDeselect( dPrevA)
|
||||
EgtSetAxisPos( 'Z2', MaxZ2)
|
||||
SimulMoveAxis( 'X2', ParkX2, MCH_SIM_STEP.RAPID)
|
||||
local sTool, sHead, sTcPos = FindNextToolOnHeadSet( 2, false)
|
||||
local OrigEMC = EMC
|
||||
EMC = { HEAD = sHead or 'H21', TOOL = sTool, TCPOS = sTcPos, TOTDIAM = 0}
|
||||
OnSetHead()
|
||||
EMC = OrigEMC
|
||||
if sTcPos then
|
||||
LoadNextTool( 2, DefTcPos2)
|
||||
end
|
||||
@@ -2631,9 +2635,10 @@ function FindNextToolOnHeadSet( nHSet, bFirst)
|
||||
if EgtSetCurrMachining( OpId) then
|
||||
local sNextTool = EgtGetMachiningParam( MCH_MP.TOOL)
|
||||
if EgtTdbSetCurrTool( sNextTool) then
|
||||
sHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
if GetHeadSet( sHead) == nHSet and EMT.TOOL ~= sNextTool then
|
||||
if not HeadIsChainSaw( sHead) then
|
||||
local sNextHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
if GetHeadSet( sNextHead) == nHSet and EMT.TOOL ~= sNextTool then
|
||||
if not HeadIsChainSaw( sNextHead) then
|
||||
sHead = sNextHead
|
||||
sTool = sNextTool
|
||||
sTcPos = EgtTdbGetCurrToolParam( MCH_TP.TCPOS)
|
||||
end
|
||||
|
||||
@@ -290,7 +290,6 @@ function OnSpecialLink()
|
||||
-- retrazione
|
||||
EmtRemoveRise( EMC.PREVMCHID, EMC.PREVMAIN)
|
||||
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1p, EMC.R2, EMC.R3p}, 30, 3, 2, EgtIf( bSplit, 'Split=1;', '')..'FirstRise=1;')
|
||||
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2, EMC.R3p}, 30, 3, 2)
|
||||
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2, EMC.R3p}, 30, 3, 2, 'LastRise=1;')
|
||||
-- altrimenti collegamento tra due lavorazioni (3)
|
||||
else
|
||||
@@ -489,7 +488,6 @@ function OnSpecialLink()
|
||||
-- retrazione
|
||||
EmtRemoveRise( EMC.PREVMCHID, EMC.PREVMAIN)
|
||||
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2p, EMC.L3, EMC.R1p, EMC.R2, EMC.R3p}, 30, 3, 2, EgtIf( bSplit, 'Split=1;', '')..'FirstRise=1;')
|
||||
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2, EMC.R3p}, 30, 3, 2)
|
||||
EmtAddRise( EMC.PREVMCHID, EMC.PREVMAIN, { EMC.L1p, EMC.L2, EMC.L3, EMC.R1, EMC.R2, EMC.R3p}, 30, 3, 2, 'LastRise=1;')
|
||||
-- altrimenti collegamento tra due lavorazioni (3)
|
||||
else
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '3.1f1_CR5'
|
||||
PP_VER = '3.1f1_RC6'
|
||||
PP_NVER = '3.1.6.1'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
MACH_NAME = EgtGetCurrMachineName()
|
||||
|
||||
Reference in New Issue
Block a user