- Corretto calcolo scarico pezzo per rotazione

- Corretto mancato aggiornamento posizione carrelli in caso di raggruppamento di più lavorazioni
This commit is contained in:
andrea.villa
2026-01-28 13:47:03 +01:00
parent d2b8530c30
commit 6d4b1b0254
+6 -2
View File
@@ -691,6 +691,8 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
-- se entrambe le morse in presa
if dX1DeltaCurrMach and dX2DeltaCurrMach then
if ( ( max( dX1DeltaCurrMach, dNextNewX1Delta) - min( dX2DeltaCurrMach, dNextNewX2Delta)) < CLAMP_MAXDIST_2CLAMP) then
if dNextNewX1Delta > dX1DeltaCurrMach then dX1DeltaCurrMach = dNextNewX1Delta end
if dNextNewX2Delta < dX2DeltaCurrMach then dX2DeltaCurrMach = dNextNewX2Delta end
dDistFront = min( dDistFront, dNextDistFront)
dDistBack = min( dDistBack, dNextDistBack)
bUseSameClampingConfig = true
@@ -701,6 +703,7 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
elseif dX1DeltaCurrMach then
-- se la posizione richiesta della pinza non è oltre la posizione attuale e non sono troppo distante, prendo valori vecchi
if ( dNextNewX1Delta - dX1DeltaCurrMach) > 0 - 100 * GEO.EPS_SMALL and ( dNextNewX1Delta - dX1DeltaCurrMach) < CLAMP_MAXDIST_1CLAMP then
if dNextNewX1Delta > dX1DeltaCurrMach then dX1DeltaCurrMach = dNextNewX1Delta end
dDistBack = min( dDistBack, dNextDistBack)
bUseSameClampingConfig = true
else
@@ -710,6 +713,7 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
elseif dX2DeltaCurrMach then
-- se la posizione richiesta della pinza non è oltre la posizione attuale e non sono troppo distante, prendo valori vecchi
if ( dX2DeltaCurrMach - dNextNewX2Delta) > 0 - 100 * GEO.EPS_SMALL and ( dX2DeltaCurrMach - dNextNewX2Delta) < CLAMP_MAXDIST_1CLAMP then
if dNextNewX2Delta < dX2DeltaCurrMach then dX2DeltaCurrMach = dNextNewX2Delta end
dDistFront = min( dDistFront, dNextDistFront)
bUseSameClampingConfig = true
else
@@ -1491,12 +1495,12 @@ function SpecCalcPreRot()
local nLastEntId = EgtGetLastInGroup( EMC.PATHID)
local vAxes = EmtGetAxesPos( nLastEntId)
if #vAxes > 0 then EMC.TPOS = vAxes[1] end
local dX1CurrPos = EgtIf( EMC.X1DELTA, EMC.X1DELTA, MinX1 - EMC.TPOS)
local dX1CurrPos = EgtIf( EMC.X1DELTA, EMC.X1DELTA, nil)
local dX1LastPos = min ( MaxX1 - LoadT, EMC.X2DELTA + ( MinX1 - MaxX2))
EMC.X1DELTANEXT = dX1LastPos
EMC.X2DELTANEXT = nil
-- effettuo scambio
vCmdPre = GetCarriagesRepositioningCmd( vCmdPre, EMC.TPOS, nil, EMC.X2DELTA, nil, dX1LastPos, nil)
vCmdPre = GetCarriagesRepositioningCmd( vCmdPre, EMC.TPOS, dX1CurrPos, EMC.X2DELTA, nil, dX1LastPos, nil)
-- recupero nuova posizione carrelli
SpecSetCarrPosFromCmds( vCmdPre)
EgtOutLog( ' *[PR1]', 1)