Nuova gestione qualità lavorazione unificata
This commit is contained in:
+53
-38
@@ -573,49 +573,64 @@ function FeatureLib.GetFeatureCompletionIndex( dCompletionPercentage)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- TODO funzione da rivedere. Se è fatto di fresa con antischeggia deve avere qualità massima, o comunque più alta di fresa normale
|
||||
-- funzione che restituisce qualità della lavorazione in base agli utensili utilizzati
|
||||
function FeatureLib.GetFeatureQuality( sTypeTools)
|
||||
local nQuality = 5
|
||||
local TypeTools = EgtSplitString( sTypeTools)
|
||||
|
||||
-- indice in base a utensile
|
||||
for i=1, #TypeTools do
|
||||
if TypeTools[i] == 'Blade' or TypeTools[i] == 'Drill' then
|
||||
nQuality = min( nQuality, 5)
|
||||
elseif TypeTools[i] == 'Mill' then
|
||||
nQuality = min( nQuality, 4)
|
||||
elseif TypeTools[i] == 'Chainsaw' then
|
||||
nQuality = min( nQuality, 2)
|
||||
else
|
||||
nQuality = min( nQuality, 1)
|
||||
end
|
||||
end
|
||||
-- se si utilizzano più utensili si perde in qualità
|
||||
if #TypeTools > 1 then
|
||||
nQuality = max( nQuality - 1, 0.5)
|
||||
end
|
||||
|
||||
return nQuality
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function FeatureLib.GetStrategyQuality( Machinings)
|
||||
function FeatureLib.GetStrategyQuality( Parameter)
|
||||
local nQuality = 0
|
||||
|
||||
local dQualityNumerator = 0
|
||||
local dQualityDenominator = 0
|
||||
for i = 1, #Machinings do
|
||||
local Machining = Machinings[i]
|
||||
local dWeightedQuality = TOOLS[Machining.nToolIndex].nQuality * Machining.dLengthToMachine
|
||||
if Machining.bIsApplicable then
|
||||
dQualityNumerator = dQualityNumerator + dWeightedQuality
|
||||
dQualityDenominator = dQualityDenominator + Machining.dLengthToMachine
|
||||
-- se viene passata una tabella, si calcola media pesata di tutte le lavorazioni
|
||||
if type( Parameter) == "table" then
|
||||
local Machinings = Parameter
|
||||
local dQualityNumerator = 0
|
||||
local dQualityDenominator = 0
|
||||
for i = 1, #Machinings do
|
||||
local Machining = Machinings[i]
|
||||
local dWeightedQuality = FeatureLib.GetStrategyQuality( TOOLS[Machining.nToolIndex].sFamily) * Machining.dLengthToMachine
|
||||
if Machining.bIsApplicable then
|
||||
dQualityNumerator = dQualityNumerator + dWeightedQuality
|
||||
dQualityDenominator = dQualityDenominator + Machining.dLengthToMachine
|
||||
end
|
||||
end
|
||||
nQuality = dQualityNumerator / dQualityDenominator
|
||||
-- se viene passato un tag, si ritorna direttamente il voto
|
||||
elseif type( Parameter) == "string" then
|
||||
local sMachiningTag = Parameter
|
||||
-- #### STATI DI LAVORAZIONE AGGREGATI #### --
|
||||
-- FINE = lavorazione eccellente, non dovrebbero esscerci scheggiature
|
||||
if sMachiningTag == 'FINE' then
|
||||
nQuality = 5
|
||||
-- STD = lavorazione accettabile, potrebbe avere scheggiature minime
|
||||
elseif sMachiningTag == 'STD' then
|
||||
nQuality = 3
|
||||
-- SEMI = lavorato accettabile, la lavorazione potrebbe avere scheggiature minime, mancano piccoli dettagli alla lavorazione
|
||||
elseif sMachiningTag == 'SEMI' then
|
||||
nQuality = 2.5
|
||||
-- ROUGH =
|
||||
elseif sMachiningTag == 'ROUGH' then
|
||||
nQuality = 1
|
||||
-- #### UTENSILI DI LAVORAZIONE UTILIZZATI #### --
|
||||
elseif sMachiningTag == 'SAWBLADE' then
|
||||
nQuality = 5
|
||||
elseif sMachiningTag == 'DRILLBIT' then
|
||||
nQuality = 4
|
||||
elseif sMachiningTag == 'MILL' then
|
||||
nQuality = 3
|
||||
elseif sMachiningTag == 'MORTISE' then
|
||||
nQuality = 1
|
||||
-- #### STATI DI LAVORAZIONE DETTAGLIATI #### --
|
||||
elseif sMachiningTag == 'DrillBothSide' or sMachiningTag == 'DrillBlind' then
|
||||
nQuality = 5
|
||||
elseif sMachiningTag == 'MillPlusBladeAS' then
|
||||
nQuality = 4.5
|
||||
elseif sMachiningTag == 'ChainPlusBladeAS' or sMachiningTag == 'MillPlusMillAS' then
|
||||
nQuality = 4
|
||||
elseif sMachiningTag == 'DrillOneSide' then
|
||||
nQuality = 3
|
||||
else
|
||||
nQuality = 0
|
||||
end
|
||||
else
|
||||
nQuality = 0
|
||||
end
|
||||
|
||||
nQuality = dQualityNumerator / dQualityDenominator
|
||||
|
||||
return nQuality
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user