Corretto indice rotazione da verificare in caso di soluzione invertita. Si aggiunge un offset di 4, l'indice nella tabella delle rotazioni sono 5-6-7-8
This commit is contained in:
@@ -1080,7 +1080,7 @@ local function OrderFeatures( vProc)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
local function AddFeatureResultToGlobalList( Proc, OptionalParameters)
|
||||
local function AddFeatureResultToGlobalList( Part, Proc, OptionalParameters)
|
||||
local sStrategyId
|
||||
local sStatus
|
||||
local dCompletionIndex
|
||||
@@ -1099,13 +1099,14 @@ local function AddFeatureResultToGlobalList( Proc, OptionalParameters)
|
||||
if Proc.isVirtualProc then
|
||||
return
|
||||
end
|
||||
local ChosenStrategyTable = PROCESSINGS[Proc.nIndexPartInParts].Rotation[Proc.nIndexRotation][Proc.nIndexMasterProc].ChosenStrategy
|
||||
local nOffsetIndex = EgtIf( Part.bPartInCombiIsInverted, 4, 0)
|
||||
local ChosenStrategyTable = PROCESSINGS[Proc.nIndexPartInParts].Rotation[Proc.nIndexRotation+nOffsetIndex][Proc.nIndexMasterProc].ChosenStrategy
|
||||
if ChosenStrategyTable then
|
||||
sStrategyId = ChosenStrategyTable.sStrategyId
|
||||
sStatus = ChosenStrategyTable.Result.sStatus
|
||||
dCompletionIndex = ChosenStrategyTable.Result.dCompletionIndex
|
||||
dCompositeRating = ChosenStrategyTable.Result.dCompositeRating
|
||||
local idFeature = PROCESSINGS[Proc.nIndexPartInParts].Rotation[Proc.nIndexRotation][Proc.nIndexMasterProc].idFeature
|
||||
local idFeature = PROCESSINGS[Proc.nIndexPartInParts].Rotation[Proc.nIndexRotation+nOffsetIndex][Proc.nIndexMasterProc].idFeature
|
||||
sApplyInfo = 'Skipped. Feature machined: ' .. EgtNumToString( idFeature)
|
||||
end
|
||||
elseif Proc.ChosenStrategy then
|
||||
@@ -1194,15 +1195,16 @@ local function CalculateMachinings( vProc, Part, nInitialRotation)
|
||||
_, _ = StrategyScript.Make( true, Proc, Part, Proc.ChosenStrategy)
|
||||
-- se tutte le strategie disponibili non sono applicabili
|
||||
else
|
||||
local nOffsetIndex = EgtIf( Part.bPartInCombiIsInverted, 4, 0)
|
||||
-- se non esiste una strategia scelta (non dovrebbe mai succedere) cancello da lista generale
|
||||
PROCESSINGS[Proc.nIndexPartInParts].Rotation[Proc.nIndexRotation][Proc.nIndexInVProc].ChosenStrategy = nil
|
||||
PROCESSINGS[Proc.nIndexPartInParts].Rotation[Proc.nIndexRotation+nOffsetIndex][Proc.nIndexInVProc].ChosenStrategy = nil
|
||||
|
||||
-- TODO dare messaggio che la feature non è stata eseguita nonostante la presenza di strategie disponibili
|
||||
|
||||
end
|
||||
end
|
||||
-- scrivo risultato in tabella globale
|
||||
AddFeatureResultToGlobalList( Proc, { nRotation = nCurrRotation})
|
||||
AddFeatureResultToGlobalList( Part, Proc, { nRotation = nCurrRotation})
|
||||
end
|
||||
|
||||
-- ripristino pezzo in posizione originale
|
||||
@@ -1693,7 +1695,7 @@ function BeamExec.ProcessMachinings( PARTS)
|
||||
MACHININGS.Info.nSplitCutRotation = 1
|
||||
-- anche se non ci sono feature da eseguire, bisogna comunque scrivrere i risultati
|
||||
for nProc = 1, #vProc do
|
||||
AddFeatureResultToGlobalList( vProc[nProc])
|
||||
AddFeatureResultToGlobalList( PARTS[nPart], vProc[nProc])
|
||||
end
|
||||
-- altrimenti si fanno tutti i calcoli
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user