From 6768f10da035dee02e5f4de2988b7cdccd7dc04c Mon Sep 17 00:00:00 2001 From: Victoria Plitt Date: Sun, 7 Aug 2022 17:49:02 +0300 Subject: Fine Tuning. LAB out of gamut. --- .../Dialogs/ColorSelectionViewVM.cs | 7 ++-- .../Dialogs/VectorFineTuningDialogVM.cs | 30 ++++++++++-------- .../Tango.PPC.JobsV2/Models/BrushStopModel.cs | 37 ++++++++++++++++++++++ .../Tango.PPC.JobsV2/Models/TrialsLogModel.cs | 3 -- 4 files changed, 58 insertions(+), 19 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs index 923f045f1..52f112954 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/ColorSelectionViewVM.cs @@ -1064,9 +1064,10 @@ namespace Tango.PPC.Jobs.Dialogs && VectorFineTuningDialogVM.SelectedLog.B != null) { _selectedBrushStop.PreventPropertyUpdate = true; - _selectedBrushStop.L = (double)VectorFineTuningDialogVM.SelectedLog.L; - _selectedBrushStop.A = (double)VectorFineTuningDialogVM.SelectedLog.A; - _selectedBrushStop.B = (double)VectorFineTuningDialogVM.SelectedLog.B; + _selectedBrushStop.L = (double)VectorFineTuningDialogVM.SelectedLog.SuggestionL; + _selectedBrushStop.A = (double)VectorFineTuningDialogVM.SelectedLog.SuggestionA; + _selectedBrushStop.B = (double)VectorFineTuningDialogVM.SelectedLog.SuggestionB; + //if not tested _selectedBrushStop.PreventPropertyUpdate = false; _selectedBrushStop.ConvertColor(); } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs index 9a3230ea8..1352fa79d 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Dialogs/VectorFineTuningDialogVM.cs @@ -494,7 +494,6 @@ namespace Tango.PPC.Jobs.Dialogs ActiveLogModel.SuggestionL = TargetL; ActiveLogModel.SuggestionA = TargetA; ActiveLogModel.SuggestionB = TargetB; - ActiveLogModel.HasSuggestionsLAB = true; TrialsLogitems = new SynchronizedObservableCollection(); TrialsLogitems.Add(ActiveLogModel); //TEST @@ -687,7 +686,7 @@ namespace Tango.PPC.Jobs.Dialogs BrushStopModel.Black = SelectedLog.TestK; } - if(false == SelectedLog.HasSuggestionsLAB) + if(!SelectedLog.IsTested) { double lastSuggestionL = TargetL; double lastSuggestionA = TargetA; @@ -803,17 +802,16 @@ namespace Tango.PPC.Jobs.Dialogs double lastSuggestionL = TargetL; double lastSuggestionA = TargetA; double lastSuggestionB = TargetB; - if (!ActiveLogModel.HasSuggestionsLAB) + + TrialsLogModel lastTested = TrialsLogitems.OrderBy(x => x.TrialNumber).LastOrDefault(y=>y.IsTested); + if(lastTested != null) { - TrialsLogModel lastTested = TrialsLogitems.OrderBy(x => x.TrialNumber).LastOrDefault(y=>y.IsTested); - if(lastTested != null) - { - lastSuggestionL = lastTested.SuggestionL; - lastSuggestionA = lastTested.SuggestionA; - lastSuggestionB = lastTested.SuggestionB; - } - CalculateSuggestionLAB(lastSuggestionL, lastSuggestionA, lastSuggestionB, ActiveLogModel); + lastSuggestionL = lastTested.SuggestionL; + lastSuggestionA = lastTested.SuggestionA; + lastSuggestionB = lastTested.SuggestionB; } + CalculateSuggestionLAB(lastSuggestionL, lastSuggestionA, lastSuggestionB, ActiveLogModel); + BrushStopModel.PreventPropertyUpdate = true; BrushStopModel.L = ActiveLogModel.SuggestionL; BrushStopModel.A = ActiveLogModel.SuggestionA; @@ -821,7 +819,14 @@ namespace Tango.PPC.Jobs.Dialogs BrushStopModel.PreventPropertyUpdate = false; //calculate CMYK - BrushStopModel.ConvertColorToVolume(); + BrushStopModel.FineTuningConverter(); + if(BrushStopModel.IsOutOfGamut) + { + ActiveLogModel.SuggestionL = BrushStopModel.L; + ActiveLogModel.SuggestionA = BrushStopModel.A; + ActiveLogModel.SuggestionB = BrushStopModel.B; + } + BrushStopModel.ColorSpace = ColorSpaces.LAB; var settings = SettingsManager.Default.GetOrCreate(); @@ -1160,7 +1165,6 @@ namespace Tango.PPC.Jobs.Dialogs trial.SuggestionL = LimitToRange((lastSuggestionL + (TargetL - (double)MeasuredL)),0, 100) ; trial.SuggestionA = LimitToRange((lastSuggestionA + (TargetA - (double)MeasuredA)), -128, 127); trial.SuggestionB = LimitToRange((lastSuggestionB + (TargetB - (double)MeasuredB )), -128, 127); - trial.HasSuggestionsLAB = true; return true; } diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs index 07bf2fa5c..e71edc7a7 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/BrushStopModel.cs @@ -1397,6 +1397,43 @@ namespace Tango.PPC.Jobs.Models } } + public void FineTuningConverter() + { + RequiredMaxLiquidTest = true; + + ColorSpaces colorSpace = ColorSpaces.LAB; + BrushStop stop = CreateBrushStop(colorSpace); + try + { + IsBusy = true; + var output = _converter.Convert(stop, SegmentModel.Job.Machine.Configuration, SegmentModel.Job.Rml, false, false, false); + + _cyan = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Cyan).Volume); + _yellow = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Yellow).Volume); + _magenta = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Magenta).Volume); + _black = (output.SingleCoordinates.OutputLiquids.SingleOrDefault(x => x.LiquidType == PMR.ColorLab.LiquidType.Black).Volume); + IsOutOfGamut = output.OutOfGamut; + if(IsOutOfGamut) + { + BrushStop stopLAB = CreateBrushStop(ColorSpaces.Volume); + + IsBusy = true; + var outputLAB = _converter.Convert(stopLAB, SegmentModel.Job.Machine.Configuration, SegmentModel.Job.Rml, false, false, false); + _l = output.SingleCoordinates.L; + _a = output.SingleCoordinates.A; + _b = output.SingleCoordinates.B; + } + } + catch (Exception ex) + { + LogManager.Log(ex, "An error occurred while trying to get volume => RGB from conversion engine." + ex); + } + finally + { + IsBusy = false; + } + } + public void RaiseOffsetChanged() { RaisePropertyChanged(nameof(OffsetPercent)); diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/TrialsLogModel.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/TrialsLogModel.cs index 3b16a65a2..c6dfdd4a9 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/TrialsLogModel.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.JobsV2/Models/TrialsLogModel.cs @@ -64,8 +64,6 @@ namespace Tango.PPC.Jobs.Models public double SuggestionA { get; set; } [BsonIgnore] public double SuggestionB { get; set; } - [BsonIgnore] - public bool HasSuggestionsLAB { get; set; } public double C { get; set; } public double M { get; set; } @@ -195,7 +193,6 @@ namespace Tango.PPC.Jobs.Models IsTested = false; IsSelectionEnable = true; IsBest = false; - HasSuggestionsLAB = false; } #region Methods -- cgit v1.3.1