- In GetStrategyQuality rimossi stati lavorazione dettagliati, si utilizzano quelli aggregati.

- Adeguate strategia che utilizzavano i dati dettagliati
This commit is contained in:
andrea.villa
2025-09-16 10:11:56 +02:00
parent e1bce72db5
commit edeb99bdb9
3 changed files with 33 additions and 24 deletions
+7 -13
View File
@@ -594,16 +594,19 @@ function FeatureLib.GetStrategyQuality( Parameter)
elseif type( Parameter) == "string" then
local sMachiningTag = Parameter
-- #### STATI DI LAVORAZIONE AGGREGATI #### --
-- FINE = lavorazione eccellente, non dovrebbero esscerci scheggiature
if sMachiningTag == 'FINE' then
-- BEST = lavorazione eccellente, la migliore qualità che si possa ottenere
if sMachiningTag == 'BEST' then
nQuality = 5
-- FINE = lavorazione ottima, non dovrebbero esscerci scheggiature
elseif sMachiningTag == 'FINE' then
nQuality = 4
-- 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
-- SEMI = lavorazione accettabile, potrebbe avere scheggiature minime, mancano piccoli dettagli alla lavorazione (es. se vengono lasciati i raggi fresa sugli spigoli)
elseif sMachiningTag == 'SEMI' then
nQuality = 2.5
-- ROUGH =
-- ROUGH = Lavorazione scadente, scheggiatura molto probabile, potrebbe non essere precisa
elseif sMachiningTag == 'ROUGH' then
nQuality = 1
-- #### UTENSILI DI LAVORAZIONE UTILIZZATI #### --
@@ -615,15 +618,6 @@ function FeatureLib.GetStrategyQuality( Parameter)
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
+11 -2
View File
@@ -160,7 +160,15 @@ function GetMortiseMachiningResult( Proc, Result)
TotalResult.sStatus = Result.Milling.sStatus
TotalResult.nCompletionIndex = FeatureLib.GetFeatureCompletionIndex( 100)
TotalResult.dMRR = ( Result.Milling.dMRR + Result.Cutting.dMRR) / 2
TotalResult.nQuality = FeatureLib.GetStrategyQuality( EgtIf( Strategy.Machining.bCuttingWithMill, 'STD', 'FINE'))
local sQuality
if not Strategy.Machining.bCuttingWithMill and Strategy.Machining.bAntiSplint then
sQuality = 'BEST'
elseif Strategy.Machining.bAntiSplint then
sQuality = 'FINE'
else
sQuality = 'STD'
end
TotalResult.nQuality = FeatureLib.GetStrategyQuality( sQuality)
TotalResult.nFeatureRotationIndex = GetFeatureRotationIndex( Proc)
TotalResult.sInfo = ''
-- lavorazione mortasa completa
@@ -168,7 +176,8 @@ function GetMortiseMachiningResult( Proc, Result)
TotalResult.sStatus = Result.Milling.sStatus
TotalResult.nCompletionIndex = FeatureLib.GetFeatureCompletionIndex( 100)
TotalResult.dMRR = Result.Milling.dMRR
TotalResult.nQuality = FeatureLib.GetStrategyQuality( 'MILL')
local sQuality = EgtIf( Strategy.Parameters.bAntiSplint, 'BEST', 'STD')
TotalResult.nQuality = FeatureLib.GetStrategyQuality( sQuality)
TotalResult.nFeatureRotationIndex = GetFeatureRotationIndex( Proc)
TotalResult.sInfo = ''
-- lavorazione incompleta
+15 -9
View File
@@ -20,6 +20,7 @@ local Strategy = {}
local function GetDrillingStrategy( Proc, Part)
local ToolSearchParameters = {}
local Machining = {}
local sQuality
-- se lavorazione orizzontale
if Proc.FeatureInfo.bIsDrillHorizontal then
@@ -65,7 +66,12 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.sStatus = 'Completed'
Strategy.Result.nCompletionIndex = 5
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo or Machining[2].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( EgtIf( bDouble, 'DrillBothSide', 'DrillOneSide'))
if bDouble or not Proc.FeatureInfo.bIsDrillOpen then
sQuality = 'FINE'
else
sQuality = 'ROUGH'
end
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( sQuality)
Strategy.Result.sInfo = ''
else
Strategy.Result.sStatus = 'Not-Completed'
@@ -74,7 +80,7 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.nCompletionIndex = FeatureLib.GetFeatureCompletionIndex( dMachinedPrercentage)
Strategy.Result.sInfo = 'Drill not complete, left ' .. tostring( 100 - ceil( dMachinedPrercentage)) .. '%'
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo or Machining[2].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( EgtIf( bDouble, 'DrillBothSide', 'DrillOneSide'))
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'FINE') -- se non completo, anche se fosse foro singolo, comunque non esce dall'altra parte, quindi non scheggia
end
end
-- se lavorazione verticale
@@ -102,7 +108,7 @@ local function GetDrillingStrategy( Proc, Part)
end
-- se possono lavorare entrambi e si deve fare lavorazione doppia e si riesce a completare
if Drilling.ToolInfo.nToolIndex and Drilling2.ToolInfo.nToolIndex and
if Drilling.ToolInfo.nToolIndex and Drilling2.ToolInfo.nToolIndex and
( Strategy.Parameters.sDrillingMode == 'FORCE_TWO' or Strategy.Parameters.sDrillingMode == 'AUTO') and
Drilling.ToolInfo.dResidualDepth + Drilling2.ToolInfo.dResidualDepth < Proc.FeatureInfo.dDrillLen then
@@ -125,7 +131,7 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.nCompletionIndex = 5
Strategy.Result.sInfo = ''
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'DrillBothSide')
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'FINE')
-- se utensile 1 esegue completamente
elseif Drilling.ToolInfo.nToolIndex and Drilling.ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL and
@@ -139,7 +145,7 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.sStatus = 'Completed'
Strategy.Result.nCompletionIndex = 5
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'DrillOneSide')
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( EgtIf( Proc.FeatureInfo.bIsDrillOpen, 'ROUGH', 'FINE'))
Strategy.Result.sInfo = ''
-- se utensile 2 esegue completamente
elseif Drilling2.ToolInfo.nToolIndex and Drilling2.ToolInfo.dResidualDepth < 10 * GEO.EPS_SMALL and
@@ -154,7 +160,7 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.sStatus = 'Completed'
Strategy.Result.nCompletionIndex = 5
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'DrillOneSide')
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( EgtIf( Proc.FeatureInfo.bIsDrillOpen, 'ROUGH', 'FINE'))
Strategy.Result.sInfo = ''
-- se possono lavorare entrambi
elseif Drilling.ToolInfo.nToolIndex and Drilling2.ToolInfo.nToolIndex then
@@ -183,7 +189,7 @@ local function GetDrillingStrategy( Proc, Part)
end
-- voto
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'DrillBothSide')
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'FINE')
-- se utensile 1 non completo
elseif Drilling.ToolInfo.nToolIndex and ( Strategy.Parameters.sDrillingMode ~= 'FORCE_TWO' or Proc.FeatureInfo.bIsDrillOpen) then
Drilling.sDepth = Proc.FeatureInfo.dDrillLen - Drilling.ToolInfo.dResidualDepth
@@ -199,7 +205,7 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.nCompletionIndex = FeatureLib.GetFeatureCompletionIndex( dMachinedPrercentage)
Strategy.Result.sInfo = 'Drill not complete, left ' .. tostring( 100 - ceil( dMachinedPrercentage)) .. '%'
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'DrillOneSide')
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'FINE')
-- se utensile 2 non completo
elseif Drilling2.ToolInfo.nToolIndex and Strategy.Parameters.sDrillingMode ~= 'FORCE_TWO' then
Drilling2.sDepth = Proc.FeatureInfo.dDrillLen - Drilling2.ToolInfo.dResidualDepth
@@ -216,7 +222,7 @@ local function GetDrillingStrategy( Proc, Part)
Strategy.Result.nCompletionIndex = FeatureLib.GetFeatureCompletionIndex( dMachinedPrercentage)
Strategy.Result.sInfo = 'Drill not complete, left ' .. tostring( 100 - ceil( dMachinedPrercentage)) .. '%'
Strategy.Result.dMRR = MachiningLib.GetToolMRR( Machining[1].ToolInfo)
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'DrillOneSide')
Strategy.Result.nQuality = FeatureLib.GetStrategyQuality( 'FINE')
else
local sMessage
-- se non sono state trovate punte