Corretto pinzaggio in caso sia in presa una sola pinza

This commit is contained in:
andrea.villa
2026-02-12 08:42:15 +01:00
parent e93405a828
commit 2451607d90
+16 -11
View File
@@ -643,6 +643,9 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
return ( dPrev == nil and dNext == nil) or ( dPrev ~= nil and dNext ~= nil)
end
-- in caso di pinzaggio singolo, mi salvo intervallo minimo e massimo
local dX1DeltaMin, dX1DeltaMax = dX1DeltaCurrMach, dX1DeltaCurrMach
local dX2DeltaMin, dX2DeltaMax = dX2DeltaCurrMach, dX2DeltaCurrMach
local nNextMchId = EgtGetNextActiveOperation( EMC.MCHID)
local bUseSameClampingConfig = true
while nNextMchId and EgtGetOperationType( nNextMchId) ~= MCH_OY.DISP and bUseSameClampingConfig do
@@ -678,9 +681,9 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
if dNextNewX2Delta and dX2DeltaCurrMach and ( InfoUserNotes.bPreSplit or InfoUserNotes.bSplitting) then
local dLastX2Delta = min( dX2DeltaCurrMach, dNextNewX2Delta)
-- controllo che si riesca a scaricare restando nelle corse
if ( b3Raw:getDimX() - dLastX2Delta - UnloadT) + MinX2 > -100 then
bUseSameClampingConfig = false
bUnloadIsOk = false
if ( b3Raw:getDimX() - dLastX2Delta - UnloadT) + MinX2 > -100 then
bUseSameClampingConfig = false
bUnloadIsOk = false
end
end
@@ -699,8 +702,9 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
-- se in presa solo pinza 1
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
if ( dX1DeltaMax - dNextNewX1Delta) < CLAMP_MAXDIST_1CLAMP and ( dNextNewX1Delta - dX1DeltaMin) < CLAMP_MAXDIST_1CLAMP then
dX1DeltaMax = max( dX1DeltaMax, dNextNewX1Delta)
dX1DeltaMin = min( dX1DeltaMin, dNextNewX1Delta)
dDistBack = min( dDistBack, dNextDistBack)
bUseSameClampingConfig = true
else
@@ -709,8 +713,9 @@ function SpecApplyPath( bPreSplit, bSplitting, bPreCut, bCutting, bUnload, bPreR
-- se in presa solo pinza 2
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
if ( dX2DeltaMax - dNextNewX2Delta) < CLAMP_MAXDIST_1CLAMP and ( dNextNewX2Delta - dX2DeltaMin) < CLAMP_MAXDIST_1CLAMP then
dX2DeltaMax = max( dX2DeltaMax, dNextNewX2Delta)
dX2DeltaMin = min( dX2DeltaMin, dNextNewX2Delta)
dDistFront = min( dDistFront, dNextDistFront)
bUseSameClampingConfig = true
else
@@ -1002,6 +1007,8 @@ function GetFinalCutPmax( nMchId)
end
---------------------------------------------------------------------
-- TODO FUNZIONE DA RIVEDERE
-- il calcolo ingombro non deve essere a casi, ma calcolato preciso con intersezione di solidi
function SpecCalcEncumbrance( vtTool, vtArm, vtAux, ptMin, ptMax, bSaw, bChain, dTLen, dTDiam, dTDist)
-- Quota in Z dal punto di inclinazione dei carrelli
local dCompZ = sqrt( 1 - vtTool:getZ() * vtTool:getZ())
@@ -1200,6 +1207,8 @@ function SpecCalcEncumbrance( vtTool, vtArm, vtAux, ptMin, ptMax, bSaw, bChain,
EgtOutLog( ' DistFront=' .. EgtNumToString( dDistFront) .. ' DistBack=' .. EgtNumToString( dDistBack) ..
' HeadFront=' .. EgtNumToString( dHeadFront) .. ' HeadBack=' .. EgtNumToString( dHeadBack), 3)
-- Restituisco ingombri effettivi
dHeadFront = dHeadFront + 30
dHeadBack = dHeadBack + 30
return ( dDistFront - dHeadFront), ( dDistBack - dHeadBack)
end
@@ -1533,10 +1542,6 @@ function GetCarriagesRepositioningCmd( vCmd, dTPosI, dX1DeltaI, dX2DeltaI, dTPos
local dX1PosA, dX2PosA, dTPosA
local dGainOnReclamping = BD.GAIN_RECLAMPING or 1000
if EMC.MCHID == 10175 then
ciao = 5
end
-- se primo scambio
local MyMinX1 = MinX1