diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index ee9123e..4ee799a 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -818,8 +818,10 @@ local function GetFeatureInfoAndDependency( vProcSingleRot, Part) local Proc = vProcSingleRot[i] if Proc.Topology.sName == 'HeadCut' then HeadProcOriginal = Proc + HeadProcOriginal.bIsOriginalHeadcut = true elseif Proc.Topology.sName == 'TailCut' then TailProcOriginal = Proc + TailProcOriginal.bIsOriginalTailcut = true end -- se feature abilitata alla lavorazione if Proc.nFlg ~= 0 then @@ -1663,13 +1665,15 @@ local function GetCombinationListFromMatrix( ProcessingsOnPart, PartInfo, bRePro for nProc = 1, #ProcessingsOnPart.Rotation[1] do -- Si controlla sempre la rotazione 1 perchè la dipendenza di una feature da un'altra non dipende dalla rotazione -- se feature disattivata perchè eseguita da master a lei associata dichiaro comunque eseguita - if ProcessingsOnPart.Rotation[1][nProc].nFlg == 0 and ProcessingsOnPart.Rotation[1][nProc].nIndexMasterProc then - ProcessingsOnPart.Rotation[1][nProc].nIndexRotation = nUnloadPos - table.insert( SingleCombination.Rot0, ProcessingsOnPart.Rotation[1][nProc]) + local ProcOnFirstRotation = ProcessingsOnPart.Rotation[1][nProc] + if ProcOnFirstRotation.nFlg == 0 and ProcOnFirstRotation.nIndexMasterProc then + ProcOnFirstRotation.nIndexRotation = nUnloadPos + table.insert( SingleCombination.Rot0, ProcOnFirstRotation) SingleCombination.nComplete = SingleCombination.nComplete + 1 else local nOffsetIndex = EgtIf( SingleCombination.bPartInCombiIsInverted, 4, 0) - if not ID.IsHeadCut( ProcessingsOnPart.Rotation[1][nProc]) and not ID.IsTailCut( ProcessingsOnPart.Rotation[1][nProc]) then + if not ( ( ID.IsHeadCut( ProcOnFirstRotation) and ProcOnFirstRotation.bIsOriginalHeadcut) + or ( ID.IsTailCut( ProcOnFirstRotation) and ProcOnFirstRotation.bIsOriginalTailcut)) then -- ciclo sulle rotazioni local nNextRot = nUnloadPos local ResultsList = {} @@ -1724,12 +1728,11 @@ local function GetCombinationListFromMatrix( ProcessingsOnPart, PartInfo, bRePro table.insert( SingleCombination.Rot0, ProcessingsOnPart.Rotation[nUnloadPos+nOffsetIndex][nProc]) SingleCombination.nNotExecute = SingleCombination.nNotExecute + 1 end - else - if ID.IsHeadCut( ProcessingsOnPart.Rotation[1+nOffsetIndex][nProc]) then - SingleCombination.nIndexHeadCutInVProc = nProc - elseif ID.IsTailCut( ProcessingsOnPart.Rotation[1+nOffsetIndex][nProc]) then - SingleCombination.nIndexTailCutInVProc = nProc - end + end + if ID.IsHeadCut( ProcessingsOnPart.Rotation[1+nOffsetIndex][nProc]) then + SingleCombination.nIndexHeadCutInVProc = nProc + elseif ID.IsTailCut( ProcessingsOnPart.Rotation[1+nOffsetIndex][nProc]) then + SingleCombination.nIndexTailCutInVProc = nProc end end end