Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 429c049a44 | |||
| a9a7b2c14e |
+46
-33
@@ -684,6 +684,10 @@ function OnPathEnd()
|
||||
if not EMT.ZMAX then
|
||||
EmitResetMachining()
|
||||
end
|
||||
|
||||
-- salvo dati precedenti
|
||||
EMT.L2pp = EMT.L2o
|
||||
|
||||
EMT.AUXTYPE = nil
|
||||
EMT.UNL = nil
|
||||
EMT.PREROT = nil
|
||||
@@ -1121,7 +1125,7 @@ function OnRapid()
|
||||
end
|
||||
bToPresel = false
|
||||
-- risalita a Zmax
|
||||
EmitZmax( false, false, EMT.TO_XHOME, PrevR1, PrevR2)
|
||||
EmitZmax( false, false, EMT.TO_XHOME, PrevR1, PrevR2, nil, true)
|
||||
EMT.ZMAX = true
|
||||
EMT.TO_ZMAX = nil
|
||||
EMT.TO_XHOME = nil
|
||||
@@ -1140,37 +1144,45 @@ function OnRapid()
|
||||
local nHSet = GetHeadSet( EMT.HEAD)
|
||||
local nPrevHSet = GetHeadSet( EMT.PREVHEAD)
|
||||
|
||||
-- se successivo non è sega a catena e la testa è la stessa, vado in home con utensile succesivo
|
||||
if not HeadIsChainSaw( EMT.HEAD) and nHSet == nPrevHSet then
|
||||
if nHSet == 1 then
|
||||
local HomeX1 = EgtGetAxisHomePos( 'X1')
|
||||
EmitMoveDataHead( 1, { X=-HomeX1, Z=MaxZ1, B=ParkB1, C=ParkC1})
|
||||
EmitMoveStartHead( 1, 'EA1')
|
||||
else
|
||||
local HomeX2 = EgtGetAxisHomePos( 'X2')
|
||||
EmitMoveDataHead( 2, { X=-HomeX2, Z=MaxZ2, B=ParkB2, C=ParkC2})
|
||||
EmitMoveStartHead( 2, 'EA1')
|
||||
end
|
||||
else
|
||||
if not HeadIsChainSaw( EMT.PREVHEAD) then
|
||||
-- se successivo non è sega a catena e la testa è la stessa, vado in home con utensile successivo
|
||||
-- if not HeadIsChainSaw( EMT.HEAD) and nHSet == nPrevHSet then
|
||||
-- if nHSet == 1 then
|
||||
-- local HomeX1 = EgtGetAxisHomePos( 'X1')
|
||||
-- EmitMoveDataHead( 1, { X=-HomeX1, Z=MaxZ1, B=ParkB1, C=ParkC1})
|
||||
-- EmitMoveStartHead( 1, 'EA1')
|
||||
-- EmitMoveWaitHead( 1)
|
||||
-- else
|
||||
-- local HomeX2 = EgtGetAxisHomePos( 'X2')
|
||||
-- EmitMoveDataHead( 2, { X=-HomeX2, Z=MaxZ2, B=ParkB2, C=ParkC2})
|
||||
-- EmitMoveStartHead( 2, 'EA1')
|
||||
-- EmitMoveWaitHead( 2)
|
||||
-- end
|
||||
-- else
|
||||
-- vado in parcheggio sempre con utensile precedente
|
||||
-- if not HeadIsChainSaw( EMT.PREVHEAD) then
|
||||
if EMT.PREVHEAD == 'H12' or EMT.PREVHEAD == 'H22' then
|
||||
if nPrevHSet == 1 then
|
||||
local HomeX1 = EgtGetAxisHomePos( 'X1')
|
||||
EmitMoveDataHead( 1, { X=-EMT.PREVHOMEX_H1, Z=MaxZ1, B=ParkB1, C=ParkC1, TPos=AdjustTcPos( false, EMT.PREVTCPOS_H1)})
|
||||
EmitMoveStartHead( 1, 'EA1')
|
||||
EmitMoveWaitHead( 1)
|
||||
else
|
||||
local HomeX2 = EgtGetAxisHomePos( 'X2')
|
||||
EmitMoveDataHead( 2, { X=-EMT.PREVHOMEX_H2, Z=MaxZ2, B=ParkB2, C=ParkC2, TPos=AdjustTcPos( false, EMT.PREVTCPOS_H2)})
|
||||
EmitMoveStartHead( 2, 'EA1')
|
||||
EmitMoveWaitHead( 2)
|
||||
end
|
||||
else
|
||||
if GetHeadTCSet( EMT.PREVHEAD, EMT.PREVTCPOS) == 'Head1_TC1' or GetHeadTCSet( EMT.PREVHEAD, EMT.PREVTCPOS) == 'Head1_TC2' then
|
||||
EmitMoveDataHead( 1, { X=-ParkCSawX1S, Z=MaxZ1, B=HomeR2, C=HomeR1, TPos='50'})
|
||||
EmitMoveStartHead( 1, 'EA1')
|
||||
else
|
||||
EmitMoveDataHead( 2, { X=-ParkCSawX2S, Z=MaxZ2, B=HomeR2, C=HomeR1, TPos='50'})
|
||||
EmitMoveStartHead( 2, 'EA1')
|
||||
end
|
||||
end
|
||||
-- else
|
||||
-- if GetHeadTCSet( EMT.PREVHEAD, EMT.PREVTCPOS) == 'Head1_TC1' or GetHeadTCSet( EMT.PREVHEAD, EMT.PREVTCPOS) == 'Head1_TC2' then
|
||||
-- EmitMoveDataHead( 1, { X=-ParkCSawX1S, Z=MaxZ1, B=HomeR2, C=HomeR1, TPos='50'})
|
||||
-- EmitMoveStartHead( 1, 'EA1')
|
||||
-- --EmitMoveWaitHead( 1)
|
||||
-- else
|
||||
-- EmitMoveDataHead( 2, { X=-ParkCSawX2S, Z=MaxZ2, B=HomeR2, C=HomeR1, TPos='50'})
|
||||
-- EmitMoveStartHead( 2, 'EA1')
|
||||
-- --EmitMoveWaitHead( 2)
|
||||
-- end
|
||||
-- end
|
||||
end
|
||||
|
||||
EMT.TO_XHOME = nil
|
||||
@@ -2686,6 +2698,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
end
|
||||
-- gruppo della testa
|
||||
local nHSet = GetHeadSet( EMT.HEAD)
|
||||
local dXPos = EgtIf( bUsePrevDelta, EMT.L2pp or EMT.L2o, EMT.L2o)
|
||||
-- reset stato di testa in home
|
||||
EMT.XHOME = nil
|
||||
-- se testa 1
|
||||
@@ -2707,12 +2720,12 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
-- eseguo la salita a Z1max (oriento solo se assi rotanti non già a posto)
|
||||
if abs( dSafeC1 - PrevR1) > 0.1 or abs( dSafeB1 - PrevR2) > 0.1 then
|
||||
local dZref = dSafeZ1 + GetZExtra( EMT.HEAD, PrevR2)
|
||||
if EgtIf( BD.RIGHT_LOAD, -EMT.L2o < -LimX1RotSaw, -EMT.L2o > -LimX1RotSaw) then
|
||||
if EgtIf( BD.RIGHT_LOAD, -dXPos < -LimX1RotSaw, -dXPos > -LimX1RotSaw) then
|
||||
dZref = dZref - EgtIf( not Mortiser, 100, 370)
|
||||
end
|
||||
dZref = min( dZref, dMaxZ1)
|
||||
local MovH = { Z = EgtIf( dZref > EMT.L3o, dZref, EMT.L3o)}
|
||||
MovH.X = -EMT.L2o ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
MovH.X = -dXPos ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
if EMT.HEAD == 'H12' and ( abs( dSafeC1 - PrevR1) > 30.1 or abs( dSafeB1 - PrevR2) > 30.1) then
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
|
||||
@@ -2722,7 +2735,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1})
|
||||
else
|
||||
local MovH = { Z = dMaxZ1}
|
||||
MovH.X = -EMT.L2o ; MovH.B = PrevR2 ; MovH.C = PrevR1 ;
|
||||
MovH.X = -dXPos ; MovH.B = PrevR2 ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
end
|
||||
if bXhome then
|
||||
@@ -2738,7 +2751,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
-- ribadisco movimento perchè in G141 si aspetta sempre tutti i valori
|
||||
local MovH = { X = -EMT.L2o, Z = EMT.L3o, B = PrevR2, C = PrevR1}
|
||||
local MovH = { X = -dXPos, Z = EMT.L3o, B = PrevR2, C = PrevR1}
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
EmitMoveDataHead( 1, { Z=dSafeZ1, B=dSafeB1})
|
||||
if EMT.SB > 650 and abs( EMT.R3) < 0.1 then
|
||||
@@ -2761,7 +2774,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
local dZref = dSafeZ1 + GetZExtra( EMT.HEAD, PrevR2)
|
||||
dZref = min( dZref, dMaxZ1)
|
||||
local MovH = { Z = EgtIf( dZref > EMT.L3o, dZref, EMT.L3o)}
|
||||
MovH.X = -EMT.L2o ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
MovH.X = -dXPos ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
if EMT.HEAD == 'H12' and ( abs( dSafeC1 - PrevR1) > 30.1 or abs( dSafeB1 - PrevR2) > 30.1) then
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1, B=0})
|
||||
@@ -2771,7 +2784,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
EmitMoveDataHead( 1, { Z=dMaxZ1})
|
||||
else
|
||||
local MovH = { Z = dMaxZ1}
|
||||
MovH.X = -EMT.L2o ; MovH.B = PrevR2 ; MovH.C = PrevR1 ;
|
||||
MovH.X = -dXPos ; MovH.B = PrevR2 ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
end
|
||||
if bXhome then
|
||||
@@ -2783,7 +2796,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
-- ribadisco movimento perchè in G141 si aspetta sempre tutti i valori
|
||||
local MovH = { X = -EMT.L2o, Z = EMT.L3o, B = PrevR2, C = PrevR1}
|
||||
local MovH = { X = -dXPos, Z = EMT.L3o, B = PrevR2, C = PrevR1}
|
||||
EmitMoveDataHead( 1, MovH)
|
||||
EmitMoveDataHead( 1, { Z=dSafeZ1, B=dSafeB1})
|
||||
if EMT.SB > 650 and abs( EMT.R3) < 0.1 then
|
||||
@@ -2818,7 +2831,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
local dZref = dSafeZ2 + GetZExtra( EMT.HEAD, PrevR2)
|
||||
dZref = min( dZref, dMaxZ2)
|
||||
local MovH = { Z = EgtIf( dZref > EMT.L3o, dZref, EMT.L3o)}
|
||||
MovH.X = -EMT.L2o ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
MovH.X = -dXPos ; MovH.B = EgtClamp( PrevR2, -90, 90) ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 2, MovH)
|
||||
if EMT.HEAD == 'H22' and ( abs( dSafeC2 - PrevR1) > 30.1 or abs( dSafeB2 - PrevR2) > 30.1) then
|
||||
EmitMoveDataHead( 2, { Z=dMaxZ2, B=0})
|
||||
@@ -2828,7 +2841,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
EmitMoveDataHead( 2, { Z=dMaxZ2})
|
||||
else
|
||||
local MovH = { Z = dMaxZ2}
|
||||
MovH.X = -EMT.L2o ; MovH.B = PrevR2 ; MovH.C = PrevR1 ;
|
||||
MovH.X = -dXPos ; MovH.B = PrevR2 ; MovH.C = PrevR1 ;
|
||||
EmitMoveDataHead( 2, MovH)
|
||||
end
|
||||
if bXhome then
|
||||
@@ -2840,7 +2853,7 @@ function EmitZmax( bReset, bEnd, bXhome, PrevR1, PrevR2, bSplitCut, bUsePrevDelt
|
||||
-- altrimenti sega a catena
|
||||
else
|
||||
-- ribadisco movimento perchè in G141 si aspetta sempre tutti i valori
|
||||
local MovH = { X = -EMT.L2o, Z = EMT.L3o, B = PrevR2, C = PrevR1}
|
||||
local MovH = { X = -dXPos, Z = EMT.L3o, B = PrevR2, C = PrevR1}
|
||||
EmitMoveDataHead( 2, MovH)
|
||||
EmitMoveDataHead( 2, { Z=dSafeZ2, B=dSafeB2})
|
||||
if EMT.SB > 650 and abs( EMT.R3) < 0.1 then
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
Versione 2.6-- (--/--/2024)
|
||||
- (SIM-GEN) Corretto movimento in Home in caso di lama e movimento rulliera di carico. Ticket#2054
|
||||
- (GEN) In caso di movimento in Home non si fa più preselezione ma si tiene utensile vecchio. Ticket#1926
|
||||
|
||||
Versione 2.6i2 (13/09/2024)
|
||||
- (GEN) Migliorato calcolo chiusura paratia rulli con aggiornamento lunghezza della barra in caso di ultimo taglio e grezzo residuo in coda. Ticket#2017
|
||||
|
||||
Reference in New Issue
Block a user