- in BatchProcessNew, in scrittura log txt, gestito caso in cui non sono state trovate strategie (ma al momento non possibile perchè quelle feature sono escluse a priori dal collect)
- in BeamExec -> AddFeatureResultToGlobalList refactoring e aggiunta gestione feature sostituita (ma al momento non possibile per problemi di riferimenti incrociati nella stessa tabella)
This commit is contained in:
+28
-7
@@ -764,6 +764,7 @@ local function GetFeatureInfoAndDependency( vProcSingleRot, Part)
|
||||
local ProcB = vProcSingleRot[j]
|
||||
-- non si controlla la feature con se stessa o se feature disabilitata
|
||||
if i ~= j and ProcB.nFlg ~= 0 then
|
||||
-- TODO problemi di riferimenti a elementi della stessa tabella... spariscono le SubstitutedProc
|
||||
-- verifico se il taglio può essere saltato perchè è nella stessa posizione del taglio di testa
|
||||
if Proc.nPrc == 340 and ProcB.Topology.sFamily == 'Cut' and
|
||||
AreSameVectorApprox( ProcB.Faces[1].vtN, X_AX()) and abs( ProcB.Faces[1].ptCenter:getX() - Part.b3Part:getMax():getX()) < 10 * GEO.EPS_SMALL then
|
||||
@@ -1021,6 +1022,25 @@ end
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- TODO gestire Proc che non hanno una ChosenStrategy, perchè sono specchiate, multi (si legge il risultato da un'altra feature?) o non è stata trovata una strategia
|
||||
local function AddFeatureResultToGlobalList( Proc, nRotation)
|
||||
local sStrategyId
|
||||
local sStatus
|
||||
local nCompletionIndex
|
||||
local dCompositeRating
|
||||
local sInfo
|
||||
-- TODO non funziona perchè il riferimento ad un elemento della stessa tabella fa sparire la Proc sostituita (GetFeatureInfoAndDependency)
|
||||
if Proc.IsSubstitutedBy then
|
||||
sStrategyId = Proc.IsSubstitutedBy.ChosenStrategy.sStrategyId
|
||||
sStatus = Proc.IsSubstitutedBy.ChosenStrategy.Result.sStatus
|
||||
nCompletionIndex = Proc.IsSubstitutedBy.ChosenStrategy.Result.nCompletionIndex
|
||||
dCompositeRating = Proc.IsSubstitutedBy.ChosenStrategy.Result.dCompositeRating
|
||||
sInfo = Proc.IsSubstitutedBy.ChosenStrategy.Result.sInfo
|
||||
else
|
||||
sStrategyId = Proc.ChosenStrategy.sStrategyId
|
||||
sStatus = Proc.ChosenStrategy.Result.sStatus
|
||||
nCompletionIndex = Proc.ChosenStrategy.Result.nCompletionIndex
|
||||
dCompositeRating = Proc.ChosenStrategy.Result.dCompositeRating
|
||||
sInfo = Proc.ChosenStrategy.Result.sInfo
|
||||
end
|
||||
RESULT[#RESULT+1] = {
|
||||
sType = 'Feature',
|
||||
id = Proc.id,
|
||||
@@ -1031,11 +1051,11 @@ local function AddFeatureResultToGlobalList( Proc, nRotation)
|
||||
nRotation = nRotation,
|
||||
idPart = Proc.idPart,
|
||||
ChosenStrategy = {
|
||||
sStrategyName = Proc.ChosenStrategy.sStrategyId,
|
||||
sStatus = Proc.ChosenStrategy.Result.sStatus,
|
||||
nCompletionIndex = Proc.ChosenStrategy.Result.nCompletionIndex,
|
||||
dCompositeRating = Proc.ChosenStrategy.Result.dCompositeRating,
|
||||
sInfo = Proc.ChosenStrategy.Result.sInfo
|
||||
sStrategyName = sStrategyId,
|
||||
sStatus = sStatus,
|
||||
nCompletionIndex = nCompletionIndex,
|
||||
dCompositeRating = dCompositeRating,
|
||||
sInfo = sInfo
|
||||
},
|
||||
AvailableStrategies = BeamLib.TableCopyDeep( Proc.AvailableStrategies)
|
||||
}
|
||||
@@ -1102,9 +1122,10 @@ local function CalculateMachinings( vProc, Part, nInitialRotation)
|
||||
bAreAllApplyOk = false
|
||||
end
|
||||
end
|
||||
-- scrivo risultato in tabella globale
|
||||
AddFeatureResultToGlobalList( Proc, nCurrRotation)
|
||||
end
|
||||
-- scrivo risultato in tabella globale
|
||||
-- TODO serve un modo per aggiungere anche le feature non lavorabili (no strategie disponibili); vengono scartate al Collect
|
||||
AddFeatureResultToGlobalList( Proc, nCurrRotation)
|
||||
end
|
||||
|
||||
-- ripristino pezzo in posizione originale
|
||||
|
||||
Reference in New Issue
Block a user