diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index e6fc279..b78df6e 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -986,8 +986,10 @@ local function GetFeatureInfoAndDependency( vProcSingleRot, Part, bIsFlipRot) HeadProc.Topology = {} TailProc.Topology = {} + HeadProc.Topology.bIsThrough = true HeadProc.Topology.sFamily = 'HeadCut' HeadProc.Topology.sName = 'HeadCut' + TailProc.Topology.bIsThrough = true TailProc.Topology.sFamily = 'TailCut' TailProc.Topology.sName = 'TailCut' HeadProc.AvailableStrategies = GetStrategies( HeadProc, Part.sAISetupConfig) @@ -1169,25 +1171,31 @@ local function CalculateStrategies( vProcSingleRot, Part) -- se taglio di testa o coda sostitutivo non applicabile si ripristina l'originale if Proc.AvailableStrategies[nIndexCurrentStrategy].Result.sStatus ~= 'Completed' then if ID.IsHeadCut( Proc) and not Proc.bIsOriginalHeadcut then + -- si riabilita taglio di testa originale Proc.HeadProcOriginal.nFlg = 1 Proc.HeadProcOriginal.nIndexMasterProc = nil + -- il taglio attuale va riportato alla sua topologia originale Proc.Topology = FeatureLib.ClassifyTopology( Proc, Part) - -- TODO è corretto? se era già un taglio a zero non lo devo più fare - if Proc.Topology.sName == 'HeadCut' then - Proc.nFlg = 0 + Proc.AvailableStrategies = GetStrategies( Proc, Part.sAISetupConfig) + for j = #Proc.SlaveProcIndexes, 1, -1 do + if Proc.SlaveProcIndexes[j] == Proc.HeadProcOriginal.nIndexInVProc then + table.remove( Proc.SlaveProcIndexes, j) + end end - Proc.SlaveProcIndexes = nil bToReprocess = true break elseif ID.IsTailCut( Proc) and not Proc.bIsOriginalTailcut then + -- si riabilita il taglio di coda originale Proc.TailProcOriginal.nFlg = 1 Proc.TailProcOriginal.nIndexMasterProc = nil + -- il taglio attuale va riportato alla sua topologia originale Proc.Topology = FeatureLib.ClassifyTopology( Proc, Part) - -- TODO è corretto? se era già un taglio a zero non lo devo più fare - if Proc.Topology.sName == 'TailCut' then - Proc.nFlg = 0 + Proc.AvailableStrategies = GetStrategies( Proc, Part.sAISetupConfig) + for j = #Proc.SlaveProcIndexes, 1, -1 do + if Proc.SlaveProcIndexes[j] == Proc.TailProcOriginal.nIndexInVProc then + table.remove( Proc.SlaveProcIndexes, j) + end end - Proc.SlaveProcIndexes = nil bToReprocess = true break end diff --git a/Strategies/Standard/TAILCUT/TAILCUT.lua b/Strategies/Standard/TAILCUT/TAILCUT.lua index 807d1e6..1f98c51 100644 --- a/Strategies/Standard/TAILCUT/TAILCUT.lua +++ b/Strategies/Standard/TAILCUT/TAILCUT.lua @@ -194,7 +194,7 @@ function TAILCUT.Make( bAddMachining, Proc, Part, CustomParameters) return bAreAllMachiningsAdded, Strategy.Result - elseif not Proc.bIsOriginalTailcut then + elseif not Strategy.bSplit and not Proc.bIsOriginalTailcut then Strategy.Machining = CalculateTailCut( Proc, Part)