Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 536352b802 | |||
| 1484fb761b | |||
| 660209bdea | |||
| 3867f7b7ed | |||
| bc2388dd43 | |||
| 86d9b2ec3d | |||
| 2221224e9a | |||
| 0b7fefd0fd |
@@ -674,6 +674,10 @@ function OnRapid()
|
|||||||
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||||
EmtOutput( sOutPreMove)
|
EmtOutput( sOutPreMove)
|
||||||
|
elseif EMT.HEAD == 'H3' and EMT.PREVHEAD ~= 'H3' then
|
||||||
|
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
|
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||||
|
EmtOutput( sOutPreMove)
|
||||||
end
|
end
|
||||||
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
' B' .. EgtNumToString( EMT.R2, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
' B' .. EgtNumToString( EMT.R2, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||||
|
|||||||
@@ -746,6 +746,10 @@ function OnRapid()
|
|||||||
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||||
EmtOutput( sOutPreMove)
|
EmtOutput( sOutPreMove)
|
||||||
|
elseif EMT.HEAD == 'H3' and EMT.PREVHEAD ~= 'H3' then
|
||||||
|
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
|
' B' .. EgtNumToString( 0, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||||
|
EmtOutput( sOutPreMove)
|
||||||
end
|
end
|
||||||
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
sOutPreMove = 'G101' .. ' X' .. EmtLenToString( -SafeXRotAxes, 3) .. ' Z' .. EmtLenToString( MyZHome, 3) ..
|
||||||
' B' .. EgtNumToString( EMT.R2, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
' B' .. EgtNumToString( EMT.R2, 3) .. ' C' .. EgtNumToString( EMT.R1, 3) .. sEE .. sEL .. sER .. sET .. sES
|
||||||
|
|||||||
@@ -704,6 +704,12 @@ function OnRapid()
|
|||||||
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||||
EmtOutput( sOutPreMove)
|
EmtOutput( sOutPreMove)
|
||||||
|
elseif EMT.HEAD == 'H3' and EMT.PREVHEAD ~= 'H3' then
|
||||||
|
sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
||||||
|
' P4=' .. EgtNumToString( 0, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
||||||
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
||||||
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
||||||
|
EmtOutput( sOutPreMove)
|
||||||
end
|
end
|
||||||
sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
||||||
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
||||||
|
|||||||
+10
-4
@@ -553,8 +553,7 @@ function OnSimulToolSelect( dPosA)
|
|||||||
end
|
end
|
||||||
EgtSetCurrMachining( NextMchId)
|
EgtSetCurrMachining( NextMchId)
|
||||||
-- recupero il valore dell'asse virtuale bloccato A
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
dPosA = GetCurrChainSawingVirtualAxis()
|
||||||
dPosA = tonumber( sVal:sub( 3))
|
|
||||||
else
|
else
|
||||||
-- imposto visualizzazione
|
-- imposto visualizzazione
|
||||||
EgtSetMode( EgtGetHeadId( EMT.HEAD) or GDB_ID.NULL, GDB_MD.STD)
|
EgtSetMode( EgtGetHeadId( EMT.HEAD) or GDB_ID.NULL, GDB_MD.STD)
|
||||||
@@ -721,8 +720,7 @@ function OnSimulMachiningStart()
|
|||||||
-- se lavorazione attuale e precedente con sega a catena con angolo A diverso, devo scaricare e ricaricare
|
-- se lavorazione attuale e precedente con sega a catena con angolo A diverso, devo scaricare e ricaricare
|
||||||
if EMT.HEAD == 'H3' and EMT.HEAD == EMT.PREVHEAD then
|
if EMT.HEAD == 'H3' and EMT.HEAD == EMT.PREVHEAD then
|
||||||
local dPrevA = EgtGetAxisPos( 'A')
|
local dPrevA = EgtGetAxisPos( 'A')
|
||||||
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
local dPosA = GetCurrChainSawingVirtualAxis()
|
||||||
local dPosA = tonumber( sVal:sub( 3))
|
|
||||||
if abs( dPosA - dPrevA) > 1 then
|
if abs( dPosA - dPrevA) > 1 then
|
||||||
OnSimulToolDeselect()
|
OnSimulToolDeselect()
|
||||||
EgtSetStatus( EgtGetHeadId( EMT.HEAD), GDB_ST.ON)
|
EgtSetStatus( EgtGetHeadId( EMT.HEAD), GDB_ST.ON)
|
||||||
@@ -1911,6 +1909,14 @@ function GetParkT()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
function GetCurrChainSawingVirtualAxis()
|
||||||
|
-- recupero il valore dell'asse virtuale bloccato A
|
||||||
|
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS) or 'A=0'
|
||||||
|
local dPosA = tonumber( sVal:sub( 3)) or 0
|
||||||
|
return dPosA
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
function CalcDinamicaPinze_TPA( dH, dS, dL)
|
function CalcDinamicaPinze_TPA( dH, dS, dL)
|
||||||
local MinTempoAcc = EMT.MINACC -- [ms] ~300
|
local MinTempoAcc = EMT.MINACC -- [ms] ~300
|
||||||
|
|||||||
+53
-19
@@ -1536,9 +1536,12 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
dTPosF = MaxV - dVDeltaF
|
dTPosF = MaxV - dVDeltaF
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- se il pinzaggio deve essere invertito forzo entrata nei riposizionamenti
|
||||||
|
-- altrimenti posizioni iniziali e finali sono coincidenti dato che la pinza non in presa viene posizionata alla distanza minima a quella in presa
|
||||||
|
local bInvertClamping = not EMC.PILGRIMSTEP and EMC.YDELTA ~= EMC.YDELTANEXT and EMC.VDELTA ~= EMC.VDELTANEXT
|
||||||
-- verifico che le morse non sono in posizione
|
-- verifico che le morse non sono in posizione
|
||||||
if abs( dYDeltaF - dYDeltaI) > 10 * GEO.EPS_SMALL or abs( dVDeltaF - dVDeltaI) > 10 * GEO.EPS_SMALL or
|
if ( abs( dYDeltaF - dYDeltaI) > 10 * GEO.EPS_SMALL or abs( dVDeltaF - dVDeltaI) > 10 * GEO.EPS_SMALL or bInvertClamping) and
|
||||||
EMC.YDELTA ~= EMC.YDELTANEXT or EMC.VDELTA ~= EMC.VDELTANEXT then
|
( EMC.YDELTA ~= EMC.YDELTANEXT or EMC.VDELTA ~= EMC.VDELTANEXT) then
|
||||||
if #vCmd == 0 then
|
if #vCmd == 0 then
|
||||||
table.insert( vCmd, { 0, 'Clamp repositioning'})
|
table.insert( vCmd, { 0, 'Clamp repositioning'})
|
||||||
-- risalita testa a Zmax
|
-- risalita testa a Zmax
|
||||||
@@ -1610,6 +1613,18 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
-- se spostamento verso il carico
|
-- se spostamento verso il carico
|
||||||
elseif ( dVPosI + ( dVDeltaF - dVDeltaI)) > MaxV then
|
elseif ( dVPosI + ( dVDeltaF - dVDeltaI)) > MaxV then
|
||||||
dBeamMove = dVPosI + ( dVDeltaF - dVDeltaI) - MaxV
|
dBeamMove = dVPosI + ( dVDeltaF - dVDeltaI) - MaxV
|
||||||
|
-- se è FASTCLAMPING attivo, si suddivide il movimento
|
||||||
|
elseif BD.FASTCLAMPING then
|
||||||
|
-- se la trave si sposta dal carico verso lo scarico
|
||||||
|
if dTPosI - dTPosF > 0 then
|
||||||
|
dBeamMove = min( -( dTPosF - dTPosI), -( MyMinY - dYPosI), -( dVDeltaI - dVDeltaF))
|
||||||
|
else
|
||||||
|
dBeamMove = max( -( dTPosF - dTPosI), -( MyMinY - dYPosI))
|
||||||
|
end
|
||||||
|
dBeamMove = dBeamMove / 2
|
||||||
|
-- altrimenti la trave resta ferma e la pinza 1 va in presa (si limita lo scivolamento del pezzo)
|
||||||
|
else
|
||||||
|
;
|
||||||
end
|
end
|
||||||
|
|
||||||
-- se serve un grande spostamento e si sta pinzando poco. Y trascinatore pinza poco e V si sposta per prima per recuperare
|
-- se serve un grande spostamento e si sta pinzando poco. Y trascinatore pinza poco e V si sposta per prima per recuperare
|
||||||
@@ -1684,6 +1699,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
|
|
||||||
-- movimento terminato
|
-- movimento terminato
|
||||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||||
|
EMC.YDELTA = EMC.YDELTANEXT
|
||||||
|
EMC.VDELTA = EMC.VDELTANEXT
|
||||||
|
|
||||||
-- SECONDO CASO -> SCAMBIO DIRETTO : Y IN POSIZIONE FINALE
|
-- SECONDO CASO -> SCAMBIO DIRETTO : Y IN POSIZIONE FINALE
|
||||||
-- Y può andare in posizione direttamente se :
|
-- Y può andare in posizione direttamente se :
|
||||||
@@ -1720,6 +1737,18 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
-- se spostamento verso il carico
|
-- se spostamento verso il carico
|
||||||
elseif ( dYPosI + ( dYDeltaF - dYDeltaI)) > MaxY then
|
elseif ( dYPosI + ( dYDeltaF - dYDeltaI)) > MaxY then
|
||||||
dBeamMove = -( dYPosI + ( dYDeltaF - dYDeltaI) - MaxY)
|
dBeamMove = -( dYPosI + ( dYDeltaF - dYDeltaI) - MaxY)
|
||||||
|
-- se è FASTCLAMPING attivo, si suddivide il movimento
|
||||||
|
elseif BD.FASTCLAMPING then
|
||||||
|
-- se la trave si sposta dal carico verso lo scarico
|
||||||
|
if dTPosI - dTPosF > 0 then
|
||||||
|
dBeamMove = max( ( dTPosF - dTPosI), ( MinV - dVPosI), ( dYDeltaI - dYDeltaF))
|
||||||
|
else
|
||||||
|
dBeamMove = min( ( dTPosF - dTPosI), ( MaxV - dVPosI))
|
||||||
|
end
|
||||||
|
dBeamMove = dBeamMove / 2
|
||||||
|
-- altrimenti la trave resta ferma e la pinza 1 va in presa (si limita lo scivolamento del pezzo)
|
||||||
|
else
|
||||||
|
;
|
||||||
end
|
end
|
||||||
|
|
||||||
-- se serve un grande spostamento e si sta pinzando poco. V trascinatore pinza poco e Y si sposta per prima per recuperare
|
-- se serve un grande spostamento e si sta pinzando poco. V trascinatore pinza poco e Y si sposta per prima per recuperare
|
||||||
@@ -1793,6 +1822,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
end
|
end
|
||||||
-- movimento terminato
|
-- movimento terminato
|
||||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||||
|
EMC.YDELTA = EMC.YDELTANEXT
|
||||||
|
EMC.VDELTA = EMC.VDELTANEXT
|
||||||
|
|
||||||
-- TERZO CASO -> PASSO DEL PELLEGRINO
|
-- TERZO CASO -> PASSO DEL PELLEGRINO
|
||||||
-- non è possibile fare scambio diretto.
|
-- non è possibile fare scambio diretto.
|
||||||
@@ -1841,6 +1872,7 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
dDeltaBeam = dTPosI - dTPosF
|
dDeltaBeam = dTPosI - dTPosF
|
||||||
|
|
||||||
-- a questo punto entrambe le pinze sono in presa sul pezzo.
|
-- a questo punto entrambe le pinze sono in presa sul pezzo.
|
||||||
|
-- trave si muove dal carico allo scarico
|
||||||
-- Il trascinatore si decide in base alla direzione di movimento trave
|
-- Il trascinatore si decide in base alla direzione di movimento trave
|
||||||
-- trascino con morsa allo scarico. Obiettivo mandare Y in posizione per prima
|
-- trascino con morsa allo scarico. Obiettivo mandare Y in posizione per prima
|
||||||
if dDeltaBeam > 0 then
|
if dDeltaBeam > 0 then
|
||||||
@@ -1883,18 +1915,20 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
||||||
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
||||||
-- recupero una corsa massima e l'altra solo di quello che serve
|
-- recupero una corsa massima e l'altra solo di quello che serve
|
||||||
elseif abs( dYDeltaI - dYDeltaF) > dMaxMovePilgrimStepSingleClampY then
|
elseif abs( dYDeltaI - dYDeltaF) > dMaxMovePilgrimStepSingleClampV then
|
||||||
|
-- suddivido il movimento su entrambe le morse
|
||||||
|
local dTotMove = ( dYDeltaF - dYDeltaI) / 2
|
||||||
-- morsa Y arriva in posizione finale
|
-- morsa Y arriva in posizione finale
|
||||||
dYDeltaI = dYDeltaF
|
dVPosA = MaxV - dTotMove
|
||||||
dVPosA = MinV
|
dTPosA = dTPosI - dVPosI + MaxV - dTotMove
|
||||||
dTPosA = dTPosI - dVPosI + MinV
|
|
||||||
dYPosA = dYDeltaF + dTPosA
|
dYPosA = dYDeltaF + dTPosA
|
||||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||||
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
|
table.insert( vCmd, { 11, CalcCharStatus( 'Y', dYDeltaF)})
|
||||||
table.insert( vCmd, { 12, 0})
|
table.insert( vCmd, { 12, 0})
|
||||||
|
dYDeltaI = dYDeltaF
|
||||||
dTPosI = dTPosA
|
dTPosI = dTPosA
|
||||||
EMC.YDELTA = dYDeltaF
|
EMC.YDELTA = dYDeltaF
|
||||||
EMC.VDELTA = dVDeltaI
|
EMC.VDELTA = nil
|
||||||
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
||||||
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
||||||
-- non serve recuperare al massimo della corsa, suddivido movimento in due
|
-- non serve recuperare al massimo della corsa, suddivido movimento in due
|
||||||
@@ -1928,9 +1962,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
end
|
end
|
||||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||||
|
EMC.YDELTA = EMC.YDELTANEXT
|
||||||
-- aggiorno nuova posizione della morsa allo scarico dopo riposizionamento
|
EMC.VDELTA = EMC.VDELTANEXT
|
||||||
dVDeltaI = dVDeltaF
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- imposto i nuovi parametri di aggancio
|
-- imposto i nuovi parametri di aggancio
|
||||||
@@ -1989,17 +2022,19 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
||||||
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
||||||
-- recupero una corsa massima e l'altra solo di quello che serve
|
-- recupero una corsa massima e l'altra solo di quello che serve
|
||||||
elseif abs( dVDeltaI - dVDeltaF) > dMaxMovePilgrimStepSingleClampV then
|
elseif abs( dVDeltaI - dVDeltaF) > dMaxMovePilgrimStepSingleClampY then
|
||||||
-- aggiorno nuova posizione della morsa al carico dopo riposizionamento
|
-- suddivido il movimento su entrambe le morse
|
||||||
dVDeltaI = dVDeltaF
|
local dTotMove = ( dVDeltaI - dVDeltaF) / 2
|
||||||
dYPosA = MaxY
|
-- morsa V arriva in posizione finale
|
||||||
dTPosA = dTPosI + ( MaxY - dYPosI)
|
dYPosA = MinY + dTotMove
|
||||||
|
dTPosA = dTPosI + ( MinY - dYPosI) + dTotMove
|
||||||
dVPosA = dVDeltaF + dTPosA
|
dVPosA = dVDeltaF + dTPosA
|
||||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||||
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
|
table.insert( vCmd, { 12, CalcCharStatus( 'V', dVDeltaF)})
|
||||||
table.insert( vCmd, { 11, 0})
|
table.insert( vCmd, { 11, 0})
|
||||||
|
dVDeltaI = dVDeltaF
|
||||||
dTPosI = dTPosA
|
dTPosI = dTPosA
|
||||||
EMC.YDELTA = dYDeltaI
|
EMC.YDELTA = nil
|
||||||
EMC.VDELTA = dVDeltaF
|
EMC.VDELTA = dVDeltaF
|
||||||
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
-- mi serve riposizonare di nuovo, quindi richiamo funzione in modo ricorsivo
|
||||||
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF, dVDeltaF, bFixedDelta, bFixedPos)
|
||||||
@@ -2034,9 +2069,8 @@ function SpecAdjustCarriages( vCmd, dTPosI, dYDeltaI, dVDeltaI, dTPosF, dYDeltaF
|
|||||||
end
|
end
|
||||||
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
table.insert( vCmd, { 3, 'Y', dYPosA , 'T', dTPosA, 'V', dVPosA})
|
||||||
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
dTPosI, dYDeltaI, dVDeltaI = dTPosF, dYDeltaF, dVDeltaF
|
||||||
|
EMC.YDELTA = EMC.YDELTANEXT
|
||||||
-- aggiorno nuova posizione della morsa al carico dopo riposizionamento
|
EMC.VDELTA = EMC.VDELTANEXT
|
||||||
dYDeltaI = dYDeltaF
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- imposto i nuovi parametri di aggancio
|
-- imposto i nuovi parametri di aggancio
|
||||||
|
|||||||
@@ -1,5 +1,10 @@
|
|||||||
==== Common_FAST Update Log ====
|
==== Common_FAST Update Log ====
|
||||||
|
|
||||||
|
Versione 3.1c1 (27/03/2026)
|
||||||
|
- (SIM-GEN) FASTCLAMPING = true : si suddivide il movimento metà tirando e metà spingendo con altra pinza. Così si aumenta la velocità.
|
||||||
|
- FASTCLAMPING = false : una pinza resta ferma e si fa il movimento tutto con una pinza. Così si limita lo scivolamento del pezzo.
|
||||||
|
- (GEN) In caso di motosega prelevata, si ruota in home. Ticket#2866
|
||||||
|
|
||||||
Versione 3.1a2 (26/01/2026)
|
Versione 3.1a2 (26/01/2026)
|
||||||
- (GEN) Nella G101 il parametro EE era sempre a 4 perchè la variabile veniva settata dopo. Ticket#2796
|
- (GEN) Nella G101 il parametro EE era sempre a 4 perchè la variabile veniva settata dopo. Ticket#2796
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
local InfoCommon_STD_PP = {
|
local InfoCommon_STD_PP = {
|
||||||
NAME = 'Common_FAST', -- nome script PP standard
|
NAME = 'Common_FAST', -- nome script PP standard
|
||||||
VERSION = '3.1a2', -- versione script
|
VERSION = '3.1c1', -- versione script
|
||||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user