From 5bf01bcb09314ecf290edb08f1040aad2e26a9a2 Mon Sep 17 00:00:00 2001 From: Evgeny Redikultsev Date: Sat, 18 Oct 2025 20:04:08 +0500 Subject: [PATCH] Change excel reading process --- .../Forces/ForceCombinationFromFileDTO.cs | 4 +- .../Documentation/Verification/Materials.shpj | 158 +++++++++++++++++- .../UI/DataContexts/CircleViewPrimitive.cs | 1 + .../Libraries/LoaderCalculator.dll | Bin 98816 -> 98816 bytes .../Forces/ForceCombinationByFactorVM.cs | 3 +- .../Forces/ForceCombinationFromFileVM.cs | 35 +++- .../Forces/ForceCombinationFromFileView.xaml | 4 +- .../Forces/ForceCombinationViewerVM.cs | 48 +++++- .../Forces/ForceCombinationViewerView.xaml | 36 +++- .../Forces/ForceCombinationViewerView.xaml.cs | 12 -- .../Graphs/MaterialDiagramViewModel.cs | 9 +- .../Models/Forces/ColumnedFileProperty.cs | 1 + .../Models/Forces/ForceCombinationFromFile.cs | 7 +- .../Forces/IForceCombinationFromFile.cs | 1 + .../ForceCombinationFromFileUpdateStrategy.cs | 1 + .../Logics/GetTupleByExcelReaderLogic.cs | 17 +- .../Forces/Logics/GetTuplesFromFileLogic.cs | 13 +- .../Forces/Logics/IGetTuplesFromFileLogic.cs | 1 + .../Decorators/RestrictStrainDecorator.cs | 17 +- .../Materials/Logics/ElasticMaterialLogic.cs | 26 ++- .../NdmPrimitives/MeshElasticLogic.cs | 4 +- 21 files changed, 337 insertions(+), 61 deletions(-) diff --git a/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs index 093c66a..f6346bd 100644 --- a/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs +++ b/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs @@ -18,7 +18,9 @@ namespace DataAccess.DTOs public bool SetInGravityCenter { get; set; } [JsonProperty("ForcePoint")] public IPoint2D ForcePoint { get; set; } = new Point2DDTO(); - + [JsonProperty("SkipWrongRows")] + public bool SkipWrongRows { get; set; } = false; + public ForceCombinationFromFileDTO(Guid id) { Id = id; diff --git a/StructureHelper/Documentation/Verification/Materials.shpj b/StructureHelper/Documentation/Verification/Materials.shpj index 64de14e..b93f81c 100644 --- a/StructureHelper/Documentation/Verification/Materials.shpj +++ b/StructureHelper/Documentation/Verification/Materials.shpj @@ -2,7 +2,7 @@ "$id": "1", "$type": "RootObject", "FileVersion": { - "Id": "0e4e721a-1df3-4693-999d-3670b14f7113", + "Id": "f5247ddd-f79f-4943-9e09-764e2a47d0d3", "VersionNumber": 1, "SubVersionNumber": 4 }, @@ -20,7 +20,7 @@ "$id": "4", "$type": "CrossSectionNdmAnalysis", "Id": "4027079c-d866-4266-b15e-e2a59bb69bfa", - "Name": "New NDM Analysis", + "Name": "Materials", "Tags": "#New group", "VersionProcessor": { "$id": "5", @@ -1579,6 +1579,158 @@ "TensionForSLS": true, "MaterialLogicId": "b97e8168-76a1-4e24-ae98-9aa38edd1e9a" } + }, + { + "$id": "165", + "$type": "HeadMaterial", + "Id": "a975c01f-2028-4aa7-93b1-0ef1cfc73580", + "Name": "A240", + "Color": "#FF6ACF46", + "HelperMaterial": { + "$id": "166", + "$type": "ReinforcementLibMaterial", + "Id": "6ec6f688-21ea-4d7a-83a0-66ec7d2ef268", + "MaterialEntityId": "c47ebbd7-2e0c-4247-81b6-dc3fbd064bab", + "SafetyFactors": { + "$id": "167", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "168", + "$type": "HeadMaterial", + "Id": "257fe163-585d-4f7a-a96a-3634e9b6861e", + "Name": "A400", + "Color": "#FF61881E", + "HelperMaterial": { + "$id": "169", + "$type": "ReinforcementLibMaterial", + "Id": "a0547d68-4b5a-42c6-bf20-cc1f9caa8157", + "MaterialEntityId": "ea422282-3465-433c-9b93-c5bbfba5a904", + "SafetyFactors": { + "$id": "170", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "171", + "$type": "HeadMaterial", + "Id": "d5dd42c1-372f-4217-a85f-e3eaaa753b6c", + "Name": "A500", + "Color": "#FFECAA46", + "HelperMaterial": { + "$id": "172", + "$type": "ReinforcementLibMaterial", + "Id": "ca7ce2f8-7bbc-4379-8166-8fc7a4adefc0", + "MaterialEntityId": "045b54b1-0bbf-41fd-a27d-aeb20f600bb4", + "SafetyFactors": { + "$id": "173", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "174", + "$type": "HeadMaterial", + "Id": "e4245f23-f51a-4ed1-a4e5-5f7133028a27", + "Name": "A600", + "Color": "#FF3B68D7", + "HelperMaterial": { + "$id": "175", + "$type": "ReinforcementLibMaterial", + "Id": "4479ec6e-8cf6-48ec-94b7-8645f6aa7ac5", + "MaterialEntityId": "e3cfc6fb-fbd0-47dd-ab4a-79c030704acf", + "SafetyFactors": { + "$id": "176", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "177", + "$type": "HeadMaterial", + "Id": "14b73c38-249d-4c0f-afcc-a1b2ef7268f3", + "Name": "A800", + "Color": "#FFCA9F48", + "HelperMaterial": { + "$id": "178", + "$type": "ReinforcementLibMaterial", + "Id": "b626d13f-f754-411e-8092-1e92e9a27161", + "MaterialEntityId": "6f0882ef-53bf-464e-acf7-da421a43a825", + "SafetyFactors": { + "$id": "179", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "180", + "$type": "HeadMaterial", + "Id": "bab99d80-6773-492c-ad88-1ad8cb948d58", + "Name": "A1000", + "Color": "#FFF5812A", + "HelperMaterial": { + "$id": "181", + "$type": "ReinforcementLibMaterial", + "Id": "b05e32ce-38ae-44f2-bb2c-428d92876544", + "MaterialEntityId": "509fbaae-a3de-43c2-aae6-33387908dc43", + "SafetyFactors": { + "$id": "182", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "183", + "$type": "HeadMaterial", + "Id": "31b4492a-bfe7-4fcf-8f1d-b2f3df11e837", + "Name": "K1400", + "Color": "#FFF150B3", + "HelperMaterial": { + "$id": "184", + "$type": "ReinforcementLibMaterial", + "Id": "0693f06e-f1c6-4e00-acfc-11047344052a", + "MaterialEntityId": "1b44e9eb-d19d-4fd5-9755-33ae01683dc1", + "SafetyFactors": { + "$id": "185", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } + }, + { + "$id": "186", + "$type": "HeadMaterial", + "Id": "1c1a7ca3-aae7-4ca8-b5bd-dea1b9753e12", + "Name": "K1500", + "Color": "#FFC98453", + "HelperMaterial": { + "$id": "187", + "$type": "ReinforcementLibMaterial", + "Id": "6a3ac6d5-7c5c-42d5-a49e-66e267e8cbd2", + "MaterialEntityId": "93c48a27-ab37-4bd2-aeb8-2a7247e74a1b", + "SafetyFactors": { + "$id": "188", + "$type": "ListOfMaterialSafetyFactor", + "$values": [] + }, + "MaterialLogicId": "54c4fe40-8f82-4995-8930-81e65e97edb9" + } } ] }, @@ -1596,7 +1748,7 @@ } }, "WorkPlaneProperty": { - "$id": "165", + "$id": "189", "$type": "WorkPlanePropertyDTO", "Id": "31ec91ea-d0bc-4426-9ca4-e22e17889457", "GridSize": 0.05, diff --git a/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs index 06dfd3b..ad957d9 100644 --- a/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs +++ b/StructureHelper/Infrastructure/UI/DataContexts/CircleViewPrimitive.cs @@ -31,6 +31,7 @@ namespace StructureHelper.Infrastructure.UI.DataContexts public CircleViewPrimitive(IEllipseNdmPrimitive primitive) : base(primitive) { + this.primitive = primitive; DivisionViewModel = new HasDivisionViewModel(primitive.DivisionSize); } diff --git a/StructureHelper/Libraries/LoaderCalculator.dll b/StructureHelper/Libraries/LoaderCalculator.dll index 9e66def04bb1ef29845b5e1cd56fe267d2184def..383d1f5948d85bf29ea0fb9bb5e2065458992f7d 100644 GIT binary patch literal 98816 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 DpFLY) literal 98816 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
    =;KtJpHxDAJj{c*D3w&5`GXN|b+HR5eX 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%0AB80i+_?-l9j36ac4w-;TSmFvoqR9~Kl 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 AQ2+n{ diff --git a/StructureHelper/Windows/Forces/ForceCombinationByFactorVM.cs b/StructureHelper/Windows/Forces/ForceCombinationByFactorVM.cs index aba7a37..cd31158 100644 --- a/StructureHelper/Windows/Forces/ForceCombinationByFactorVM.cs +++ b/StructureHelper/Windows/Forces/ForceCombinationByFactorVM.cs @@ -19,7 +19,8 @@ namespace StructureHelper.Windows.Forces public ForceTupleVM ForceTupleVM => forceTupleVM; public FactoredCombinationPropertyVM CombinationProperty { - get => combinationProperty; set + get => combinationProperty; + set { combinationProperty = value; OnPropertyChanged(nameof(CombinationProperty)); diff --git a/StructureHelper/Windows/Forces/ForceCombinationFromFileVM.cs b/StructureHelper/Windows/Forces/ForceCombinationFromFileVM.cs index ef5fc62..bef535c 100644 --- a/StructureHelper/Windows/Forces/ForceCombinationFromFileVM.cs +++ b/StructureHelper/Windows/Forces/ForceCombinationFromFileVM.cs @@ -1,4 +1,6 @@ -using StructureHelper.Windows.ViewModels; +using StructureHelper.Infrastructure; +using StructureHelper.Windows.ViewModels; +using StructureHelper.Windows.ViewModels.Errors; using StructureHelper.Windows.ViewModels.Forces; using StructureHelperCommon.Models.Forces; using System; @@ -6,6 +8,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Input; namespace StructureHelper.Windows.Forces { @@ -14,16 +17,44 @@ namespace StructureHelper.Windows.Forces private readonly IForceCombinationFromFile model; private ListOfFilesVM files; private FactoredCombinationPropertyVM combinationProperty; + private RelayCommand showCombinationViewerCommand; public FactoredCombinationPropertyVM CombinationProperty { - get => combinationProperty; set + get => combinationProperty; + set { combinationProperty = value; OnPropertyChanged(nameof(CombinationProperty)); } } + public bool SkipWrongRows + { + get + { + return model.SkipWrongRows; + } + + set + { + model.SkipWrongRows = value; + OnPropertyChanged(nameof(SkipWrongRows)); + } + } + + public ICommand ShowCombinationViewerCommand + { + get => showCombinationViewerCommand ??= new RelayCommand( + o =>SafetyProcessor.RunSafeProcess(ShowCombinationViewer, "Combination viewer")); + } + + private void ShowCombinationViewer() + { + var wnd = new ForceCombinationViewerView(model); + wnd.ShowDialog(); + } + public ListOfFilesVM Files { get => files; set diff --git a/StructureHelper/Windows/Forces/ForceCombinationFromFileView.xaml b/StructureHelper/Windows/Forces/ForceCombinationFromFileView.xaml index 70fb2d1..8412d4a 100644 --- a/StructureHelper/Windows/Forces/ForceCombinationFromFileView.xaml +++ b/StructureHelper/Windows/Forces/ForceCombinationFromFileView.xaml @@ -7,7 +7,7 @@ xmlns:uc="clr-namespace:StructureHelper.Windows.UserControls" d:DataContext="{d:DesignInstance local:ForceCombinationFromFileVM}" mc:Ignorable="d" - Title="Force Combination By Files" Height="330" Width="350" WindowStartupLocation="CenterScreen" ResizeMode="NoResize"> + Title="Force Combination By Files" Height="380" Width="350" WindowStartupLocation="CenterScreen" ResizeMode="NoResize"> @@ -18,6 +18,8 @@ + + + + + + + + + + + + + + + + + + diff --git a/StructureHelper/Windows/Forces/ForceCombinationViewerView.xaml.cs b/StructureHelper/Windows/Forces/ForceCombinationViewerView.xaml.cs index 8fd138b..0c27a4a 100644 --- a/StructureHelper/Windows/Forces/ForceCombinationViewerView.xaml.cs +++ b/StructureHelper/Windows/Forces/ForceCombinationViewerView.xaml.cs @@ -1,17 +1,5 @@ using StructureHelperCommon.Models.Forces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; namespace StructureHelper.Windows.Forces { diff --git a/StructureHelper/Windows/Graphs/MaterialDiagramViewModel.cs b/StructureHelper/Windows/Graphs/MaterialDiagramViewModel.cs index 23403cb..fcae488 100644 --- a/StructureHelper/Windows/Graphs/MaterialDiagramViewModel.cs +++ b/StructureHelper/Windows/Graphs/MaterialDiagramViewModel.cs @@ -206,7 +206,7 @@ namespace StructureHelper.Windows.Graphs for (double s = minValue; s < maxValue; s += step) { double strain = s * factor; - double diagramValue = loaderMaterial.Diagram.Invoke(loaderMaterial.DiagramParameters, strain) * factor; + double diagramValue = loaderMaterial.Diagram.Invoke(strain) * factor; StressEntity stressEntity = new() { LimitState = limitState, @@ -255,11 +255,12 @@ namespace StructureHelper.Windows.Graphs GraphService.SetVisualProps(lineSeries, VisualProps); } var chartValues = new ChartValues(); - for (double s = minValue; s < maxValue; s += step) + for (double strain = minValue; strain < maxValue; strain += step) { - double diagramValue = Math.Round(loaderMaterial.Diagram.Invoke(loaderMaterial.DiagramParameters, s * factor)) * factor * UnitConstants.Stress; + double factoredStrain = strain * factor; + double diagramValue = Math.Round(loaderMaterial.Diagram.Invoke(factoredStrain)) * factor * UnitConstants.Stress; chartValues.Add(diagramValue); - labels.Add(Convert.ToString(Math.Round(s, 4))); + labels.Add(Convert.ToString(Math.Round(strain, 4))); } lineSeries.Values = chartValues; SeriesCollection.Add(lineSeries); diff --git a/StructureHelperCommon/Models/Forces/ColumnedFileProperty.cs b/StructureHelperCommon/Models/Forces/ColumnedFileProperty.cs index 78e15d2..e64f80f 100644 --- a/StructureHelperCommon/Models/Forces/ColumnedFileProperty.cs +++ b/StructureHelperCommon/Models/Forces/ColumnedFileProperty.cs @@ -24,6 +24,7 @@ namespace StructureHelperCommon.Models.Forces public double GlobalFactor { get; set; } = 1d; /// public List ColumnProperties { get; } = new(); + public bool SkipWrongRows { get; set; } = false; public ColumnedFileProperty(Guid id) { diff --git a/StructureHelperCommon/Models/Forces/ForceCombinationFromFile.cs b/StructureHelperCommon/Models/Forces/ForceCombinationFromFile.cs index 3beac30..da24bf4 100644 --- a/StructureHelperCommon/Models/Forces/ForceCombinationFromFile.cs +++ b/StructureHelperCommon/Models/Forces/ForceCombinationFromFile.cs @@ -35,6 +35,7 @@ namespace StructureHelperCommon.Models.Forces public IPoint2D ForcePoint { get; set; } = new Point2D(); public IFactoredCombinationProperty CombinationProperty { get; set; } = new FactoredCombinationProperty(Guid.NewGuid()); + public bool SkipWrongRows { get; set; } = false; public object Clone() { @@ -46,7 +47,11 @@ namespace StructureHelperCommon.Models.Forces public List GetCombinations() { - getTupleFromFileLogic ??= new GetTuplesFromFileLogic() { TraceLogger = new ShiftTraceLogger()}; + getTupleFromFileLogic = new GetTuplesFromFileLogic() + { + TraceLogger = new ShiftTraceLogger(), + SkipWrongRows = SkipWrongRows, + }; factoredCombination = new ForceFactoredList(); factoredCombination.ForceTuples.Clear(); propertyUpdateStrategy ??= new FactoredCombinationPropertyUpdateStrategy(); diff --git a/StructureHelperCommon/Models/Forces/IForceCombinationFromFile.cs b/StructureHelperCommon/Models/Forces/IForceCombinationFromFile.cs index db61825..9a3a4b6 100644 --- a/StructureHelperCommon/Models/Forces/IForceCombinationFromFile.cs +++ b/StructureHelperCommon/Models/Forces/IForceCombinationFromFile.cs @@ -15,5 +15,6 @@ namespace StructureHelperCommon.Models.Forces /// List of file properties for import combination /// List ForceFiles { get; set; } + bool SkipWrongRows { get; set; } } } diff --git a/StructureHelperCommon/Models/Forces/Logics/ForceCombinationFromFileUpdateStrategy.cs b/StructureHelperCommon/Models/Forces/Logics/ForceCombinationFromFileUpdateStrategy.cs index e265699..5707d83 100644 --- a/StructureHelperCommon/Models/Forces/Logics/ForceCombinationFromFileUpdateStrategy.cs +++ b/StructureHelperCommon/Models/Forces/Logics/ForceCombinationFromFileUpdateStrategy.cs @@ -35,6 +35,7 @@ namespace StructureHelperCommon.Models.Forces if (ReferenceEquals(targetObject, sourceObject)) { return; } InitializeLogics(); baseUpdateStrategy.Update(targetObject, sourceObject); + targetObject.SkipWrongRows = sourceObject.SkipWrongRows; CheckObject.IsNull(targetObject.CombinationProperty, "Target object combination property"); CheckObject.IsNull(sourceObject.CombinationProperty, "Source object combination property"); combinationPropertyUpdateStrategy.Update(targetObject.CombinationProperty, sourceObject.CombinationProperty); diff --git a/StructureHelperCommon/Models/Forces/Logics/GetTupleByExcelReaderLogic.cs b/StructureHelperCommon/Models/Forces/Logics/GetTupleByExcelReaderLogic.cs index 2c556b5..86e15a4 100644 --- a/StructureHelperCommon/Models/Forces/Logics/GetTupleByExcelReaderLogic.cs +++ b/StructureHelperCommon/Models/Forces/Logics/GetTupleByExcelReaderLogic.cs @@ -24,6 +24,7 @@ namespace StructureHelperCommon.Models.Forces public IShiftTraceLogger? TraceLogger { get; set; } public IColumnedFileProperty ForceFileProperty { get; set; } + public bool SkipWrongRows { get; internal set; } public IForceTuple GetForceTuple(IExcelDataReader? reader) { @@ -38,10 +39,24 @@ namespace StructureHelperCommon.Models.Forces throw new StructureHelperException(ErrorStrings.NullReference + $": reader value for column {item.Name} in file {ForceFileProperty.FilePath}"); } var readerValue = reader.GetValue(item.Index); + if (readerValue is null) + { + if (SkipWrongRows == true) + { + continue; + } + else + { + throw new StructureHelperException(ErrorStrings.NullReference + $": wrong row in file {ForceFileProperty.FilePath}, total row number n = {reader.RowCount}"); + } + } var strValue = readerValue.ToString(); double factor = ForceFileProperty.GlobalFactor * item.Factor * 1000d; var doubleValue = Convert.ToDouble(strValue) * factor; - fillArrayLogic ??= new FillTupleArrayByColumnNameLogic() { TraceLogger = TraceLogger }; + fillArrayLogic ??= new FillTupleArrayByColumnNameLogic() + { + TraceLogger = TraceLogger + }; fillArrayLogic.ProceeForceTupleArray(nDouble, doubleValue, item.Name, ForceFileProperty.FilePath); } TraceLogger?.AddMessage($"String values: Nz = {nDouble[0]}, Mx = {nDouble[1]}, My = {nDouble[2]} were gained", TraceLogStatuses.Debug); diff --git a/StructureHelperCommon/Models/Forces/Logics/GetTuplesFromFileLogic.cs b/StructureHelperCommon/Models/Forces/Logics/GetTuplesFromFileLogic.cs index e89b8b4..9a65496 100644 --- a/StructureHelperCommon/Models/Forces/Logics/GetTuplesFromFileLogic.cs +++ b/StructureHelperCommon/Models/Forces/Logics/GetTuplesFromFileLogic.cs @@ -4,6 +4,7 @@ using StructureHelperCommon.Infrastructures.Interfaces; using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text; @@ -35,6 +36,7 @@ namespace StructureHelperCommon.Models.Forces public IColumnedFileProperty ForceFileProperty { get; set; } public IShiftTraceLogger? TraceLogger { get; set; } + public bool SkipWrongRows { get; set; } = false; public List GetTuples() { @@ -56,7 +58,7 @@ namespace StructureHelperCommon.Models.Forces // Create an Excel reader using (var reader = ExcelReaderFactory.CreateReader(stream)) { - // Skip the first two header rows if necessary (adjust based on structure) + // Skip the first header rows if necessary (adjust based on structure) for (int i = 0; i < skipRows; i++) { reader.Read(); // Skip row @@ -65,7 +67,8 @@ namespace StructureHelperCommon.Models.Forces excelReaderLogic ??= new GetTupleByExcelReaderLogic() { ForceFileProperty = ForceFileProperty, - TraceLogger = TraceLogger + TraceLogger = TraceLogger, + SkipWrongRows = SkipWrongRows }; // Loop through the rows @@ -74,11 +77,13 @@ namespace StructureHelperCommon.Models.Forces try { IForceTuple newTuple = excelReaderLogic.GetForceTuple(reader); - result.Add(newTuple); + if (! result.Any(x => x.Mx == newTuple.Mx && x.My == newTuple.My && x.Nz == newTuple.Nz)) + { + result.Add(newTuple); + } } catch (Exception ex) { - //to do implement case when file has a data in the row, but thus date is not correct string errorString = ErrorStrings.DataIsInCorrect + $": incorrect data in file {ForceFileProperty.FilePath}, " + ex.Message; TraceLogger?.AddMessage(errorString, TraceLogStatuses.Error); throw new StructureHelperException(errorString); diff --git a/StructureHelperCommon/Models/Forces/Logics/IGetTuplesFromFileLogic.cs b/StructureHelperCommon/Models/Forces/Logics/IGetTuplesFromFileLogic.cs index 3b5d60e..85b3717 100644 --- a/StructureHelperCommon/Models/Forces/Logics/IGetTuplesFromFileLogic.cs +++ b/StructureHelperCommon/Models/Forces/Logics/IGetTuplesFromFileLogic.cs @@ -5,6 +5,7 @@ namespace StructureHelperCommon.Models.Forces { public interface IGetTuplesFromFileLogic : ILogic { + bool SkipWrongRows { get; set; } IColumnedFileProperty ForceFileProperty { get; set; } List GetTuples(); diff --git a/StructureHelperLogics/MaterialBuilders/Decorators/RestrictStrainDecorator.cs b/StructureHelperLogics/MaterialBuilders/Decorators/RestrictStrainDecorator.cs index b225503..0c0ac1f 100644 --- a/StructureHelperLogics/MaterialBuilders/Decorators/RestrictStrainDecorator.cs +++ b/StructureHelperLogics/MaterialBuilders/Decorators/RestrictStrainDecorator.cs @@ -12,6 +12,9 @@ namespace StructureHelperLogics.MaterialBuilders internal class RestrictStrainDecorator : IMaterialBuilder { IMaterialBuilder builder; + private double maxTensileStrain; + private double maxCompressionStrain; + public IMaterialOption MaterialOption { get; set; } public RestrictStrainDecorator(IMaterialBuilder builder) @@ -25,11 +28,8 @@ namespace StructureHelperLogics.MaterialBuilders var option = (RestrictStrainOption)MaterialOption; var material = new Material(); material.InitModulus = builder.GetMaterial().InitModulus; - material.DiagramParameters = new List() - { - option.MaxTensileStrain, - option.MaxCompessionStrain - }; + maxTensileStrain = option.MaxTensileStrain; + maxCompressionStrain = option.MaxCompessionStrain; material.Diagram = GetStressDiagram; return material; } @@ -39,10 +39,9 @@ namespace StructureHelperLogics.MaterialBuilders CheckObject.CompareTypes(typeof(RestrictStrainOption), MaterialOption.GetType()); } - private double GetStressDiagram(IEnumerable parameters, double strain) + private double GetStressDiagram(double strain) { - var maxTensileStrain = parameters.ToList()[0]; - var maxCompressionStrain = parameters.ToList()[1]; + if (strain > maxTensileStrain || strain < maxCompressionStrain) { return 0d; @@ -50,7 +49,7 @@ namespace StructureHelperLogics.MaterialBuilders else { var material = builder.GetMaterial(); - return material.Diagram.Invoke(parameters, strain); + return material.Diagram.Invoke(strain); } } } diff --git a/StructureHelperLogics/Models/Materials/Logics/ElasticMaterialLogic.cs b/StructureHelperLogics/Models/Materials/Logics/ElasticMaterialLogic.cs index 15b8448..b8d3368 100644 --- a/StructureHelperLogics/Models/Materials/Logics/ElasticMaterialLogic.cs +++ b/StructureHelperLogics/Models/Materials/Logics/ElasticMaterialLogic.cs @@ -7,12 +7,15 @@ using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; +using static System.Runtime.InteropServices.JavaScript.JSType; namespace StructureHelperLogics.Models.Materials { internal class ElasticMaterialLogic : IElasticMaterialLogic { - private List parameters; + private double modulusOfElasticity; + private double compressiveStrength; + private double tensileStrength; public IMaterial GetLoaderMaterial(IElasticMaterial elasticMaterial, LimitStates limitState, CalcTerms calcTerm, double factor = 1d) { @@ -20,23 +23,16 @@ namespace StructureHelperLogics.Models.Materials material.InitModulus = elasticMaterial.Modulus; IMaterialFactorLogic factorLogic = new MaterialFactorLogic(elasticMaterial.SafetyFactors); var factors = factorLogic.GetTotalFactor(limitState, calcTerm); - parameters = new List() - { - elasticMaterial.Modulus, - elasticMaterial.CompressiveStrength * factors.Compressive * factor, - elasticMaterial.TensileStrength * factors.Tensile * factor - }; - material.DiagramParameters = parameters; - material.Diagram = GetStressByStrain; - return material; + modulusOfElasticity = elasticMaterial.Modulus; + compressiveStrength = (-1d) * elasticMaterial.CompressiveStrength * factors.Compressive * factor; + tensileStrength = elasticMaterial.TensileStrength * factors.Tensile * factor; + material.Diagram = GetStressByStrain; + return material; } - private double GetStressByStrain(IEnumerable parameters1, double strain) + private double GetStressByStrain(double strain) { - double modulus = parameters.First(); - double stress = modulus * strain; - double compressiveStrength = (-1d) * parameters.ElementAt(1); - double tensileStrength = parameters.ElementAt(2); + double stress = modulusOfElasticity * strain; if (stress > tensileStrength || stress < compressiveStrength) { return 0d; } else { return stress; } } diff --git a/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs b/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs index 77bda68..9d092a6 100644 --- a/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs +++ b/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs @@ -37,9 +37,9 @@ namespace StructureHelperLogics.Services.NdmPrimitives { var material = ndm.Material; var materialFunc = material.Diagram; - var newMaterialFunc = (IEnumerable parameters, double strain) => strain * material.InitModulus; + var newMaterialFunc = (double strain) => strain * material.InitModulus; var existingPrestrain = ndm.PrestrainLogic.GetAll().Sum(x => x.PrestrainValue); - var newPrestrain = materialFunc(null, existingPrestrain) / material.InitModulus; + var newPrestrain = materialFunc(existingPrestrain) / material.InitModulus; ndm.Material.Diagram = newMaterialFunc; ndm.PrestrainLogic.DeleteAll(); ndm.PrestrainLogic.Add(PrestrainTypes.Prestrain, newPrestrain);