diff --git a/.gitignore b/.gitignore index d596b37..95c0a05 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *\bin *\packages *\.vs +**\publish diff --git a/App.config b/App.config deleted file mode 100644 index 69b16fd..0000000 --- a/App.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/FieldVisualizer/FieldVisualizer.csproj b/FieldVisualizer/FieldVisualizer.csproj index 018e535..529ae38 100644 --- a/FieldVisualizer/FieldVisualizer.csproj +++ b/FieldVisualizer/FieldVisualizer.csproj @@ -1,16 +1,11 @@ - net472 + net6.0-windows10.0.18362.0 + enable true - Library + disable + 10.0.18362.0 - - - - - - - diff --git a/FieldVisualizer/FieldVisualizer.csproj.user b/FieldVisualizer/FieldVisualizer.csproj.user index ef6a2d2..88a5509 100644 --- a/FieldVisualizer/FieldVisualizer.csproj.user +++ b/FieldVisualizer/FieldVisualizer.csproj.user @@ -1,29 +1,4 @@  - - - Code - - - Code - - - Code - - - - - Designer - - - Designer - - - Designer - - - Designer - - \ No newline at end of file diff --git a/FiledVisualzerDemo/FieldVisualzerDemo.csproj b/FiledVisualzerDemo/FieldVisualzerDemo.csproj index e7df97a..cd9acb3 100644 --- a/FiledVisualzerDemo/FieldVisualzerDemo.csproj +++ b/FiledVisualzerDemo/FieldVisualzerDemo.csproj @@ -81,11 +81,5 @@ - - - {87064b50-3b7c-4a91-af4a-941c6f95d997} - FieldVisualizer - - \ No newline at end of file diff --git a/StructureHelper.csproj b/StructureHelper.csproj deleted file mode 100644 index 14efb18..0000000 --- a/StructureHelper.csproj +++ /dev/null @@ -1,473 +0,0 @@ - - - - - Debug - AnyCPU - {BAD27E27-4444-4300-ADF8-E21042C0781D} - WinExe - StructureHelper - StructureHelper - v4.7.2 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - true - - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 1 - 1.0.0.%2a - false - true - true - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - On - true - - - 485E3BCF396A57578712F0EAAD11D48E4FE19BD6 - - - StructureHelper_TemporaryKey.pfx - - - true - - - true - - - - packages\Autofac.6.4.0\lib\netstandard2.0\Autofac.dll - - - False - Libraries\LoaderCalculator.dll - - - packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - True - - - packages\System.Windows.Interactivity.WPF.2.0.20525\lib\net40\Microsoft.Expression.Interactions.dll - - - packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - True - - - - packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - - packages\System.Diagnostics.DiagnosticSource.6.0.0\lib\net461\System.Diagnostics.DiagnosticSource.dll - True - - - - packages\System.Memory.4.5.5\lib\net461\System.Memory.dll - True - - - - packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - True - - - packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll - True - - - - packages\System.Windows.Interactivity.WPF.2.0.20525\lib\net40\System.Windows.Interactivity.dll - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - - - - - - - - - - - - - - - - - - - - PrimitivePopup.xaml - - - - - - - - - - - - - - - - - - - AddMaterialView.xaml - - - - App.xaml - Code - - - SetPrestrainView.xaml - - - InterpolateTuplesView.xaml - - - PartialFactorsView.xaml - - - SafetyFactorsView.xaml - - - CalculationPropertyView.xaml - - - CalculationResultView.xaml - - - ForceCalculatorView.xaml - - - ForcesResultsView.xaml - - - SourceToTargetControl.xaml - - - ColorPickerView.xaml - - - - - - - - - - - - - - - - - EllipseTemplate.xaml - - - ForceCombinationView.xaml - - - ForceTupleControl.xaml - - - - - - - RectangleTemplate.xaml - - - HeadMaterialsView.xaml - - - VisualPropertyView.xaml - - - PrimitivePropertiesView.xaml - - - SelectPrimitivesView.xaml - - - RectangleBeamView.xaml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - - - - {87064B50-3B7C-4A91-AF4A-941C6F95D997} - FieldVisualizer - - - {5dfec3fd-9677-47bb-9e88-eb71828b5913} - StructureHelperCommon - - - {330bef5b-15be-4d2c-a750-b1ae50fb2be3} - StructureHelperLogics - - - - - False - Microsoft .NET Framework 4.7.2 %28x86 и x64%29 - true - - - False - .NET Framework 3.5 SP1 - false - - - - - - - \ No newline at end of file diff --git a/StructureHelper.csproj.user b/StructureHelper.csproj.user deleted file mode 100644 index 1bbb2f7..0000000 --- a/StructureHelper.csproj.user +++ /dev/null @@ -1,16 +0,0 @@ - - - - publish\ - - - - - - ru-RU - false - - - false - - \ No newline at end of file diff --git a/StructureHelper.sln b/StructureHelper.sln index dd8c1da..5d89334 100644 --- a/StructureHelper.sln +++ b/StructureHelper.sln @@ -3,54 +3,48 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.2.32630.192 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructureHelper", "StructureHelper.csproj", "{BAD27E27-4444-4300-ADF8-E21042C0781D}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructureHelperTests", "StructureHelperTests\StructureHelperTests.csproj", "{7AC480BB-8A34-4913-B7AA-C6A5D7F35509}" - ProjectSection(ProjectDependencies) = postProject - {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3} = {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3} - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructureHelperLogics", "StructureHelperLogics\StructureHelperLogics.csproj", "{330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}" - ProjectSection(ProjectDependencies) = postProject - {5DFEC3FD-9677-47BB-9E88-EB71828B5913} = {5DFEC3FD-9677-47BB-9E88-EB71828B5913} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructureHelperCommon", "StructureHelperCommon\StructureHelperCommon.csproj", "{5DFEC3FD-9677-47BB-9E88-EB71828B5913}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FieldVisualizer", "FieldVisualizer\FieldVisualizer.csproj", "{87064B50-3B7C-4A91-AF4A-941C6F95D997}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FieldVisualzerDemo", "FiledVisualzerDemo\FieldVisualzerDemo.csproj", "{C92A5F2E-567B-48C9-A524-5740DB03509D}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructureHelper", "StructureHelper\StructureHelper.csproj", "{271311DE-67EE-4EE8-93EA-EA8BFD366EC6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructureHelperCommon", "StructureHelperCommon\StructureHelperCommon.csproj", "{F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructureHelperLogics", "StructureHelperLogics\StructureHelperLogics.csproj", "{C9192AE7-EE6D-409C-A05C-3549D78CBB34}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FieldVisualizer", "FieldVisualizer\FieldVisualizer.csproj", "{6CAC5B83-81F3-47C2-92A1-0F94A58491C2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BAD27E27-4444-4300-ADF8-E21042C0781D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAD27E27-4444-4300-ADF8-E21042C0781D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BAD27E27-4444-4300-ADF8-E21042C0781D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAD27E27-4444-4300-ADF8-E21042C0781D}.Release|Any CPU.Build.0 = Release|Any CPU {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Release|Any CPU.ActiveCfg = Release|Any CPU {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Release|Any CPU.Build.0 = Release|Any CPU - {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Release|Any CPU.Build.0 = Release|Any CPU - {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Release|Any CPU.Build.0 = Release|Any CPU - {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Debug|Any CPU.Build.0 = Debug|Any CPU - {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Release|Any CPU.ActiveCfg = Release|Any CPU - {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Release|Any CPU.Build.0 = Release|Any CPU {C92A5F2E-567B-48C9-A524-5740DB03509D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C92A5F2E-567B-48C9-A524-5740DB03509D}.Debug|Any CPU.Build.0 = Debug|Any CPU {C92A5F2E-567B-48C9-A524-5740DB03509D}.Release|Any CPU.ActiveCfg = Release|Any CPU {C92A5F2E-567B-48C9-A524-5740DB03509D}.Release|Any CPU.Build.0 = Release|Any CPU + {271311DE-67EE-4EE8-93EA-EA8BFD366EC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {271311DE-67EE-4EE8-93EA-EA8BFD366EC6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {271311DE-67EE-4EE8-93EA-EA8BFD366EC6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {271311DE-67EE-4EE8-93EA-EA8BFD366EC6}.Release|Any CPU.Build.0 = Release|Any CPU + {F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1548BD2-7FE8-46C2-9BC4-9BA813A5C59A}.Release|Any CPU.Build.0 = Release|Any CPU + {C9192AE7-EE6D-409C-A05C-3549D78CBB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9192AE7-EE6D-409C-A05C-3549D78CBB34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9192AE7-EE6D-409C-A05C-3549D78CBB34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9192AE7-EE6D-409C-A05C-3549D78CBB34}.Release|Any CPU.Build.0 = Release|Any CPU + {6CAC5B83-81F3-47C2-92A1-0F94A58491C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6CAC5B83-81F3-47C2-92A1-0F94A58491C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6CAC5B83-81F3-47C2-92A1-0F94A58491C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6CAC5B83-81F3-47C2-92A1-0F94A58491C2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/StructureHelper/.gitignore b/StructureHelper/.gitignore new file mode 100644 index 0000000..d596b37 --- /dev/null +++ b/StructureHelper/.gitignore @@ -0,0 +1,4 @@ +*\obj +*\bin +*\packages +*\.vs diff --git a/App.xaml b/StructureHelper/App.xaml similarity index 100% rename from App.xaml rename to StructureHelper/App.xaml diff --git a/App.xaml.cs b/StructureHelper/App.xaml.cs similarity index 86% rename from App.xaml.cs rename to StructureHelper/App.xaml.cs index 0e74be2..0f7f3b1 100644 --- a/App.xaml.cs +++ b/StructureHelper/App.xaml.cs @@ -1,16 +1,14 @@ -using System.Windows; -using Autofac; -using StructureHelper.Services; -using StructureHelper.Services.Primitives; +using StructureHelper.Services.Primitives; using StructureHelper.UnitSystem; using StructureHelper.Windows.MainWindow; -using StructureHelperLogics.Services; using StructureHelperLogics.Services.NdmCalculations; +using System.Windows; +using Autofac; namespace StructureHelper { /// - /// Логика взаимодействия для App.xaml + /// Interaction logic for App.xaml /// public partial class App : Application { diff --git a/Documentation/2021-06-14 10-46-38.JPG b/StructureHelper/Documentation/2021-06-14 10-46-38.JPG similarity index 100% rename from Documentation/2021-06-14 10-46-38.JPG rename to StructureHelper/Documentation/2021-06-14 10-46-38.JPG diff --git a/Infrastructure/Enums/PrimitiveType.cs b/StructureHelper/Infrastructure/Enums/PrimitiveType.cs similarity index 100% rename from Infrastructure/Enums/PrimitiveType.cs rename to StructureHelper/Infrastructure/Enums/PrimitiveType.cs diff --git a/Infrastructure/EventArgs.cs b/StructureHelper/Infrastructure/EventArgs.cs similarity index 100% rename from Infrastructure/EventArgs.cs rename to StructureHelper/Infrastructure/EventArgs.cs diff --git a/Infrastructure/EventTriggerBase.cs b/StructureHelper/Infrastructure/EventTriggerBase.cs similarity index 100% rename from Infrastructure/EventTriggerBase.cs rename to StructureHelper/Infrastructure/EventTriggerBase.cs diff --git a/Infrastructure/Extensions/ObservableCollectionExtensions.cs b/StructureHelper/Infrastructure/Extensions/ObservableCollectionExtensions.cs similarity index 100% rename from Infrastructure/Extensions/ObservableCollectionExtensions.cs rename to StructureHelper/Infrastructure/Extensions/ObservableCollectionExtensions.cs diff --git a/Infrastructure/MouseBehaviour.cs b/StructureHelper/Infrastructure/MouseBehaviour.cs similarity index 100% rename from Infrastructure/MouseBehaviour.cs rename to StructureHelper/Infrastructure/MouseBehaviour.cs diff --git a/Infrastructure/NamedList.cs b/StructureHelper/Infrastructure/NamedList.cs similarity index 100% rename from Infrastructure/NamedList.cs rename to StructureHelper/Infrastructure/NamedList.cs diff --git a/Infrastructure/RelayCommand.cs b/StructureHelper/Infrastructure/RelayCommand.cs similarity index 100% rename from Infrastructure/RelayCommand.cs rename to StructureHelper/Infrastructure/RelayCommand.cs diff --git a/Infrastructure/UI/Converters/Common/InvertBoolConverter.cs b/StructureHelper/Infrastructure/UI/Converters/Common/InvertBoolConverter.cs similarity index 100% rename from Infrastructure/UI/Converters/Common/InvertBoolConverter.cs rename to StructureHelper/Infrastructure/UI/Converters/Common/InvertBoolConverter.cs diff --git a/Infrastructure/UI/Converters/CommonOperation.cs b/StructureHelper/Infrastructure/UI/Converters/CommonOperation.cs similarity index 100% rename from Infrastructure/UI/Converters/CommonOperation.cs rename to StructureHelper/Infrastructure/UI/Converters/CommonOperation.cs diff --git a/Infrastructure/UI/Converters/IStringDoublePair.cs b/StructureHelper/Infrastructure/UI/Converters/IStringDoublePair.cs similarity index 100% rename from Infrastructure/UI/Converters/IStringDoublePair.cs rename to StructureHelper/Infrastructure/UI/Converters/IStringDoublePair.cs diff --git a/Infrastructure/UI/Converters/StringDoublePair.cs b/StructureHelper/Infrastructure/UI/Converters/StringDoublePair.cs similarity index 100% rename from Infrastructure/UI/Converters/StringDoublePair.cs rename to StructureHelper/Infrastructure/UI/Converters/StringDoublePair.cs diff --git a/Infrastructure/UI/Converters/Units/Area.cs b/StructureHelper/Infrastructure/UI/Converters/Units/Area.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/Area.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/Area.cs diff --git a/Infrastructure/UI/Converters/Units/Curvature.cs b/StructureHelper/Infrastructure/UI/Converters/Units/Curvature.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/Curvature.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/Curvature.cs diff --git a/Infrastructure/UI/Converters/Units/Force.cs b/StructureHelper/Infrastructure/UI/Converters/Units/Force.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/Force.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/Force.cs diff --git a/Infrastructure/UI/Converters/Units/Length.cs b/StructureHelper/Infrastructure/UI/Converters/Units/Length.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/Length.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/Length.cs diff --git a/Infrastructure/UI/Converters/Units/Moment.cs b/StructureHelper/Infrastructure/UI/Converters/Units/Moment.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/Moment.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/Moment.cs diff --git a/Infrastructure/UI/Converters/Units/PlainDouble.cs b/StructureHelper/Infrastructure/UI/Converters/Units/PlainDouble.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/PlainDouble.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/PlainDouble.cs diff --git a/Infrastructure/UI/Converters/Units/Stress.cs b/StructureHelper/Infrastructure/UI/Converters/Units/Stress.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/Stress.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/Stress.cs diff --git a/Infrastructure/UI/Converters/Units/UnitBase.cs b/StructureHelper/Infrastructure/UI/Converters/Units/UnitBase.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/UnitBase.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/UnitBase.cs diff --git a/Infrastructure/UI/Converters/Units/UnitConstatnts.cs b/StructureHelper/Infrastructure/UI/Converters/Units/UnitConstatnts.cs similarity index 100% rename from Infrastructure/UI/Converters/Units/UnitConstatnts.cs rename to StructureHelper/Infrastructure/UI/Converters/Units/UnitConstatnts.cs diff --git a/Infrastructure/UI/DataContexts/IHasCenter.cs b/StructureHelper/Infrastructure/UI/DataContexts/IHasCenter.cs similarity index 100% rename from Infrastructure/UI/DataContexts/IHasCenter.cs rename to StructureHelper/Infrastructure/UI/DataContexts/IHasCenter.cs diff --git a/Infrastructure/UI/DataContexts/IHasDivision.cs b/StructureHelper/Infrastructure/UI/DataContexts/IHasDivision.cs similarity index 100% rename from Infrastructure/UI/DataContexts/IHasDivision.cs rename to StructureHelper/Infrastructure/UI/DataContexts/IHasDivision.cs diff --git a/Infrastructure/UI/DataContexts/LineViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/LineViewPrimitive.cs similarity index 100% rename from Infrastructure/UI/DataContexts/LineViewPrimitive.cs rename to StructureHelper/Infrastructure/UI/DataContexts/LineViewPrimitive.cs diff --git a/Infrastructure/UI/DataContexts/PointViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/PointViewPrimitive.cs similarity index 100% rename from Infrastructure/UI/DataContexts/PointViewPrimitive.cs rename to StructureHelper/Infrastructure/UI/DataContexts/PointViewPrimitive.cs diff --git a/Infrastructure/UI/DataContexts/PrimitiveBase.cs b/StructureHelper/Infrastructure/UI/DataContexts/PrimitiveBase.cs similarity index 100% rename from Infrastructure/UI/DataContexts/PrimitiveBase.cs rename to StructureHelper/Infrastructure/UI/DataContexts/PrimitiveBase.cs diff --git a/Infrastructure/UI/DataContexts/PrimitiveOperations.cs b/StructureHelper/Infrastructure/UI/DataContexts/PrimitiveOperations.cs similarity index 100% rename from Infrastructure/UI/DataContexts/PrimitiveOperations.cs rename to StructureHelper/Infrastructure/UI/DataContexts/PrimitiveOperations.cs diff --git a/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs b/StructureHelper/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs similarity index 100% rename from Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs rename to StructureHelper/Infrastructure/UI/DataContexts/RectangleViewPrimitive.cs diff --git a/Infrastructure/UI/DataTemplates/EllipseTemplate.xaml b/StructureHelper/Infrastructure/UI/DataTemplates/EllipseTemplate.xaml similarity index 100% rename from Infrastructure/UI/DataTemplates/EllipseTemplate.xaml rename to StructureHelper/Infrastructure/UI/DataTemplates/EllipseTemplate.xaml diff --git a/Infrastructure/UI/DataTemplates/EllipseTemplate.xaml.cs b/StructureHelper/Infrastructure/UI/DataTemplates/EllipseTemplate.xaml.cs similarity index 100% rename from Infrastructure/UI/DataTemplates/EllipseTemplate.xaml.cs rename to StructureHelper/Infrastructure/UI/DataTemplates/EllipseTemplate.xaml.cs diff --git a/Infrastructure/UI/DataTemplates/RectangleTemplate.xaml b/StructureHelper/Infrastructure/UI/DataTemplates/RectangleTemplate.xaml similarity index 100% rename from Infrastructure/UI/DataTemplates/RectangleTemplate.xaml rename to StructureHelper/Infrastructure/UI/DataTemplates/RectangleTemplate.xaml diff --git a/Infrastructure/UI/DataTemplates/RectangleTemplate.xaml.cs b/StructureHelper/Infrastructure/UI/DataTemplates/RectangleTemplate.xaml.cs similarity index 100% rename from Infrastructure/UI/DataTemplates/RectangleTemplate.xaml.cs rename to StructureHelper/Infrastructure/UI/DataTemplates/RectangleTemplate.xaml.cs diff --git a/Infrastructure/UI/PrimitiveTemplates/IRectangleBeamProperties.cs b/StructureHelper/Infrastructure/UI/PrimitiveTemplates/IRectangleBeamProperties.cs similarity index 100% rename from Infrastructure/UI/PrimitiveTemplates/IRectangleBeamProperties.cs rename to StructureHelper/Infrastructure/UI/PrimitiveTemplates/IRectangleBeamProperties.cs diff --git a/Infrastructure/UI/PrimitiveTemplates/TemplateFactory.cs b/StructureHelper/Infrastructure/UI/PrimitiveTemplates/TemplateFactory.cs similarity index 100% rename from Infrastructure/UI/PrimitiveTemplates/TemplateFactory.cs rename to StructureHelper/Infrastructure/UI/PrimitiveTemplates/TemplateFactory.cs diff --git a/Infrastructure/UI/Resources/ButtonStyles.xaml b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml similarity index 100% rename from Infrastructure/UI/Resources/ButtonStyles.xaml rename to StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml diff --git a/Infrastructure/UI/Resources/CommonEnums.xaml b/StructureHelper/Infrastructure/UI/Resources/CommonEnums.xaml similarity index 100% rename from Infrastructure/UI/Resources/CommonEnums.xaml rename to StructureHelper/Infrastructure/UI/Resources/CommonEnums.xaml diff --git a/Infrastructure/UI/Resources/Converters.xaml b/StructureHelper/Infrastructure/UI/Resources/Converters.xaml similarity index 100% rename from Infrastructure/UI/Resources/Converters.xaml rename to StructureHelper/Infrastructure/UI/Resources/Converters.xaml diff --git a/Infrastructure/UI/Resources/DataGridStyles.xaml b/StructureHelper/Infrastructure/UI/Resources/DataGridStyles.xaml similarity index 100% rename from Infrastructure/UI/Resources/DataGridStyles.xaml rename to StructureHelper/Infrastructure/UI/Resources/DataGridStyles.xaml diff --git a/Infrastructure/UI/Resources/DataGridTemplates.xaml b/StructureHelper/Infrastructure/UI/Resources/DataGridTemplates.xaml similarity index 100% rename from Infrastructure/UI/Resources/DataGridTemplates.xaml rename to StructureHelper/Infrastructure/UI/Resources/DataGridTemplates.xaml diff --git a/Infrastructure/UI/Resources/ItemEditPanels.xaml b/StructureHelper/Infrastructure/UI/Resources/ItemEditPanels.xaml similarity index 100% rename from Infrastructure/UI/Resources/ItemEditPanels.xaml rename to StructureHelper/Infrastructure/UI/Resources/ItemEditPanels.xaml diff --git a/Infrastructure/UI/Resources/PrimitiveTemplates.xaml b/StructureHelper/Infrastructure/UI/Resources/PrimitiveTemplates.xaml similarity index 100% rename from Infrastructure/UI/Resources/PrimitiveTemplates.xaml rename to StructureHelper/Infrastructure/UI/Resources/PrimitiveTemplates.xaml diff --git a/Infrastructure/UI/Resources/PrimitiveToolTips.xaml b/StructureHelper/Infrastructure/UI/Resources/PrimitiveToolTips.xaml similarity index 100% rename from Infrastructure/UI/Resources/PrimitiveToolTips.xaml rename to StructureHelper/Infrastructure/UI/Resources/PrimitiveToolTips.xaml diff --git a/Infrastructure/UI/Resources/ShapeEditTemplates.xaml b/StructureHelper/Infrastructure/UI/Resources/ShapeEditTemplates.xaml similarity index 100% rename from Infrastructure/UI/Resources/ShapeEditTemplates.xaml rename to StructureHelper/Infrastructure/UI/Resources/ShapeEditTemplates.xaml diff --git a/Infrastructure/UI/Styles.xaml b/StructureHelper/Infrastructure/UI/Styles.xaml similarity index 100% rename from Infrastructure/UI/Styles.xaml rename to StructureHelper/Infrastructure/UI/Styles.xaml diff --git a/Infrastructure/UI/Triggers/MouseEventTriggers/DoubleClickEventTrigger.cs b/StructureHelper/Infrastructure/UI/Triggers/MouseEventTriggers/DoubleClickEventTrigger.cs similarity index 100% rename from Infrastructure/UI/Triggers/MouseEventTriggers/DoubleClickEventTrigger.cs rename to StructureHelper/Infrastructure/UI/Triggers/MouseEventTriggers/DoubleClickEventTrigger.cs diff --git a/Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelDownEventTrigger.cs b/StructureHelper/Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelDownEventTrigger.cs similarity index 100% rename from Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelDownEventTrigger.cs rename to StructureHelper/Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelDownEventTrigger.cs diff --git a/Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelUpEventTrigger.cs b/StructureHelper/Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelUpEventTrigger.cs similarity index 100% rename from Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelUpEventTrigger.cs rename to StructureHelper/Infrastructure/UI/Triggers/MouseEventTriggers/MouseWheelUpEventTrigger.cs diff --git a/Infrastructure/UI/UserControls/PrimitivePopup.xaml b/StructureHelper/Infrastructure/UI/UserControls/PrimitivePopup.xaml similarity index 98% rename from Infrastructure/UI/UserControls/PrimitivePopup.xaml rename to StructureHelper/Infrastructure/UI/UserControls/PrimitivePopup.xaml index c320ff4..4f3a37b 100644 --- a/Infrastructure/UI/UserControls/PrimitivePopup.xaml +++ b/StructureHelper/Infrastructure/UI/UserControls/PrimitivePopup.xaml @@ -4,8 +4,8 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:StructureHelper.Infrastructure.UI.UserControls" - xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:dataContexts="clr-namespace:StructureHelper.Infrastructure.UI.DataContexts" + xmlns:i="http://schemas.microsoft.com/xaml/behaviors" mc:Ignorable="d" IsOpen="{Binding ParamsPanelVisibilty}"> diff --git a/Infrastructure/UI/UserControls/PrimitivePopup.xaml.cs b/StructureHelper/Infrastructure/UI/UserControls/PrimitivePopup.xaml.cs similarity index 100% rename from Infrastructure/UI/UserControls/PrimitivePopup.xaml.cs rename to StructureHelper/Infrastructure/UI/UserControls/PrimitivePopup.xaml.cs diff --git a/Infrastructure/ViewModelBase.cs b/StructureHelper/Infrastructure/ViewModelBase.cs similarity index 100% rename from Infrastructure/ViewModelBase.cs rename to StructureHelper/Infrastructure/ViewModelBase.cs diff --git a/Libraries/LoaderCalculator.dll b/StructureHelper/Libraries/LoaderCalculator.dll similarity index 100% rename from Libraries/LoaderCalculator.dll rename to StructureHelper/Libraries/LoaderCalculator.dll diff --git a/MaterialCatalogWindow/MaterialCatalogModel.cs b/StructureHelper/MaterialCatalogWindow/MaterialCatalogModel.cs similarity index 100% rename from MaterialCatalogWindow/MaterialCatalogModel.cs rename to StructureHelper/MaterialCatalogWindow/MaterialCatalogModel.cs diff --git a/MaterialCatalogWindow/MaterialCatalogView.xaml b/StructureHelper/MaterialCatalogWindow/MaterialCatalogView.xaml similarity index 100% rename from MaterialCatalogWindow/MaterialCatalogView.xaml rename to StructureHelper/MaterialCatalogWindow/MaterialCatalogView.xaml diff --git a/MaterialCatalogWindow/MaterialCatalogView.xaml.cs b/StructureHelper/MaterialCatalogWindow/MaterialCatalogView.xaml.cs similarity index 100% rename from MaterialCatalogWindow/MaterialCatalogView.xaml.cs rename to StructureHelper/MaterialCatalogWindow/MaterialCatalogView.xaml.cs diff --git a/MaterialCatalogWindow/MaterialCatalogViewModel.cs b/StructureHelper/MaterialCatalogWindow/MaterialCatalogViewModel.cs similarity index 100% rename from MaterialCatalogWindow/MaterialCatalogViewModel.cs rename to StructureHelper/MaterialCatalogWindow/MaterialCatalogViewModel.cs diff --git a/Models/Forces/ForceCombinationViewObject.cs b/StructureHelper/Models/Forces/ForceCombinationViewObject.cs similarity index 100% rename from Models/Forces/ForceCombinationViewObject.cs rename to StructureHelper/Models/Forces/ForceCombinationViewObject.cs diff --git a/Models/Forces/ForceTupleViewObject.cs b/StructureHelper/Models/Forces/ForceTupleViewObject.cs similarity index 100% rename from Models/Forces/ForceTupleViewObject.cs rename to StructureHelper/Models/Forces/ForceTupleViewObject.cs diff --git a/Models/Materials/ConcreteDefinition.cs b/StructureHelper/Models/Materials/ConcreteDefinition.cs similarity index 100% rename from Models/Materials/ConcreteDefinition.cs rename to StructureHelper/Models/Materials/ConcreteDefinition.cs diff --git a/Models/Materials/MaterialDefinitionBase.cs b/StructureHelper/Models/Materials/MaterialDefinitionBase.cs similarity index 100% rename from Models/Materials/MaterialDefinitionBase.cs rename to StructureHelper/Models/Materials/MaterialDefinitionBase.cs diff --git a/Models/Materials/RebarDefinition.cs b/StructureHelper/Models/Materials/RebarDefinition.cs similarity index 100% rename from Models/Materials/RebarDefinition.cs rename to StructureHelper/Models/Materials/RebarDefinition.cs diff --git a/Models/Primitives/Factories/PrimitiveFactory.cs b/StructureHelper/Models/Primitives/Factories/PrimitiveFactory.cs similarity index 100% rename from Models/Primitives/Factories/PrimitiveFactory.cs rename to StructureHelper/Models/Primitives/Factories/PrimitiveFactory.cs diff --git a/Properties/Annotations.cs b/StructureHelper/Properties/Annotations.cs similarity index 100% rename from Properties/Annotations.cs rename to StructureHelper/Properties/Annotations.cs diff --git a/Properties/AssemblyInfo.cs b/StructureHelper/Properties/AssemblyInfo.cs similarity index 100% rename from Properties/AssemblyInfo.cs rename to StructureHelper/Properties/AssemblyInfo.cs diff --git a/Services/Primitives/IPrimitiveRepository.cs b/StructureHelper/Services/Primitives/IPrimitiveRepository.cs similarity index 100% rename from Services/Primitives/IPrimitiveRepository.cs rename to StructureHelper/Services/Primitives/IPrimitiveRepository.cs diff --git a/Services/Primitives/PrimitiveRepository.cs b/StructureHelper/Services/Primitives/PrimitiveRepository.cs similarity index 100% rename from Services/Primitives/PrimitiveRepository.cs rename to StructureHelper/Services/Primitives/PrimitiveRepository.cs diff --git a/Services/Reports/CalculationReports/IIsoFieldReport.cs b/StructureHelper/Services/Reports/CalculationReports/IIsoFieldReport.cs similarity index 100% rename from Services/Reports/CalculationReports/IIsoFieldReport.cs rename to StructureHelper/Services/Reports/CalculationReports/IIsoFieldReport.cs diff --git a/Services/Reports/CalculationReports/IsoFieldReport.cs b/StructureHelper/Services/Reports/CalculationReports/IsoFieldReport.cs similarity index 100% rename from Services/Reports/CalculationReports/IsoFieldReport.cs rename to StructureHelper/Services/Reports/CalculationReports/IsoFieldReport.cs diff --git a/Services/Reports/IReport.cs b/StructureHelper/Services/Reports/IReport.cs similarity index 100% rename from Services/Reports/IReport.cs rename to StructureHelper/Services/Reports/IReport.cs diff --git a/Services/ResultViewers/IResultFunc.cs b/StructureHelper/Services/ResultViewers/IResultFunc.cs similarity index 100% rename from Services/ResultViewers/IResultFunc.cs rename to StructureHelper/Services/ResultViewers/IResultFunc.cs diff --git a/Services/ResultViewers/ResultFunc.cs b/StructureHelper/Services/ResultViewers/ResultFunc.cs similarity index 100% rename from Services/ResultViewers/ResultFunc.cs rename to StructureHelper/Services/ResultViewers/ResultFunc.cs diff --git a/Services/ResultViewers/ResultFuncFactory.cs b/StructureHelper/Services/ResultViewers/ResultFuncFactory.cs similarity index 100% rename from Services/ResultViewers/ResultFuncFactory.cs rename to StructureHelper/Services/ResultViewers/ResultFuncFactory.cs diff --git a/Services/ResultViewers/ShowIsoFieldResult.cs b/StructureHelper/Services/ResultViewers/ShowIsoFieldResult.cs similarity index 100% rename from Services/ResultViewers/ShowIsoFieldResult.cs rename to StructureHelper/Services/ResultViewers/ShowIsoFieldResult.cs diff --git a/StructureHelper/StructureHelper.csproj b/StructureHelper/StructureHelper.csproj new file mode 100644 index 0000000..6a99bbb --- /dev/null +++ b/StructureHelper/StructureHelper.csproj @@ -0,0 +1,44 @@ + + + + WinExe + net6.0-windows10.0.18362.0 + enable + true + disable + 10.0.18362.0 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Libraries\LoaderCalculator.dll + + + + diff --git a/StructureHelper/StructureHelper.csproj.user b/StructureHelper/StructureHelper.csproj.user new file mode 100644 index 0000000..e8da786 --- /dev/null +++ b/StructureHelper/StructureHelper.csproj.user @@ -0,0 +1,10 @@ + + + + + + Designer + + + + \ No newline at end of file diff --git a/StructureHelper/StructureHelper.sln b/StructureHelper/StructureHelper.sln new file mode 100644 index 0000000..dd8c1da --- /dev/null +++ b/StructureHelper/StructureHelper.sln @@ -0,0 +1,61 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32630.192 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructureHelper", "StructureHelper.csproj", "{BAD27E27-4444-4300-ADF8-E21042C0781D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructureHelperTests", "StructureHelperTests\StructureHelperTests.csproj", "{7AC480BB-8A34-4913-B7AA-C6A5D7F35509}" + ProjectSection(ProjectDependencies) = postProject + {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3} = {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3} + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructureHelperLogics", "StructureHelperLogics\StructureHelperLogics.csproj", "{330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}" + ProjectSection(ProjectDependencies) = postProject + {5DFEC3FD-9677-47BB-9E88-EB71828B5913} = {5DFEC3FD-9677-47BB-9E88-EB71828B5913} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StructureHelperCommon", "StructureHelperCommon\StructureHelperCommon.csproj", "{5DFEC3FD-9677-47BB-9E88-EB71828B5913}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FieldVisualizer", "FieldVisualizer\FieldVisualizer.csproj", "{87064B50-3B7C-4A91-AF4A-941C6F95D997}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FieldVisualzerDemo", "FiledVisualzerDemo\FieldVisualzerDemo.csproj", "{C92A5F2E-567B-48C9-A524-5740DB03509D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BAD27E27-4444-4300-ADF8-E21042C0781D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAD27E27-4444-4300-ADF8-E21042C0781D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAD27E27-4444-4300-ADF8-E21042C0781D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAD27E27-4444-4300-ADF8-E21042C0781D}.Release|Any CPU.Build.0 = Release|Any CPU + {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7AC480BB-8A34-4913-B7AA-C6A5D7F35509}.Release|Any CPU.Build.0 = Release|Any CPU + {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {330BEF5B-15BE-4D2C-A750-B1AE50FB2BE3}.Release|Any CPU.Build.0 = Release|Any CPU + {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DFEC3FD-9677-47BB-9E88-EB71828B5913}.Release|Any CPU.Build.0 = Release|Any CPU + {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Debug|Any CPU.Build.0 = Debug|Any CPU + {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Release|Any CPU.ActiveCfg = Release|Any CPU + {87064B50-3B7C-4A91-AF4A-941C6F95D997}.Release|Any CPU.Build.0 = Release|Any CPU + {C92A5F2E-567B-48C9-A524-5740DB03509D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C92A5F2E-567B-48C9-A524-5740DB03509D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C92A5F2E-567B-48C9-A524-5740DB03509D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C92A5F2E-567B-48C9-A524-5740DB03509D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {A4F97ACA-7F64-4D3E-AB47-8EE61B5BAB9A} + EndGlobalSection +EndGlobal diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/CalcTerms.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/CalcTerms.cs new file mode 100644 index 0000000..f44ee3f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/CalcTerms.cs @@ -0,0 +1,8 @@ +namespace StructureHelperCommon.Infrastructures.Enums +{ + public enum CalcTerms + { + ShortTerm, + LongTerm, + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs new file mode 100644 index 0000000..66213b9 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperCommon.Infrastructures.Enums +{ + public enum CodeTypes + { + SP63_13330_2018, + EuroCode_2_1990 + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/Directions.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/Directions.cs new file mode 100644 index 0000000..f210380 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/Directions.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Enums +{ + public enum Directions + { + X, + Y, + Z + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/LimitStates.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/LimitStates.cs new file mode 100644 index 0000000..0ef8a37 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/LimitStates.cs @@ -0,0 +1,9 @@ +namespace StructureHelperCommon.Infrastructures.Enums +{ + public enum LimitStates + { + ULS = 1, + SLS = 2, + Special = 3, + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/MaterialTypes.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/MaterialTypes.cs new file mode 100644 index 0000000..ff4c2ce --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/MaterialTypes.cs @@ -0,0 +1,11 @@ +namespace StructureHelperCommon.Infrastructures.Enums + +{ + public enum MaterialTypes + { + Concrete, + Reinforcement, + //Steel, + //CarbonFiber, + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/StressStates.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/StressStates.cs new file mode 100644 index 0000000..e02d0a6 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/StressStates.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Enums +{ + public enum StressStates + { + Tension, + Compression + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs new file mode 100644 index 0000000..21f9421 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Enums +{ + public enum UnitTypes + { + Length, + Area, + Stress, + Force, + Moment, + Curvature + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs new file mode 100644 index 0000000..9c96b5e --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Exceptions +{ + public class StructureHelperException : Exception + { + public StructureHelperException(string errorString) : base(errorString) + { + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs new file mode 100644 index 0000000..6bf61fb --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs @@ -0,0 +1,14 @@ +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Interfaces +{ + public interface IHasForceCombinations + { + List ForceCombinationLists { get; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs new file mode 100644 index 0000000..99f6895 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Interfaces +{ + public interface IHasParent + { + object Parent { get; } + void RegisterParent(); + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs new file mode 100644 index 0000000..a1020e2 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Interfaces +{ + public interface ISaveable + { + int Id { get; set; } + void Save(); + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs new file mode 100644 index 0000000..21e48a1 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs @@ -0,0 +1,14 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Settings +{ + public static class ProgramSetting + { + public static CodeTypes CodeType => CodeTypes.SP63_13330_2018; + } +} diff --git a/StructureHelper/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs b/StructureHelper/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs new file mode 100644 index 0000000..227527f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Infrastructures.Strings +{ + public static class ErrorStrings + { + public static string UnknownError => "#0000: Unknown error"; + public static string ObjectTypeIsUnknown => "#0001: Object type is unknown"; + public static string MaterialTypeIsUnknown => "#0002: Material type is unknown"; + public static string DataIsInCorrect => "#0003: Data is not correct"; + public static string ShapeIsNotCorrect => "#0004: Shape is not valid"; + public static string LimitStatesIsNotValid => "#0005: Type of limite state is not valid"; + public static string LoadTermIsNotValid => "#0006: Load term is not valid"; + public static string IncorrectValue => "#0007: value is not valid"; + public static string FileCantBeDeleted => "#0008: File can't be deleted"; + public static string FileCantBeSaved => "#0009: File can't be saved"; + public static string VisualPropertyIsNotRight => "#0010: VisualPropertyIsNotRight"; + public static string FactorMustBeGraterThanZero => "#0011: Partial factor must not be less than zero"; + public static string LongitudinalForceMustBeLessThanZero => "#0012: Longitudinal force must be less than zero"; + public static string LongitudinalForceMustBeLessThanCriticalForce => "#0013: Absolute value of longitudinal force must be greater than critical force"; + public static string SizeMustBeGreaterThanZero => "#0014: Size must be greater than zero"; + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Calculators/Accuracy.cs b/StructureHelper/StructureHelperCommon/Models/Calculators/Accuracy.cs new file mode 100644 index 0000000..67ca68e --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Calculators/Accuracy.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Calculators +{ + public class Accuracy : IAccuracy + { + public double IterationAccuracy { get; set; } + public int MaxIterationCount { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Calculators/IAccuracy.cs b/StructureHelper/StructureHelperCommon/Models/Calculators/IAccuracy.cs new file mode 100644 index 0000000..4ca1bd4 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Calculators/IAccuracy.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Calculators +{ + public interface IAccuracy + { + double IterationAccuracy { get; set; } + int MaxIterationCount { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs b/StructureHelper/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs new file mode 100644 index 0000000..cddd4d2 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Calculators +{ + public interface IHelperCalculator + where TInputData : class + where TCalculationResult : class + { + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/DesignForceTuple.cs b/StructureHelper/StructureHelperCommon/Models/Forces/DesignForceTuple.cs new file mode 100644 index 0000000..f30b6e7 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/DesignForceTuple.cs @@ -0,0 +1,34 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + public class DesignForceTuple : IDesignForceTuple + { + public LimitStates LimitState { get; set; } + public CalcTerms CalcTerm { get; set; } + public IForceTuple ForceTuple { get; set; } + + public DesignForceTuple(LimitStates limitState, CalcTerms calcTerm) : this() + { + LimitState = limitState; + CalcTerm = calcTerm; + } + + public DesignForceTuple() + { + ForceTuple = new ForceTuple(); + } + + public object Clone() + { + var newTuple = new DesignForceTuple(this.LimitState, this.CalcTerm); + newTuple.ForceTuple = this.ForceTuple.Clone() as IForceTuple; + return newTuple; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs b/StructureHelper/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs new file mode 100644 index 0000000..d113c67 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs @@ -0,0 +1,38 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + public enum ForceType + { + Force_zero, + Force_Mx50My50Nz100, + } + + public static class DesignForceFactory + { + public static IDesignForceTuple GetDesignForce(ForceType forceType, LimitStates limitState, CalcTerms calcTerm) + { + if (forceType == ForceType.Force_zero) + { + return new DesignForceTuple(limitState, calcTerm); + } + else if (forceType == ForceType.Force_Mx50My50Nz100) + { + var tuple = new DesignForceTuple(limitState, calcTerm); + var forceTuple = tuple.ForceTuple; + forceTuple.Mx = -50e3d; + forceTuple.My = -50e3d; + forceTuple.Nz = -100e3d; + return tuple; + } + else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs b/StructureHelper/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs new file mode 100644 index 0000000..b98a933 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs @@ -0,0 +1,34 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + public enum DesignForceType + { + Suit_1, + Suit_2 + } + + public static class ForceCombinationListFactory + { + public static List GetDesignForces(DesignForceType forceType) + { + if (forceType == DesignForceType.Suit_1) + { + var designForces = new List(); + designForces.Add(DesignForceFactory.GetDesignForce(ForceType.Force_Mx50My50Nz100, LimitStates.ULS, CalcTerms.ShortTerm)); + designForces.Add(DesignForceFactory.GetDesignForce(ForceType.Force_Mx50My50Nz100, LimitStates.ULS, CalcTerms.LongTerm)); + designForces.Add(DesignForceFactory.GetDesignForce(ForceType.Force_Mx50My50Nz100, LimitStates.SLS, CalcTerms.ShortTerm)); + designForces.Add(DesignForceFactory.GetDesignForce(ForceType.Force_Mx50My50Nz100, LimitStates.SLS, CalcTerms.LongTerm)); + return designForces; + } + else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/ForceCombinationList.cs b/StructureHelper/StructureHelperCommon/Models/Forces/ForceCombinationList.cs new file mode 100644 index 0000000..c6cd760 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/ForceCombinationList.cs @@ -0,0 +1,47 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + public class ForceCombinationList : IForceCombinationList + { + + public string Name { get; set; } + public bool SetInGravityCenter { get; set; } + public Point2D ForcePoint { get; private set; } + public List DesignForces { get; private set; } + + + public ForceCombinationList() + { + SetInGravityCenter = true; + ForcePoint = new Point2D() { X = 0, Y = 0 }; + DesignForces = new List(); + DesignForces.Add(new DesignForceTuple(LimitStates.ULS, CalcTerms.ShortTerm)); + DesignForces.Add(new DesignForceTuple(LimitStates.ULS, CalcTerms.LongTerm)); + DesignForces.Add(new DesignForceTuple(LimitStates.SLS, CalcTerms.ShortTerm)); + DesignForces.Add(new DesignForceTuple(LimitStates.SLS, CalcTerms.LongTerm)); + } + + public object Clone() + { + var newItem = new ForceCombinationList(); + newItem.Name = Name + " copy"; + newItem.SetInGravityCenter = SetInGravityCenter; + newItem.ForcePoint.X = ForcePoint.X; + newItem.ForcePoint.Y = ForcePoint.Y; + newItem.DesignForces.Clear(); + foreach (var item in DesignForces) + { + var newForce = item.Clone() as IDesignForceTuple; + newItem.DesignForces.Add(newForce); + } + return newItem; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/ForceTuple.cs b/StructureHelper/StructureHelperCommon/Models/Forces/ForceTuple.cs new file mode 100644 index 0000000..78662b8 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/ForceTuple.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + /// + public class ForceTuple : IForceTuple + { + /// + public double Mx { get; set; } + /// + public double My { get; set; } + /// + public double Nz { get; set; } + /// + public double Qx { get; set; } + /// + public double Qy { get; set; } + /// + public double Mz { get; set; } + + /// + public object Clone() + { + IForceTuple forceTuple = new ForceTuple() { Mx = Mx, My = My, Nz = Nz, Qx = Qx, Qy = Qy, Mz = Mz}; + return forceTuple; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs b/StructureHelper/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs new file mode 100644 index 0000000..e50b2c6 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs @@ -0,0 +1,16 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + public interface IDesignForceTuple : ICloneable + { + LimitStates LimitState { get; set; } + CalcTerms CalcTerm { get; set; } + IForceTuple ForceTuple { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/IForceCombinationList.cs b/StructureHelper/StructureHelperCommon/Models/Forces/IForceCombinationList.cs new file mode 100644 index 0000000..8a89573 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/IForceCombinationList.cs @@ -0,0 +1,17 @@ +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + public interface IForceCombinationList : ICloneable + { + string Name { get; set; } + bool SetInGravityCenter { get; set; } + Point2D ForcePoint {get ;} + List DesignForces { get; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/IForceRepository.cs b/StructureHelper/StructureHelperCommon/Models/Forces/IForceRepository.cs new file mode 100644 index 0000000..b8c656f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/IForceRepository.cs @@ -0,0 +1,13 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + internal interface IForceRepository + { + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/IForceTuple.cs b/StructureHelper/StructureHelperCommon/Models/Forces/IForceTuple.cs new file mode 100644 index 0000000..96c487f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/IForceTuple.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + /// + /// Interface for generic force for beams + /// + public interface IForceTuple : ICloneable + { + /// + /// Bending moment round about x-axis + /// + double Mx { get; set; } + /// + /// Bending moment round about y-axis + /// + double My { get; set; } + /// + /// Longitudinal force along x-axis + /// + double Nz { get; set; } + /// + /// Shear force along x-axis + /// + double Qx { get; set; } + /// + /// Shear force along z-axis + /// + double Qy { get; set; } + /// + /// Twisting moment round about z-axis + /// + double Mz { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs b/StructureHelper/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs new file mode 100644 index 0000000..8fc0bdf --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + /// + /// Interface for generic curvature for beams + /// + public interface IStrainTuple : ICloneable + { + /// + /// Curvature about x-axis + /// + double Kx { get; set; } + /// + /// Curvature about y-axis + /// + double Ky { get; set; } + /// + /// Strain along z-axis + /// + double EpsZ { get; set; } + /// + /// Screw along x-axis + /// + double Gx { get; set; } + /// + /// Screw along y-axis + /// + double Gy { get; set; } + /// + /// Twisting about z-axis + /// + double Gz { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs b/StructureHelper/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs new file mode 100644 index 0000000..e18c6d7 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs @@ -0,0 +1,34 @@ +using StructureHelperCommon.Services.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Forces +{ + /// + public class StrainTuple : IStrainTuple + { + /// + public double Kx { get; set; } + /// + public double Ky { get; set; } + /// + public double EpsZ { get; set; } + /// + public double Gx { get; set; } + /// + public double Gy { get; set; } + /// + public double Gz { get; set; } + + /// + public object Clone() + { + var target = new StrainTuple(); + StrainTupleService.CopyProperties(this, target); + return target; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs new file mode 100644 index 0000000..1532fd6 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs @@ -0,0 +1,16 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public class ConcreteMaterialEntity : IConcreteMaterialEntity + { + public CodeTypes CodeType { get; set; } + public string Name { get; set; } + public double MainStrength { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs new file mode 100644 index 0000000..b4c2f35 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs @@ -0,0 +1,112 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public enum FactorType + { + LongTermFactor, + BleedingFactor, + PlainConcreteFactor + } + + public static class ConcreteFactorsFactory + { + public static IMaterialSafetyFactor GetFactor(FactorType factorType) + { + if (factorType == FactorType.LongTermFactor) { return LongTerm(); } + else if (factorType == FactorType.BleedingFactor) { return Bleeding(); } + else if (factorType == FactorType.PlainConcreteFactor) { return PlainConcrete(); } + else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); + } + + private static IMaterialSafetyFactor LongTerm() + { + IMaterialSafetyFactor safetyFactor = new MaterialSafetyFactor() + { + Name = "Gamma_b1", + Description = "Coefficient for considering long term calculations", + }; + IMaterialPartialFactor partialFactor; + partialFactor = new MaterialPartialFactor + { + StressState = StressStates.Tension, + CalcTerm = CalcTerms.LongTerm, + LimitState = LimitStates.ULS, + FactorValue = 0.9d + }; + safetyFactor.PartialFactors.Add(partialFactor); + partialFactor = new MaterialPartialFactor + { + StressState = StressStates.Compression, + CalcTerm = CalcTerms.LongTerm, + LimitState = LimitStates.ULS, + FactorValue = 0.9d + }; + safetyFactor.PartialFactors.Add(partialFactor); + return safetyFactor; + } + + private static IMaterialSafetyFactor Bleeding() + { + IMaterialSafetyFactor safetyFactor = new MaterialSafetyFactor() + { + Name = "Gamma_b3", + Description = "Coefficient for considering bleeding in vertical placement conditionals", + }; + IMaterialPartialFactor partialFactor; + partialFactor = new MaterialPartialFactor + { + StressState = StressStates.Compression, + CalcTerm = CalcTerms.ShortTerm, + LimitState = LimitStates.ULS, + FactorValue = 0.85d + }; + safetyFactor.PartialFactors.Add(partialFactor); + partialFactor = new MaterialPartialFactor + { + StressState = StressStates.Compression, + CalcTerm = CalcTerms.LongTerm, + LimitState = LimitStates.ULS, + FactorValue = 0.85d + }; + safetyFactor.PartialFactors.Add(partialFactor); + return safetyFactor; + } + + private static IMaterialSafetyFactor PlainConcrete() + { + IMaterialSafetyFactor safetyFactor = new MaterialSafetyFactor() + { + Name = "Gamma_b2", + Description = "Coefficient for plain concrete structures", + }; + IMaterialPartialFactor partialFactor; + partialFactor = new MaterialPartialFactor + { + StressState = StressStates.Compression, + CalcTerm = CalcTerms.ShortTerm, + LimitState = LimitStates.ULS, + FactorValue = 0.9d + }; + safetyFactor.PartialFactors.Add(partialFactor); + partialFactor = new MaterialPartialFactor + { + StressState = StressStates.Compression, + CalcTerm = CalcTerms.LongTerm, + LimitState = LimitStates.ULS, + FactorValue = 0.9d + }; + safetyFactor.PartialFactors.Add(partialFactor); + return safetyFactor; + } + + + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs new file mode 100644 index 0000000..cbe4aa3 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs @@ -0,0 +1,74 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public static class LibMaterialFactory + { + public static List GetLibMaterials() + { + List libMaterials = new List(); + libMaterials.AddRange(GetConcreteEurocode()); + libMaterials.AddRange(GetConcreteSP63()); + libMaterials.AddRange(GetReinforcementEurocode()); + libMaterials.AddRange(GetReinforcementSP63()); + return libMaterials; + } + + private static IEnumerable GetConcreteEurocode() + { + var code = CodeTypes.EuroCode_2_1990; + List libMaterials = new List(); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C12", MainStrength = 12e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C20", MainStrength = 20e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C30", MainStrength = 30e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C40", MainStrength = 40e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C50", MainStrength = 50e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C60", MainStrength = 60e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C70", MainStrength = 70e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "C80", MainStrength = 80e6 }); + return libMaterials; + } + private static IEnumerable GetReinforcementEurocode() + { + var code = CodeTypes.EuroCode_2_1990; + List libMaterials = new List(); + libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "S240", MainStrength = 240e6 }); + libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "S400", MainStrength = 400e6 }); + libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "S500", MainStrength = 500e6 }); + return libMaterials; + } + private static IEnumerable GetConcreteSP63() + { + var code = CodeTypes.SP63_13330_2018; + List libMaterials = new List(); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B5", MainStrength = 5e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B7,5", MainStrength = 7.5e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B10", MainStrength = 10e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B15", MainStrength = 15e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B20", MainStrength = 20e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B25", MainStrength = 25e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B30", MainStrength = 30e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B35", MainStrength = 35e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B40", MainStrength = 40e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B50", MainStrength = 50e6 }); + libMaterials.Add(new ConcreteMaterialEntity() { CodeType = code, Name = "B60", MainStrength = 60e6 }); + return libMaterials; + } + private static IEnumerable GetReinforcementSP63() + { + var code = CodeTypes.SP63_13330_2018; + List libMaterials = new List(); + libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "A240", MainStrength = 240e6 }); + libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "A400", MainStrength = 400e6 }); + libMaterials.Add(new ReinforcementMaterialEntity() { CodeType = code, Name = "A500", MainStrength = 500e6 }); + return libMaterials; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs new file mode 100644 index 0000000..cd21857 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public interface IConcreteMaterialEntity : ILibMaterialEntity + { + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs new file mode 100644 index 0000000..fcb35fa --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs @@ -0,0 +1,16 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public interface ILibMaterialEntity + { + CodeTypes CodeType { get; } + string Name { get; } + double MainStrength { get; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs new file mode 100644 index 0000000..51aeffa --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs @@ -0,0 +1,16 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public interface IMaterialPartialFactor : IPartialFactor + { + StressStates StressState { get; set; } + CalcTerms CalcTerm { get; set; } + LimitStates LimitState { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs new file mode 100644 index 0000000..4542fa2 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs @@ -0,0 +1,18 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public interface IMaterialSafetyFactor : ICloneable + { + string Name { get; set; } + bool Take { get; set; } + string Description { get; set; } + List PartialFactors { get; } + double GetFactor(StressStates stressState, CalcTerms calcTerm, LimitStates limitStates); + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs new file mode 100644 index 0000000..6aaf89c --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public interface IPartialFactor : ICloneable + { + double FactorValue {get;set;} + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs new file mode 100644 index 0000000..184aba0 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public interface IReinforcementMaterialEntity : ILibMaterialEntity + { + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs new file mode 100644 index 0000000..4ba1a3c --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs @@ -0,0 +1,30 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public static class LibMaterialPepository + { + private static List libMaterials; + public static List GetRepository() + { + if (libMaterials is null) { libMaterials = LibMaterialFactory.GetLibMaterials(); } + + return libMaterials; + } + + public static IEnumerable GetConcreteRepository(CodeTypes code) + { + return GetRepository().Where(x => x.CodeType == code & x is IConcreteMaterialEntity); ; + } + + public static IEnumerable GetReinforcementRepository(CodeTypes code) + { + return GetRepository().Where(x => x.CodeType == code & x is IReinforcementMaterialEntity); + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs new file mode 100644 index 0000000..8e90e1f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs @@ -0,0 +1,52 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public class MaterialPartialFactor : IMaterialPartialFactor + { + private double factorValue; + + public StressStates StressState { get; set; } + public CalcTerms CalcTerm { get; set; } + public LimitStates LimitState { get; set; } + public double FactorValue + { + get => factorValue; + set + { + if (value < 0 ) + { + throw new StructureHelperException(ErrorStrings.FactorMustBeGraterThanZero); + } + factorValue = value; + } + } + + public MaterialPartialFactor() + { + StressState = StressStates.Compression; + LimitState = LimitStates.ULS; + CalcTerm = CalcTerms.LongTerm; + FactorValue = 1d; + } + + public object Clone() + { + var newItem = new MaterialPartialFactor() + { + StressState = StressState, + CalcTerm = CalcTerm, + LimitState = LimitState, + FactorValue = FactorValue, + }; + return newItem; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs new file mode 100644 index 0000000..c49d904 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs @@ -0,0 +1,46 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public class MaterialSafetyFactor : IMaterialSafetyFactor + { + public string Name {get; set; } + public bool Take { get; set; } + public string Description { get; set; } + public List PartialFactors { get; } + + public MaterialSafetyFactor() + { + Take = true; + Name = "New factor"; + Description = "Material safety factor for ..."; + PartialFactors = new List(); + } + + public double GetFactor(StressStates stressState, CalcTerms calcTerm, LimitStates limitStates) + { + double result = 1d; + var coefficients = PartialFactors.Where(x => (x.StressState == stressState & x.CalcTerm == calcTerm & x.LimitState == limitStates)); + foreach (var item in coefficients) { result *= item.FactorValue;} + return result; + } + + public object Clone() + { + var newItem = new MaterialSafetyFactor(); + newItem.Take = Take; + newItem.Name = Name; + newItem.Description = Description; + foreach (var item in PartialFactors) + { + newItem.PartialFactors.Add(item.Clone() as IMaterialPartialFactor); + } + return newItem; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs new file mode 100644 index 0000000..3774e4f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs @@ -0,0 +1,16 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Materials.Libraries +{ + public class ReinforcementMaterialEntity : IReinforcementMaterialEntity + { + public CodeTypes CodeType { get; set; } + public string Name { get; set; } + public double MainStrength { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Sections/CompressedMember.cs b/StructureHelper/StructureHelperCommon/Models/Sections/CompressedMember.cs new file mode 100644 index 0000000..7c2722f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Sections/CompressedMember.cs @@ -0,0 +1,37 @@ +using StructureHelperCommon.Services.Sections; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Sections +{ + public class CompressedMember : ICompressedMember + { + public bool Buckling { get; set; } + public double GeometryLength { get; set; } + public double LengthFactorX { get; set; } + public double DiagramFactorX { get; set; } + public double LengthFactorY { get; set; } + public double DiagramFactorY { get; set; } + + + public CompressedMember() + { + Buckling = true; + GeometryLength = 3d; + LengthFactorX = 1d; + DiagramFactorX = 1d; + LengthFactorY = 1d; + DiagramFactorY = 1d; + } + + public object Clone() + { + var target = new CompressedMember(); + CompressedMemberServices.CopyProperties(this, target); + return target; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Sections/ICompressedMember.cs b/StructureHelper/StructureHelperCommon/Models/Sections/ICompressedMember.cs new file mode 100644 index 0000000..e3b3cb1 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Sections/ICompressedMember.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Sections +{ + public interface ICompressedMember : ICloneable + { + bool Buckling { get; set; } + double GeometryLength { get; set; } + double LengthFactorX { get; set; } + double DiagramFactorX { get; set; } + double LengthFactorY { get; set; } + double DiagramFactorY { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/ICenterShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/ICenterShape.cs new file mode 100644 index 0000000..5c8e01c --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/ICenterShape.cs @@ -0,0 +1,8 @@ +namespace StructureHelperCommon.Models.Shapes +{ + public interface ICenterShape + { + IPoint2D Center {get;} + IShape Shape { get;} + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/ICircle.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/ICircle.cs new file mode 100644 index 0000000..93b181f --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/ICircle.cs @@ -0,0 +1,7 @@ +namespace StructureHelperCommon.Models.Shapes +{ + public interface ICircle : IShape + { + double Diameter { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/ILineShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/ILineShape.cs new file mode 100644 index 0000000..ea29670 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/ILineShape.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Shapes +{ + public interface ILineShape : IShape + { + IPoint2D StartPoint { get; set; } + IPoint2D EndPoint { get; set; } + double Thickness { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/IPoint2D.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/IPoint2D.cs new file mode 100644 index 0000000..1ff92b1 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/IPoint2D.cs @@ -0,0 +1,20 @@ +namespace StructureHelperCommon.Models.Shapes +{ + /// + /// Interface for point of center of some shape + /// Интерфейс для точки центра некоторой формы + /// + public interface IPoint2D + { + /// + /// Coordinate of center of rectangle by local axis X, m + /// Координата центра вдоль локальной оси X, м + /// + double X { get; set; } + /// + /// Coordinate of center of rectangle by local axis Y, m + /// Координата центра вдоль локальной оси Y, м + /// + double Y { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/IPointShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/IPointShape.cs new file mode 100644 index 0000000..9692b68 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/IPointShape.cs @@ -0,0 +1,7 @@ +namespace StructureHelperCommon.Models.Shapes +{ + public interface IPointShape : IShape + { + double Area { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/IRectangleShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/IRectangleShape.cs new file mode 100644 index 0000000..d98dd10 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/IRectangleShape.cs @@ -0,0 +1,18 @@ +namespace StructureHelperCommon.Models.Shapes +{ + public interface IRectangleShape : IShape + { + /// + /// Width of rectangle, m + /// + double Width { get; set; } + /// + /// Height of rectangle, m + /// + double Height { get; set; } + /// + /// Angle of rotating rectangle, rad + /// + double Angle { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/IShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/IShape.cs new file mode 100644 index 0000000..d916974 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/IShape.cs @@ -0,0 +1,6 @@ +namespace StructureHelperCommon.Models.Shapes +{ + public interface IShape + { + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/LineShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/LineShape.cs new file mode 100644 index 0000000..a47471d --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/LineShape.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Models.Shapes +{ + /// + public class LineShape : ILineShape + { + /// + public IPoint2D StartPoint { get; set; } + /// + public IPoint2D EndPoint { get; set; } + /// + public double Thickness { get; set; } + + public LineShape() + { + StartPoint = new Point2D(); + EndPoint = new Point2D(); + Thickness = 0; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/Point2D.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/Point2D.cs new file mode 100644 index 0000000..0de37e1 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/Point2D.cs @@ -0,0 +1,11 @@ +namespace StructureHelperCommon.Models.Shapes +{ + /// + public class Point2D : IPoint2D + { + /// + public double X { get; set; } + /// + public double Y { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/PointShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/PointShape.cs new file mode 100644 index 0000000..15e0d6b --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/PointShape.cs @@ -0,0 +1,7 @@ +namespace StructureHelperCommon.Models.Shapes +{ + public class PointShape : IPointShape + { + public double Area { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Models/Shapes/RectangleShape.cs b/StructureHelper/StructureHelperCommon/Models/Shapes/RectangleShape.cs new file mode 100644 index 0000000..12f0a64 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Models/Shapes/RectangleShape.cs @@ -0,0 +1,13 @@ +namespace StructureHelperCommon.Models.Shapes +{ + /// + public class RectangleShape : IRectangleShape + { + /// + public double Width { get; set; } + /// + public double Height { get; set; } + /// + public double Angle { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Properties/AssemblyInfo.cs b/StructureHelper/StructureHelperCommon/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..27e2e0c --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанные со сборкой. +[assembly: AssemblyTitle("StructureHelperCommon")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("StructureHelperCommon")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("5dfec3fd-9677-47bb-9e88-eb71828b5913")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/StructureHelper/StructureHelperCommon/Services/Calculations/AccuracyService.cs b/StructureHelper/StructureHelperCommon/Services/Calculations/AccuracyService.cs new file mode 100644 index 0000000..c56bd0c --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Calculations/AccuracyService.cs @@ -0,0 +1,19 @@ +using LoaderCalculator; +using StructureHelperCommon.Models.Calculators; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Calculations +{ + public static class AccuracyService + { + public static void CopyProperties(IAccuracy source, IAccuracy target) + { + target.IterationAccuracy = source.IterationAccuracy; + target.MaxIterationCount = source.MaxIterationCount; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs b/StructureHelper/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs new file mode 100644 index 0000000..67f7980 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Windows.Media; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window; + +namespace StructureHelperCommon.Services.ColorServices +{ + public static class ColorProcessor + { + public static Color GetRandomColor() + { + Thread.Sleep(100); + var randomR = new Random(new Random((int)DateTime.Now.Ticks % 1000).Next(50)).Next(0, 255); + var randomG = new Random(new Random((int)DateTime.Now.Ticks % 200).Next(100, 200)).Next(0, 255); + var randomB = new Random(new Random((int)DateTime.Now.Ticks % 50).Next(500, 1000)).Next(0, 255); + return Color.FromRgb((byte)randomR, (byte)randomG, (byte)randomB); + } + public static void EditColor(ref Color wpfColor) + { + var winformsColor = System.Drawing.Color.FromArgb(wpfColor.A, wpfColor.R, wpfColor.G, wpfColor.B); + ColorDialog dialog = new ColorDialog(); + dialog.FullOpen = true; + dialog.Color = winformsColor; + if (dialog.ShowDialog() == DialogResult.OK) + { + wpfColor = Color.FromArgb(dialog.Color.A, dialog.Color.R, dialog.Color.G, dialog.Color.B); + } + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/Forces/ForceTupleService.cs b/StructureHelper/StructureHelperCommon/Services/Forces/ForceTupleService.cs new file mode 100644 index 0000000..ccf0951 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Forces/ForceTupleService.cs @@ -0,0 +1,54 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Forces +{ + public static class ForceTupleService + { + public static IForceTuple MoveTupleIntoPoint(IForceTuple forceTuple, IPoint2D point2D) + { + var newTuple = forceTuple.Clone() as IForceTuple; + newTuple.Mx += newTuple.Nz * point2D.Y; + newTuple.My -= newTuple.Nz * point2D.X; + return newTuple; + } + + public static IForceTuple InterpolateTuples(IForceTuple endTuple, IForceTuple startTuple = null, double coefficient = 0.5d) + { + if (startTuple == null) startTuple = new ForceTuple(); + double dMx, dMy, dNz; + dMx = endTuple.Mx - startTuple.Mx; + dMy = endTuple.My - startTuple.My; + dNz = endTuple.Nz - startTuple.Nz; + return new ForceTuple() + { + Mx = startTuple.Mx + dMx * coefficient, + My = startTuple.My + dMy * coefficient, + Nz = startTuple.Nz + dNz * coefficient + }; + } + + + public static List InterpolateDesignTuple(IDesignForceTuple finishDesignForce, IDesignForceTuple startDesignForce = null, int stepCount = 10) + { + if (startDesignForce.LimitState != finishDesignForce.LimitState) throw new StructureHelperException(ErrorStrings.LimitStatesIsNotValid); + if (startDesignForce.CalcTerm != finishDesignForce.CalcTerm) throw new StructureHelperException(ErrorStrings.LoadTermIsNotValid); + var tuples =new List(); + double step = 1d / stepCount; + for (int i = 0; i <= stepCount; i++) + { + var currentTuple = InterpolateTuples(finishDesignForce.ForceTuple, startDesignForce.ForceTuple, i * step); + var currentDesignTuple = new DesignForceTuple() { LimitState = finishDesignForce.LimitState, CalcTerm = finishDesignForce.CalcTerm, ForceTuple = currentTuple }; + tuples.Add(currentDesignTuple); + } + return tuples; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/Forces/StrainTupleService.cs b/StructureHelper/StructureHelperCommon/Services/Forces/StrainTupleService.cs new file mode 100644 index 0000000..6a488bb --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Forces/StrainTupleService.cs @@ -0,0 +1,35 @@ +using LoaderCalculator.Data.Matrix; +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Forces +{ + public static class StrainTupleService + { + public static void CopyProperties (IStrainTuple source, IStrainTuple target, double factor = 1 ) + { + target.Kx = source.Kx * factor; + target.Ky = source.Ky * factor; + target.EpsZ = source.EpsZ * factor; + target.Gx = source.Gx * factor; + target.Gy = source.Gy * factor; + target.Gz = source.Gz * factor; + } + + public static IStrainMatrix ConvertToLoaderStrainMatrix(IStrainTuple strainTuple) + { + IStrainMatrix strainMatrix = new StrainMatrix() { Kx = strainTuple.EpsZ, Ky = strainTuple.Ky, EpsZ = strainTuple.EpsZ }; + return strainMatrix; + } + + public static IStrainTuple ConvertToStrainTuple(IStrainMatrix strainMatrix) + { + IStrainTuple strainTuple = new StrainTuple() { Kx = strainMatrix.Kx, Ky = strainMatrix.Ky, EpsZ = strainMatrix.EpsZ }; + return strainTuple; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs b/StructureHelper/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs new file mode 100644 index 0000000..e38a53e --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs @@ -0,0 +1,22 @@ +using StructureHelperCommon.Models.Sections; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Sections +{ + public static class CompressedMemberServices + { + public static void CopyProperties(ICompressedMember source, ICompressedMember target) + { + target.Buckling = source.Buckling; + target.GeometryLength = source.GeometryLength; + target.LengthFactorX = source.LengthFactorX; + target.DiagramFactorX = source.DiagramFactorX; + target.LengthFactorY = source.LengthFactorY; + target.DiagramFactorY = source.DiagramFactorY; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/ShapeServices/ShapeService.cs b/StructureHelper/StructureHelperCommon/Services/ShapeServices/ShapeService.cs new file mode 100644 index 0000000..7c75825 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/ShapeServices/ShapeService.cs @@ -0,0 +1,27 @@ +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.ShapeServices +{ + public static class ShapeService + { + public static void CopyLineProperties(ILineShape source, ILineShape target) + { + target.StartPoint.X = source.StartPoint.X; + target.StartPoint.Y = source.StartPoint.Y; + target.EndPoint.X = source.EndPoint.X; + target.EndPoint.Y = source.EndPoint.Y; + } + + public static void CopyRectangleProperties(IRectangleShape source, IRectangleShape target) + { + target.Width = source.Width; + target.Height = source.Height; + target.Angle = source.Angle; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/Units/IUnit.cs b/StructureHelper/StructureHelperCommon/Services/Units/IUnit.cs new file mode 100644 index 0000000..7a81584 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Units/IUnit.cs @@ -0,0 +1,20 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Units +{ + /// + /// Interface for measurements Unit + /// + public interface IUnit + { + + UnitTypes UnitType { get; } + string Name { get; } + double Multiplyer { get; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/Units/Unit.cs b/StructureHelper/StructureHelperCommon/Services/Units/Unit.cs new file mode 100644 index 0000000..d3e2cf2 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Units/Unit.cs @@ -0,0 +1,16 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Units +{ + public class Unit : IUnit + { + public UnitTypes UnitType { get; set; } + public string Name { get; set; } + public double Multiplyer { get; set; } + } +} diff --git a/StructureHelper/StructureHelperCommon/Services/Units/UnitsFactory.cs b/StructureHelper/StructureHelperCommon/Services/Units/UnitsFactory.cs new file mode 100644 index 0000000..8620ad4 --- /dev/null +++ b/StructureHelper/StructureHelperCommon/Services/Units/UnitsFactory.cs @@ -0,0 +1,44 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperCommon.Services.Units +{ + public static class UnitsFactory + { + public static List GetUnitCollection() + { + List units = new List(); + UnitTypes type = UnitTypes.Length; + units.Add(new Unit() { UnitType = type, Name = "m", Multiplyer = 1d }); + units.Add(new Unit() { UnitType = type, Name = "mm", Multiplyer = 1e3d }); + units.Add(new Unit() { UnitType = type, Name = "cm", Multiplyer = 1e2d }); + units.Add(new Unit() { UnitType = type, Name = "km", Multiplyer = 1e-3d }); + type = UnitTypes.Area; + units.Add(new Unit() { UnitType = type, Name = "m2", Multiplyer = 1d }); + units.Add(new Unit() { UnitType = type, Name = "mm2", Multiplyer = 1e6d }); + units.Add(new Unit() { UnitType = type, Name = "cm2", Multiplyer = 1e4d }); + type = UnitTypes.Stress; + units.Add(new Unit() { UnitType = type, Name = "Pa", Multiplyer = 1d }); + units.Add(new Unit() { UnitType = type, Name = "kPa", Multiplyer = 1e-3d }); + units.Add(new Unit() { UnitType = type, Name = "MPa", Multiplyer = 1e-6d }); + type = UnitTypes.Force; + units.Add(new Unit() { UnitType = type, Name = "N", Multiplyer = 1d }); + units.Add(new Unit() { UnitType = type, Name = "kN", Multiplyer = 1e-3d }); + units.Add(new Unit() { UnitType = type, Name = "MN", Multiplyer = 1e-6d }); + type = UnitTypes.Moment; + units.Add(new Unit() { UnitType = type, Name = "Nm", Multiplyer = 1d }); + units.Add(new Unit() { UnitType = type, Name = "kNm", Multiplyer = 1e-3d }); + units.Add(new Unit() { UnitType = type, Name = "kgfm", Multiplyer = 9.8d }); + units.Add(new Unit() { UnitType = type, Name = "tfm", Multiplyer = 9.8e-3d }); + type = UnitTypes.Curvature; + units.Add(new Unit() { UnitType = type, Name = "1/m", Multiplyer = 1d }); + units.Add(new Unit() { UnitType = type, Name = "1/mm", Multiplyer = 1e-3d }); + units.Add(new Unit() { UnitType = type, Name = "1/cm", Multiplyer = 1e-2d }); + return units; + } + } +} diff --git a/StructureHelper/StructureHelperCommon/StructureHelperCommon.csproj b/StructureHelper/StructureHelperCommon/StructureHelperCommon.csproj new file mode 100644 index 0000000..d5e146a --- /dev/null +++ b/StructureHelper/StructureHelperCommon/StructureHelperCommon.csproj @@ -0,0 +1,118 @@ + + + + + Debug + AnyCPU + {5DFEC3FD-9677-47BB-9E88-EB71828B5913} + Library + Properties + StructureHelperCommon + StructureHelperCommon + v4.7.2 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\Libraries\LoaderCalculator.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/StructureHelperCommon/StructureHelperCommon.csproj.bak b/StructureHelper/StructureHelperCommon/StructureHelperCommon.csproj.bak similarity index 100% rename from StructureHelperCommon/StructureHelperCommon.csproj.bak rename to StructureHelper/StructureHelperCommon/StructureHelperCommon.csproj.bak diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs new file mode 100644 index 0000000..dc08f1f --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs @@ -0,0 +1,24 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System.Collections.Generic; + +namespace StructureHelperLogics.Models.Calculations.CalculationProperties +{ + public class CalculationProperty : ICalculationProperty + { + public List ForceCombinations { get; set; } + public LimitStates LimitState { get; set; } + public CalcTerms CalcTerm { get; set; } + public IIterationProperty IterationProperty { get; } + + public CalculationProperty() + { + ForceCombinations = new List + { + new ForceCombination() + }; + LimitState = LimitStates.ULS; + CalcTerm = CalcTerms.ShortTerm; + IterationProperty = new IterationProperty() { Accuracy = 0.001d, MaxIterationCount = 100}; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/ForceCombination.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/ForceCombination.cs new file mode 100644 index 0000000..731ddca --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/ForceCombination.cs @@ -0,0 +1,19 @@ +using LoaderCalculator.Data.Matrix; +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Calculations.CalculationProperties +{ + public class ForceCombination : IForceCombination + { + public IForceMatrix ForceMatrix { get; private set; } + public bool TakeInCalculate { get; set; } + + public ForceCombination() + { + ForceMatrix = new ForceMatrix() { Mx = 0d, My = 0d, Nz = 0d}; + TakeInCalculate = true; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs new file mode 100644 index 0000000..3530460 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs @@ -0,0 +1,13 @@ +using StructureHelperCommon.Infrastructures.Enums; +using System.Collections.Generic; + +namespace StructureHelperLogics.Models.Calculations.CalculationProperties +{ + public interface ICalculationProperty + { + List ForceCombinations { get; set; } + LimitStates LimitState { get; set; } + CalcTerms CalcTerm { get; set; } + IIterationProperty IterationProperty {get;} + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IForceCombination.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IForceCombination.cs new file mode 100644 index 0000000..edbbc6b --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IForceCombination.cs @@ -0,0 +1,13 @@ +using LoaderCalculator.Data.Matrix; +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Calculations.CalculationProperties +{ + public interface IForceCombination + { + IForceMatrix ForceMatrix { get; } + bool TakeInCalculate { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IIterationProperty.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IIterationProperty.cs new file mode 100644 index 0000000..05a3023 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IIterationProperty.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Calculations.CalculationProperties +{ + public interface IIterationProperty + { + double Accuracy { get; set; } + int MaxIterationCount { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IterationProperty.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IterationProperty.cs new file mode 100644 index 0000000..51a99fe --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationProperties/IterationProperty.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Calculations.CalculationProperties +{ + public class IterationProperty : IIterationProperty + { + public double Accuracy { get; set; } + public int MaxIterationCount { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationsResults/CalculationResult.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationsResults/CalculationResult.cs new file mode 100644 index 0000000..1c0eb99 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationsResults/CalculationResult.cs @@ -0,0 +1,18 @@ +using LoaderCalculator.Data.ResultData; +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Calculations.CalculationsResults +{ + /// + class CalculationResult : ICalculationResult + { + /// + public bool IsValid { get; set; } + /// + public string Desctription { get; set; } + /// + public ILoaderResults LoaderResults { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationsResults/ICalculationResult.cs b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationsResults/ICalculationResult.cs new file mode 100644 index 0000000..5ab8105 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Calculations/CalculationsResults/ICalculationResult.cs @@ -0,0 +1,26 @@ +using LoaderCalculator.Data.ResultData; +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Calculations.CalculationsResults +{ + /// + /// Represent result of calculation of ndm analisys + /// + public interface ICalculationResult + { + /// + /// True if result of calculation is valid + /// + bool IsValid { get; } + /// + /// Text of result of calculations + /// + string Desctription { get; } + /// + /// Keep result of calculations from ndm-library + /// + ILoaderResults LoaderResults { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/CrossSections/CrossSection.cs b/StructureHelper/StructureHelperLogics/Models/CrossSections/CrossSection.cs new file mode 100644 index 0000000..5ecbe14 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/CrossSections/CrossSection.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.CrossSections +{ + public class CrossSection : ICrossSection + { + public ICrossSectionRepository SectionRepository { get; private set; } + + public CrossSection() + { + SectionRepository = new CrossSectionRepository(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs b/StructureHelper/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs new file mode 100644 index 0000000..8a634c0 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs @@ -0,0 +1,29 @@ +using StructureHelper.Models.Materials; +using StructureHelperCommon.Models.Forces; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Analyses; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.CrossSections +{ + public class CrossSectionRepository : ICrossSectionRepository + { + public List ForceCombinationLists { get; private set; } + public List HeadMaterials { get; private set; } + public List Primitives { get; } + public List CalculatorsList { get; private set; } + + public CrossSectionRepository() + { + ForceCombinationLists = new List(); + HeadMaterials = new List(); + Primitives = new List(); + CalculatorsList = new List(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/CrossSections/ICrossSection.cs b/StructureHelper/StructureHelperLogics/Models/CrossSections/ICrossSection.cs new file mode 100644 index 0000000..2b6a597 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/CrossSections/ICrossSection.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.CrossSections +{ + public interface ICrossSection + { + ICrossSectionRepository SectionRepository { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs b/StructureHelper/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs new file mode 100644 index 0000000..2499617 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs @@ -0,0 +1,20 @@ +using StructureHelper.Models.Materials; +using StructureHelperCommon.Models.Forces; +using StructureHelperLogics.Models.Materials; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Analyses; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.CrossSections +{ + public interface ICrossSectionRepository : IHasHeadMaterials, IHasPrimitives + { + List ForceCombinationLists { get; } + List CalculatorsList { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs new file mode 100644 index 0000000..1d6a5d3 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/ConcreteLibMaterial.cs @@ -0,0 +1,54 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Materials.Libraries; +using LCM = LoaderCalculator.Data.Materials; +using LCMB = LoaderCalculator.Data.Materials.MaterialBuilders; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using StructureHelperCommon.Infrastructures.Settings; + +namespace StructureHelperLogics.Models.Materials +{ + public class ConcreteLibMaterial : IConcreteLibMaterial + { + public ILibMaterialEntity MaterialEntity { get; set; } + public List SafetyFactors { get; } + public bool TensionForULS { get ; set; } + public bool TensionForSLS { get; set; } + + private IMaterialOptionLogic optionLogic; + + public ConcreteLibMaterial() + { + SafetyFactors = new List(); + SafetyFactors.AddRange(PartialCoefficientFactory.GetDefaultConcreteSafetyFactors(ProgramSetting.CodeType)); + optionLogic = new MaterialOptionLogic(new LCMB.ConcreteOptions()); + } + + public object Clone() + { + return new ConcreteLibMaterial() { MaterialEntity = MaterialEntity, TensionForULS = TensionForULS, TensionForSLS = TensionForSLS }; + } + + public LCM.IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + var materialOptions = optionLogic.SetMaterialOptions(MaterialEntity, limitState, calcTerm); + double compressionVal = 1d; + double tensionVal = 1d; + foreach (var item in SafetyFactors.Where(x => x.Take == true)) + { + compressionVal *= item.GetFactor(StressStates.Compression, calcTerm, limitState); + tensionVal *= item.GetFactor(StressStates.Tension, calcTerm, limitState); + } + materialOptions.ExternalFactor.Compressive = compressionVal; + materialOptions.ExternalFactor.Tensile = tensionVal; + LCMB.IMaterialBuilder builder = new LCMB.ConcreteBuilder(materialOptions); + LCMB.IBuilderDirector director = new LCMB.BuilderDirector(builder); + return director.BuildMaterial(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/ElasticMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/ElasticMaterial.cs new file mode 100644 index 0000000..0d47185 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/ElasticMaterial.cs @@ -0,0 +1,43 @@ +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperLogics.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public class ElasticMaterial : IElasticMaterial + { + public double Modulus { get; set; } + public double CompressiveStrength { get; set; } + public double TensileStrength { get; set; } + + public IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + IMaterial material = new Material(); + material.InitModulus = Modulus; + IEnumerable parameters = new List() { Modulus, CompressiveStrength, TensileStrength}; + material.DiagramParameters = parameters; + material.Diagram = GetStress; + return material; + } + + private double GetStress (IEnumerable parameters, double strain) + { + double modulus = parameters.First(); + double stress = modulus * strain; + double compressiveStrength = (-1d) * parameters.ElementAt(1); + double tensileStrength = parameters.ElementAt(2); + if (stress > tensileStrength || stress < compressiveStrength) { return 0d; } + else { return stress; } + } + + public object Clone() + { + return new ElasticMaterial() { Modulus = Modulus, CompressiveStrength = CompressiveStrength, TensileStrength = TensileStrength }; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/Factories/HeadMaterialFactory.cs b/StructureHelper/StructureHelperLogics/Models/Materials/Factories/HeadMaterialFactory.cs new file mode 100644 index 0000000..82ef0a7 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/Factories/HeadMaterialFactory.cs @@ -0,0 +1,66 @@ +using StructureHelper.Models.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Settings; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Materials.Libraries; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public enum HeadmaterialType + { + Concrete40, + Reinforecement400, + Elastic200 + } + + public static class HeadMaterialFactory + { + private static CodeTypes codeType; + private static IEnumerable LibConcreteMaterials => LibMaterialPepository.GetConcreteRepository(codeType); + private static IEnumerable LibReinforcementMaterials => LibMaterialPepository.GetReinforcementRepository(codeType); + + public static IHeadMaterial GetHeadMaterial(HeadmaterialType type, CodeTypes code) + { + codeType = code; + if (type == HeadmaterialType.Concrete40) { return GetConcrete40(); } + if (type == HeadmaterialType.Reinforecement400) { return GetReinforcement400(); } + if (type == HeadmaterialType.Elastic200) { return GetElastic200(); } + else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown + nameof(type)); + } + + private static IHeadMaterial GetElastic200() + { + var material = new HeadMaterial(); + material.HelperMaterial = new ElasticMaterial() { Modulus = 2e11d, CompressiveStrength = 4e8d, TensileStrength = 4e8d }; + return material; + } + + private static IHeadMaterial GetReinforcement400() + { + var material = new HeadMaterial() { Name = "New reinforcement" }; + var libMaterial = LibReinforcementMaterials.Where(x => x.Name.Contains("400")).First(); + var libMat = new ReinforcementLibMaterial(); + libMat.MaterialEntity = libMaterial; + material.HelperMaterial = libMat; + return material; + } + + private static IHeadMaterial GetConcrete40() + { + var material = new HeadMaterial(); + var libMaterial = LibConcreteMaterials.Where(x => x.Name.Contains("40")).First(); + var libMat = new ConcreteLibMaterial(); + libMat.MaterialEntity = libMaterial; + libMat.TensionForULS = false; + libMat.TensionForSLS = true; + material.HelperMaterial = libMat; + return material; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/Factories/PartialCoefficientFactory.cs b/StructureHelper/StructureHelperLogics/Models/Materials/Factories/PartialCoefficientFactory.cs new file mode 100644 index 0000000..175d93d --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/Factories/PartialCoefficientFactory.cs @@ -0,0 +1,44 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Materials.Libraries; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public static class PartialCoefficientFactory + { + public static List GetDefaultConcreteSafetyFactors(CodeTypes codeType) + { + if (codeType == CodeTypes.SP63_13330_2018) return GetConcreteFactorsSP63_2018(); + else if (codeType == CodeTypes.EuroCode_2_1990) return GetConcreteFactorsEC2_1990(); + else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown + ": " + codeType); + } + + private static List GetConcreteFactorsEC2_1990() + { + List factors = new List(); + return factors; + } + + private static List GetConcreteFactorsSP63_2018() + { + List factors = new List(); + IMaterialSafetyFactor coefficient; + coefficient = ConcreteFactorsFactory.GetFactor(FactorType.LongTermFactor); + coefficient.Take = true; + factors.Add(coefficient); + coefficient = ConcreteFactorsFactory.GetFactor(FactorType.PlainConcreteFactor); + coefficient.Take = false; + factors.Add(coefficient); + coefficient = ConcreteFactorsFactory.GetFactor(FactorType.BleedingFactor); + coefficient.Take = false; + factors.Add(coefficient); + return factors; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/HeadMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/HeadMaterial.cs new file mode 100644 index 0000000..7ae52e0 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/HeadMaterial.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Media; +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Services.ColorServices; +using StructureHelperLogics.Models.Materials; + +namespace StructureHelper.Models.Materials +{ + public class HeadMaterial : IHeadMaterial, INotifyPropertyChanged + { + private Color color; + + public string Id { get; } + public string Name { get; set; } + public Color Color + { + get => color; + set + { + color = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Color))); + } + } + public IHelperMaterial HelperMaterial {get; set;} + + public HeadMaterial() + { + Id = Convert.ToString(Guid.NewGuid()); + Color = ColorProcessor.GetRandomColor(); + } + + public event PropertyChangedEventHandler PropertyChanged; + + public IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + return HelperMaterial.GetLoaderMaterial(limitState, calcTerm); + } + + public object Clone() + { + IHeadMaterial material = new HeadMaterial + { + Name = Name, + Color = Color, + HelperMaterial = HelperMaterial.Clone() as IHelperMaterial + }; + return material; + } + + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/HeadMaterialRepository.cs b/StructureHelper/StructureHelperLogics/Models/Materials/HeadMaterialRepository.cs new file mode 100644 index 0000000..3afd932 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/HeadMaterialRepository.cs @@ -0,0 +1,32 @@ +using StructureHelper.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public class HeadMaterialRepository : IHeadMaterialRepository + { + public object Parent { get; private set; } + + public List HeadMaterials { get; set; } + + public HeadMaterialRepository() + { + HeadMaterials = new List(); + } + + public HeadMaterialRepository(object parent) + { + Parent = parent; + HeadMaterials = new List(); + } + + public void RegisterParent(object obj) + { + Parent = obj; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs new file mode 100644 index 0000000..0cac2da --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IConcreteLibMaterial.cs @@ -0,0 +1,15 @@ +using StructureHelperCommon.Models.Materials.Libraries; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IConcreteLibMaterial : ILibMaterial + { + bool TensionForULS { get; set; } + bool TensionForSLS { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IElasticMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IElasticMaterial.cs new file mode 100644 index 0000000..9974916 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IElasticMaterial.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IElasticMaterial : IHelperMaterial + { + double Modulus { get; set; } + double CompressiveStrength { get; set; } + double TensileStrength { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IHasHeadMaterials.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IHasHeadMaterials.cs new file mode 100644 index 0000000..8a21667 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IHasHeadMaterials.cs @@ -0,0 +1,14 @@ +using StructureHelper.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IHasHeadMaterials + { + List HeadMaterials { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IHeadMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IHeadMaterial.cs new file mode 100644 index 0000000..fb1b017 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IHeadMaterial.cs @@ -0,0 +1,22 @@ +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperLogics.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace StructureHelper.Models.Materials +{ + public interface IHeadMaterial : ICloneable + { + string Id { get; } + string Name { get; set; } + Color Color { get; set; } + IHelperMaterial HelperMaterial { get; set; } + //MaterialDefinitionBase Material { get; set; } + IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IHeadMaterialRepository.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IHeadMaterialRepository.cs new file mode 100644 index 0000000..5b16aca --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IHeadMaterialRepository.cs @@ -0,0 +1,18 @@ +using StructureHelper.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Serialization; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IHeadMaterialRepository + { + object Parent { get; } + List HeadMaterials { get; set; } + void RegisterParent(object obj); + + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IHelperMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IHelperMaterial.cs new file mode 100644 index 0000000..a119393 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IHelperMaterial.cs @@ -0,0 +1,14 @@ +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperLogics.Models.Materials; +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IHelperMaterial : ICloneable + { + IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/ILibMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/ILibMaterial.cs new file mode 100644 index 0000000..b162bce --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/ILibMaterial.cs @@ -0,0 +1,15 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Materials.Libraries; +using StructureHelperLogics.Models.Materials; +using System; +using System.Collections.Generic; +using System.Text; + +namespace StructureHelperLogics.Models.Materials +{ + public interface ILibMaterial : IHelperMaterial + { + ILibMaterialEntity MaterialEntity { get; set; } + List SafetyFactors { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IMaterialOptionLogic.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IMaterialOptionLogic.cs new file mode 100644 index 0000000..df7e3f0 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IMaterialOptionLogic.cs @@ -0,0 +1,12 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Materials.Libraries; +using LCM = LoaderCalculator.Data.Materials; +using LCMB = LoaderCalculator.Data.Materials.MaterialBuilders; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IMaterialOptionLogic + { + LCMB.IMaterialOptions SetMaterialOptions(ILibMaterialEntity materialEntity, LimitStates limitState, CalcTerms calcTerm); + } +} \ No newline at end of file diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs new file mode 100644 index 0000000..7470504 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/IReinforcementLibMaterial.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Materials +{ + public interface IReinforcementLibMaterial : ILibMaterial + { + + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/LibMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/LibMaterial.cs new file mode 100644 index 0000000..87302dc --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/LibMaterial.cs @@ -0,0 +1,91 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Materials.Libraries; +using System.Collections.Generic; +using LCM = LoaderCalculator.Data.Materials; +using LCMB = LoaderCalculator.Data.Materials.MaterialBuilders; + +namespace StructureHelperLogics.Models.Materials +{ + public class LibMaterial : ILibMaterial + { + private LCMB.IMaterialOptions materialOptions; + + public MaterialTypes MaterialType { get; set; } + private CodeTypes codeType; + + private LimitStates limitState; + private CalcTerms calcTerm; + public string Name { get; set; } + public double MainStrength { get; set; } + + public ILibMaterialEntity MaterialEntity { get; set; } + + public List SafetyFactors { get; } + + public LibMaterial(MaterialTypes materialType, CodeTypes codeType, string name, double mainStrength) + { + this.MaterialType = materialType; + this.codeType = codeType; + Name = name; + MainStrength = mainStrength; + } + + public LCM.IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + this.limitState = limitState; + this.calcTerm = calcTerm; + if (MaterialType == MaterialTypes.Concrete) + { return GetConcrete();} + else if (MaterialType == MaterialTypes.Reinforcement) + { return GetReinfrocement();} + else throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown}: material type = {MaterialType}, code type = {codeType}"); + } + + + private LCM.IMaterial GetReinfrocement() + { + materialOptions = new LCMB.ReinforcementOptions(); + SetMaterialOptions(); + LCMB.IMaterialBuilder builder = new LCMB.ReinforcementBuilder(materialOptions); + LCMB.IBuilderDirector director = new LCMB.BuilderDirector(builder); + return director.BuildMaterial(); + } + + private LCM.IMaterial GetConcrete() + { + materialOptions = new LCMB.ConcreteOptions(); + SetMaterialOptions(); + LCMB.IMaterialBuilder builder = new LCMB.ConcreteBuilder(materialOptions); + LCMB.IBuilderDirector director = new LCMB.BuilderDirector(builder); + return director.BuildMaterial(); + } + + private void SetMaterialOptions() + { + materialOptions.Strength = MainStrength; + if (codeType == CodeTypes.EuroCode_2_1990) + { + materialOptions.CodesType = LCMB.CodesType.EC2_1990; + } + else if (codeType == CodeTypes.SP63_13330_2018) + { + materialOptions.CodesType = LCMB.CodesType.SP63_2018; + } + else { throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown} : {codeType}"); } + if (limitState == LimitStates.ULS) { materialOptions.LimitState = LCMB.LimitStates.Collapse; } + else if (limitState == LimitStates.SLS) { materialOptions.LimitState = LCMB.LimitStates.ServiceAbility; } + else if (limitState == LimitStates.Special) { materialOptions.LimitState = LCMB.LimitStates.Special; } + else { throw new StructureHelperException(ErrorStrings.LimitStatesIsNotValid); } + if (calcTerm == CalcTerms.ShortTerm) { materialOptions.IsShortTerm = true; } + else if (calcTerm == CalcTerms.LongTerm) { materialOptions.IsShortTerm = false; } + else { throw new StructureHelperException(ErrorStrings.LoadTermIsNotValid); } + } + + public object Clone() + { + return new LibMaterial(this.MaterialType, this.codeType, this.Name, this.MainStrength); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/MaterialOptionLogic.cs b/StructureHelper/StructureHelperLogics/Models/Materials/MaterialOptionLogic.cs new file mode 100644 index 0000000..86fe4d6 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/MaterialOptionLogic.cs @@ -0,0 +1,46 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Materials.Libraries; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LCMB = LoaderCalculator.Data.Materials.MaterialBuilders; + +namespace StructureHelperLogics.Models.Materials +{ + public class MaterialOptionLogic : IMaterialOptionLogic + { + private LCMB.IMaterialOptions materialOptions; + + public MaterialOptionLogic(LCMB.IMaterialOptions materialOptions) + { + this.materialOptions = materialOptions; + } + + public LCMB.IMaterialOptions SetMaterialOptions(ILibMaterialEntity materialEntity, LimitStates limitState, CalcTerms calcTerm) + { + materialOptions.Strength = materialEntity.MainStrength; + if (materialEntity.CodeType == CodeTypes.EuroCode_2_1990) + { + materialOptions.CodesType = LCMB.CodesType.EC2_1990; + } + else if (materialEntity.CodeType == CodeTypes.SP63_13330_2018) + { + materialOptions.CodesType = LCMB.CodesType.SP63_2018; + } + else { throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown} : {materialOptions.CodesType}"); } + if (limitState == LimitStates.ULS) { materialOptions.LimitState = LCMB.LimitStates.Collapse; } + else if (limitState == LimitStates.SLS) { materialOptions.LimitState = LCMB.LimitStates.ServiceAbility; } + else if (limitState == LimitStates.Special) { materialOptions.LimitState = LCMB.LimitStates.Special; } + else { throw new StructureHelperException(ErrorStrings.LimitStatesIsNotValid); } + if (calcTerm == CalcTerms.ShortTerm) { materialOptions.IsShortTerm = true; } + else if (calcTerm == CalcTerms.LongTerm) { materialOptions.IsShortTerm = false; } + else { throw new StructureHelperException(ErrorStrings.LoadTermIsNotValid); } + + return materialOptions; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Materials/ReinforcementLibMaterial.cs b/StructureHelper/StructureHelperLogics/Models/Materials/ReinforcementLibMaterial.cs new file mode 100644 index 0000000..94f86fc --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Materials/ReinforcementLibMaterial.cs @@ -0,0 +1,48 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Materials.Libraries; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using LCM = LoaderCalculator.Data.Materials; +using LCMB = LoaderCalculator.Data.Materials.MaterialBuilders; + +namespace StructureHelperLogics.Models.Materials +{ + public class ReinforcementLibMaterial : IReinforcementLibMaterial + { + public ILibMaterialEntity MaterialEntity { get; set; } + public List SafetyFactors { get; } + + private IMaterialOptionLogic optionLogic; + + public ReinforcementLibMaterial() + { + SafetyFactors = new List(); + optionLogic = new MaterialOptionLogic(new LCMB.ReinforcementOptions()); + } + + public object Clone() + { + return new ReinforcementLibMaterial() { MaterialEntity = MaterialEntity}; + } + + public LCM.IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + var materialOptions = optionLogic.SetMaterialOptions(MaterialEntity, limitState, calcTerm); + double compressionVal = 1d; + double tensionVal = 1d; + foreach (var item in SafetyFactors.Where(x => x.Take == true)) + { + compressionVal *= item.GetFactor(StressStates.Compression, calcTerm, limitState); + tensionVal *= item.GetFactor(StressStates.Tension, calcTerm, limitState); + } + materialOptions.ExternalFactor.Compressive = compressionVal; + materialOptions.ExternalFactor.Tensile = tensionVal; + LCMB.IMaterialBuilder builder = new LCMB.ReinforcementBuilder(materialOptions); + LCMB.IBuilderDirector director = new LCMB.BuilderDirector(builder); + return director.BuildMaterial(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Primitives/IPrimitive.cs b/StructureHelper/StructureHelperLogics/Models/Primitives/IPrimitive.cs new file mode 100644 index 0000000..90e9c09 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Primitives/IPrimitive.cs @@ -0,0 +1,21 @@ +using LoaderCalculator.Data.Ndms; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Primitives +{ + public interface IPrimitive : ISaveable, ICloneable + { + string Name { get; set; } + IPoint2D Center { get; } + IShape Shape { get; } + + IEnumerable GetNdmPrimitives(); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Primitives/LinePrimitive.cs b/StructureHelper/StructureHelperLogics/Models/Primitives/LinePrimitive.cs new file mode 100644 index 0000000..ff0cffe --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Primitives/LinePrimitive.cs @@ -0,0 +1,38 @@ +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Primitives +{ + public class LinePrimitive : IPrimitive + { + public int Id { get; set; } + public string Name { get; set; } + public IPoint2D Center { get; set; } + public IShape Shape { get; } + + public LinePrimitive() + { + + } + + public IEnumerable GetNdmPrimitives() + { + throw new NotImplementedException(); + } + + public object Clone() + { + throw new NotImplementedException(); + } + + public void Save() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/CalculatorLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/CalculatorLogic.cs new file mode 100644 index 0000000..9a2ad9f --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/CalculatorLogic.cs @@ -0,0 +1,20 @@ +using StructureHelperLogics.NdmCalculations.Analyses; +using StructureHelperLogics.NdmCalculations.Analyses.ByForces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + internal class CalculatorLogic : ICalculatorLogic + { + public IEnumerable GetNdmCalculators() + { + var calculators = new List(); + calculators.Add(new ForceCalculator() { Name = "New Force Calculator"}); + return calculators; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ForceLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ForceLogic.cs new file mode 100644 index 0000000..9d078da --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ForceLogic.cs @@ -0,0 +1,22 @@ +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + internal class ForceLogic : IForceLogic + { + public IEnumerable GetCombinationList() + { + var combinations = new List(); + var combination = new ForceCombinationList() { Name = "New Force Action"}; + combination.DesignForces.Clear(); + combination.DesignForces.AddRange(ForceCombinationListFactory.GetDesignForces(DesignForceType.Suit_1)); + combinations.Add(combination); + return combinations; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ICalculatorLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ICalculatorLogic.cs new file mode 100644 index 0000000..dc4453a --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ICalculatorLogic.cs @@ -0,0 +1,14 @@ +using StructureHelperLogics.NdmCalculations.Analyses; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + internal interface ICalculatorLogic + { + IEnumerable GetNdmCalculators(); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ICrossSectionTemplate.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ICrossSectionTemplate.cs new file mode 100644 index 0000000..2837f00 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ICrossSectionTemplate.cs @@ -0,0 +1,14 @@ +using StructureHelperLogics.Models.CrossSections; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + public interface ICrossSectionTemplate + { + ICrossSection GetCrossSection(); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/IForceLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/IForceLogic.cs new file mode 100644 index 0000000..2375304 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/IForceLogic.cs @@ -0,0 +1,14 @@ +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + internal interface IForceLogic + { + IEnumerable GetCombinationList(); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/IMaterialLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/IMaterialLogic.cs new file mode 100644 index 0000000..bb164f1 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/IMaterialLogic.cs @@ -0,0 +1,14 @@ +using StructureHelper.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + internal interface IMaterialLogic + { + IEnumerable GetHeadMaterials(); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ISectionGeometryLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ISectionGeometryLogic.cs new file mode 100644 index 0000000..1a8c150 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/ISectionGeometryLogic.cs @@ -0,0 +1,14 @@ +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections +{ + public interface ISectionGeometryLogic + { + IEnumerable GetNdmPrimitives(); + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/IRCGeometryLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/IRCGeometryLogic.cs new file mode 100644 index 0000000..687afd8 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/IRCGeometryLogic.cs @@ -0,0 +1,14 @@ +using StructureHelper.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections.RCs +{ + public interface IRCGeometryLogic : ISectionGeometryLogic + { + IEnumerable HeadMaterials { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/IRectangleBeamTemplate.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/IRectangleBeamTemplate.cs new file mode 100644 index 0000000..13c941e --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/IRectangleBeamTemplate.cs @@ -0,0 +1,19 @@ +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.RCs +{ + public interface IRectangleBeamTemplate + { + IShape Shape { get; } + double CoverGap { get; set; } + double TopDiameter { get; set; } + double BottomDiameter { get; set; } + int WidthCount { get; set; } + int HeightCount { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/MaterialLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/MaterialLogic.cs new file mode 100644 index 0000000..f957c0e --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/MaterialLogic.cs @@ -0,0 +1,27 @@ +using StructureHelper.Models.Materials; +using StructureHelperCommon.Infrastructures.Settings; +using StructureHelperCommon.Models.Materials.Libraries; +using StructureHelperLogics.Models.Materials; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections.RCs +{ + internal class MaterialLogic : IMaterialLogic + { + public IEnumerable GetHeadMaterials() + { + var result = new List(); + var concrete = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Concrete40, ProgramSetting.CodeType); + concrete.Name = "Concrete"; + result.Add(concrete); + var reinforcement = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Reinforecement400, ProgramSetting.CodeType); + reinforcement.Name = "Reinforcement"; + result.Add(reinforcement); + return result; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs new file mode 100644 index 0000000..2910820 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs @@ -0,0 +1,106 @@ +using StructureHelper.Models.Materials; +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.Models.Templates.RCs; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections.RCs +{ + public class RectGeometryLogic : IRCGeometryLogic + { + RectangleBeamTemplate template; + IHeadMaterial concrete => HeadMaterials.ToList()[0]; + IHeadMaterial reinforcement => HeadMaterials.ToList()[1]; + + RectangleShape rect => template.Shape as RectangleShape; + double width => rect.Width; + double height => rect.Height; + double area1 => Math.PI * template.BottomDiameter * template.BottomDiameter / 4d; + double area2 => Math.PI * template.TopDiameter * template.TopDiameter / 4d; + double gap => template.CoverGap; + + public IEnumerable HeadMaterials { get; set; } + + public RectGeometryLogic(RectangleBeamTemplate template) + { + this.template = template; + } + + public IEnumerable GetNdmPrimitives() + { + List primitives = new List(); + primitives.AddRange(GetConcretePrimitives()); + primitives.AddRange(GetCornerReinfrocementPrimitives()); + if (template.WidthCount > 2 || template.HeightCount > 2) + { + primitives.AddRange(GetMiddleReinfrocementPrimitives()); + } + return primitives; + } + + private IEnumerable GetConcretePrimitives() + { + List primitives = new List(); + var rectangle = new RectanglePrimitive(concrete) { Width = width, Height = height, Name = "Concrete block" }; + primitives.Add(rectangle); + return primitives; + } + + private IEnumerable GetCornerReinfrocementPrimitives() + { + double[] xs = new double[] { -width / 2 + gap, width / 2 - gap }; + double[] ys = new double[] { -height / 2 + gap, height / 2 - gap }; + + List primitives = new List(); + var point = new PointPrimitive(reinforcement) { CenterX = xs[0], CenterY = ys[0], Area = area1, Name = "Left bottom point" }; + primitives.Add(point); + point = new PointPrimitive(reinforcement) { CenterX = xs[1], CenterY = ys[0], Area = area1, Name = "Right bottom point" }; + primitives.Add(point); + point = new PointPrimitive(reinforcement) { CenterX = xs[0], CenterY = ys[1], Area = area2, Name = "Left top point" }; + primitives.Add(point); + point = new PointPrimitive(reinforcement) { CenterX = xs[1], CenterY = ys[1], Area = area2, Name = "Right top point" }; + primitives.Add(point); + return primitives; + } + + private IEnumerable GetMiddleReinfrocementPrimitives() + { + double[] xs = new double[] { -width / 2 + gap, width / 2 - gap }; + double[] ys = new double[] { -height / 2 + gap, height / 2 - gap }; + + List primitives = new List(); + IPointPrimitive point; + if (template.WidthCount > 2) + { + int count = template.WidthCount - 1; + double dist = (xs[1] - xs[0]) / count; + for (int i = 1; i < count; i++) + { + point = new PointPrimitive(reinforcement) { CenterX = xs[0] + dist * i, CenterY = ys[0], Area = area1, Name = $"Bottom point {i}" }; + primitives.Add(point); + point = new PointPrimitive(reinforcement) { CenterX = xs[0] + dist * i, CenterY = ys[1], Area = area2, Name = $"Top point {i}" }; + primitives.Add(point); + } + } + if (template.HeightCount > 2) + { + int count = template.HeightCount - 1; + double dist = (ys[1] - ys[0]) / count; + for (int i = 1; i < count; i++) + { + point = new PointPrimitive(reinforcement) { CenterX = xs[0], CenterY = ys[0] + dist * i, Area = area1, Name = $"Left point {i}" }; + primitives.Add(point); + point = new PointPrimitive(reinforcement) { CenterX = xs[1], CenterY = ys[0] + dist * i, Area = area1, Name = $"Right point {i}" }; + primitives.Add(point); + } + } + return primitives; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectangleBeamTemplate.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectangleBeamTemplate.cs new file mode 100644 index 0000000..fdd60af --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectangleBeamTemplate.cs @@ -0,0 +1,39 @@ +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.RCs +{ + public class RectangleBeamTemplate : IRectangleBeamTemplate + { + public IShape Shape { get; } + public double CoverGap { get; set; } + public double TopDiameter { get; set; } + public double BottomDiameter { get; set; } + public int WidthCount { get; set; } + public int HeightCount { get; set; } + + public RectangleBeamTemplate() + { + Shape = new RectangleShape() { Width = 0.4d, Height = 0.6d }; + CoverGap = 0.05d; + TopDiameter = 0.016d; + BottomDiameter = 0.025d; + WidthCount = 2; + HeightCount = 2; + } + + public RectangleBeamTemplate(double width, double height) + { + Shape = new RectangleShape() { Width = width, Height = height }; + CoverGap = 0.05d; + TopDiameter = 0.016d; + BottomDiameter = 0.025d; + WidthCount = 2; + HeightCount = 2; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/SectionTemplate.cs b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/SectionTemplate.cs new file mode 100644 index 0000000..9553bdb --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Models/Templates/CrossSections/RCs/SectionTemplate.cs @@ -0,0 +1,74 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Forces; +using StructureHelperLogics.Models.CrossSections; +using StructureHelperLogics.Models.Templates.RCs; +using StructureHelperLogics.NdmCalculations.Analyses; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Models.Templates.CrossSections.RCs +{ + public class SectionTemplate : ICrossSectionTemplate + { + IForceLogic forceLogic; + IMaterialLogic materialLogic; + IRCGeometryLogic geometryLogic; + ICalculatorLogic calculatorLogic; + IEnumerable primitives; + IEnumerable combinations; + IEnumerable calculators; + + public SectionTemplate(IRCGeometryLogic geometryLogic) + { + this.geometryLogic = geometryLogic; + materialLogic = new MaterialLogic(); + forceLogic = new ForceLogic(); + calculatorLogic = new CalculatorLogic(); + } + + public ICrossSection GetCrossSection() + { + ICrossSection section = new CrossSection(); + var repository = section.SectionRepository; + var materials = materialLogic.GetHeadMaterials(); + geometryLogic.HeadMaterials = materials; + primitives = geometryLogic.GetNdmPrimitives(); + repository.HeadMaterials.AddRange(materials); + repository.Primitives.AddRange(primitives); + combinations = forceLogic.GetCombinationList(); + repository.ForceCombinationLists.AddRange(combinations); + calculators = calculatorLogic.GetNdmCalculators(); + AddAllForcesToCalculators(); + AddAllPrimitivesToCalculator(); + repository.CalculatorsList.AddRange(calculators); + return section; + } + + private void AddAllForcesToCalculators() + { + foreach (var calculator in calculators) + { + if (calculator is IHasForceCombinations) + { + var forceCalculator = calculator as IHasForceCombinations; + forceCalculator.ForceCombinationLists.AddRange(combinations); + } + } + } + private void AddAllPrimitivesToCalculator() + { + foreach (var calculator in calculators) + { + if (calculator is IHasPrimitives) + { + var primitiveCalculator = calculator as IHasPrimitives; + primitiveCalculator.Primitives.AddRange(primitives); + } + } + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs new file mode 100644 index 0000000..3451fac --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs @@ -0,0 +1,185 @@ +using LoaderCalculator; +using LoaderCalculator.Data.Matrix; +using LoaderCalculator.Data.Ndms; +using LoaderCalculator.Data.SourceData; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Sections; +using StructureHelperCommon.Models.Shapes; +using StructureHelperCommon.Services.Calculations; +using StructureHelperCommon.Services.Forces; +using StructureHelperCommon.Services.Sections; +using StructureHelperLogics.NdmCalculations.Buckling; +using StructureHelperLogics.NdmCalculations.Primitives; +using StructureHelperLogics.Services.NdmPrimitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public class ForceCalculator : IForceCalculator + { + public string Name { get; set; } + public List LimitStatesList { get; } + public List CalcTermsList { get; } + public List ForceCombinationLists { get; } + public List Primitives { get; } + public INdmResult Result { get; private set; } + public ICompressedMember CompressedMember { get; } + public IAccuracy Accuracy { get; set; } + + public void Run() + { + var checkResult = CheckInputData(); + if (checkResult != "") + { + Result = new ForcesResults() { IsValid = false, Desctription = checkResult }; + return; + } + else { CalculateResult(); } + } + + private void CalculateResult() + { + var ndmResult = new ForcesResults() { IsValid = true }; + foreach (var combination in ForceCombinationLists) + { + foreach (var tuple in combination.DesignForces) + { + var limitState = tuple.LimitState; + var calcTerm = tuple.CalcTerm; + if (LimitStatesList.Contains(limitState) & CalcTermsList.Contains(calcTerm)) + { + var ndms = NdmPrimitivesService.GetNdms(Primitives, limitState, calcTerm); + IPoint2D point2D; + if (combination.SetInGravityCenter == true) + { + var loaderPoint = LoaderCalculator.Logics.Geometry.GeometryOperations.GetGravityCenter(ndms); + point2D = new Point2D() { X = loaderPoint.CenterX, Y = loaderPoint.CenterY }; + } + else point2D = combination.ForcePoint; + var newTuple = ForceTupleService.MoveTupleIntoPoint(tuple.ForceTuple, point2D); + var result = GetPrimitiveStrainMatrix(ndms, newTuple); + if (CompressedMember.Buckling == true) + { + IForceTuple longTuple; + if (calcTerm == CalcTerms.LongTerm) + { + longTuple = newTuple; + } + else + { + longTuple = GetLongTuple(combination.DesignForces, limitState); + } + var bucklingCalculator = GetBucklingCalculator(CompressedMember, limitState, calcTerm, newTuple, longTuple); + try + { + bucklingCalculator.Run(); + var bucklingResult = bucklingCalculator.Result as IConcreteBucklingResult; + if (bucklingResult.IsValid != true) + { + result.IsValid = false; + result.Desctription += $"Buckling result:\n{bucklingResult.Desctription}\n"; + } + newTuple = CalculateBuckling(newTuple, bucklingResult); + } + catch (Exception ex) + { + result.IsValid = false; + result.Desctription = $"Buckling error:\n{ex}\n"; + } + + } + + result.DesignForceTuple.LimitState = limitState; + result.DesignForceTuple.CalcTerm = calcTerm; + result.DesignForceTuple.ForceTuple = newTuple; + ndmResult.ForcesResultList.Add(result); + } + } + } + Result = ndmResult; + } + + private IForceTuple GetLongTuple(List designForces, LimitStates limitState) + { + IForceTuple longTuple; + try + { + longTuple = designForces.Where(x => x.LimitState == limitState & x.CalcTerm == CalcTerms.LongTerm).First().ForceTuple; + } + catch (Exception) + { + longTuple = new ForceTuple(); + } + return longTuple; + } + + private IConcreteBucklingCalculator GetBucklingCalculator(ICompressedMember compressedMember, LimitStates limitStates, CalcTerms calcTerms, IForceTuple calcTuple, IForceTuple longTuple) + { + IConcreteBucklingOptions options = new ConcreteBucklingOptions() + { CompressedMember = compressedMember, + LimitState = limitStates, + CalcTerm = calcTerms, + CalcForceTuple = calcTuple, + LongTermTuple = longTuple, + Primitives = Primitives }; + IConcreteBucklingCalculator bucklingCalculator = new ConcreteBucklingCalculator(options, Accuracy); + return bucklingCalculator; + } + + private IForceTuple CalculateBuckling(IForceTuple calcTuple, IConcreteBucklingResult bucklingResult) + { + var newTuple = calcTuple.Clone() as IForceTuple; + newTuple.Mx *= bucklingResult.EtaFactorAlongY; + newTuple.My *= bucklingResult.EtaFactorAlongX; + return newTuple; + } + + + private string CheckInputData() + { + string result = ""; + if (Primitives.Count == 0) { result += "Calculator does not contain any primitives \n"; } + if (ForceCombinationLists.Count == 0) { result += "Calculator does not contain any forces \n"; } + if (LimitStatesList.Count == 0) { result += "Calculator does not contain any limit states \n"; } + if (CalcTermsList.Count == 0) { result += "Calculator does not contain any duration \n"; } + return result; + } + + public ForceCalculator() + { + ForceCombinationLists = new List(); + Primitives = new List(); + CompressedMember = new CompressedMember() { Buckling = false }; + Accuracy = new Accuracy() { IterationAccuracy = 0.001d, MaxIterationCount = 1000 }; + LimitStatesList = new List() { LimitStates.ULS, LimitStates.SLS }; + CalcTermsList = new List() { CalcTerms.ShortTerm, CalcTerms.LongTerm }; + } + + private IForcesTupleResult GetPrimitiveStrainMatrix(IEnumerable ndmCollection, IForceTuple tuple) + { + IForceTupleInputData inputData = new ForceTupleInputData() { NdmCollection = ndmCollection, Tuple = tuple, Accuracy = Accuracy }; + IForceTupleCalculator calculator = new ForceTupleCalculator(inputData); + calculator.Run(); + return calculator.Result as IForcesTupleResult; + } + + public object Clone() + { + IForceCalculator target = new ForceCalculator { Name = Name + " copy"}; + target.LimitStatesList.Clear(); + target.LimitStatesList.AddRange(LimitStatesList); + target.CalcTermsList.Clear(); + target.CalcTermsList.AddRange(CalcTermsList); + AccuracyService.CopyProperties(Accuracy, target.Accuracy); + CompressedMemberServices.CopyProperties(CompressedMember, target.CompressedMember); + target.Primitives.AddRange(Primitives); + target.ForceCombinationLists.AddRange(ForceCombinationLists); + return target; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceInputData.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceInputData.cs new file mode 100644 index 0000000..aa5a4d2 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceInputData.cs @@ -0,0 +1,19 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Forces; +using StructureHelperLogics.Models.Calculations.CalculationProperties; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public class ForceInputData : IForceInputData + { + public IEnumerable ForceCombinationLists { get; set; } + public IEnumerable LimitStates { get; set; } + public IEnumerable CalcTerms { get; set; } + public IIterationProperty IterationProperty { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs new file mode 100644 index 0000000..47988e8 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs @@ -0,0 +1,82 @@ +using LoaderCalculator.Data.Matrix; +using LoaderCalculator.Data.SourceData; +using LoaderCalculator; +using StructureHelperCommon.Models.Calculators; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public class ForceTupleCalculator : IForceTupleCalculator + { + public string Name { get; set; } + public INdmResult Result { get; private set; } + + private IForceTupleInputData inputData; + + public ForceTupleCalculator(IForceTupleInputData inputData) + { + this.inputData = inputData; + } + + public void Run() + { + Result = CalculateResult(); + } + + private IForcesTupleResult CalculateResult() + { + var ndmCollection = inputData.NdmCollection; + var tuple = inputData.Tuple; + var accuracy = inputData.Accuracy; + + + var mx = tuple.Mx; + var my = tuple.My; + var nz = tuple.Nz; + + try + { + var loaderData = new LoaderOptions + { + Preconditions = new Preconditions + { + ConditionRate = accuracy.IterationAccuracy, + MaxIterationCount = accuracy.MaxIterationCount, + StartForceMatrix = new ForceMatrix { Mx = mx, My = my, Nz = nz } + }, + NdmCollection = ndmCollection + }; + var calculator = new Calculator(); + calculator.Run(loaderData, new CancellationToken()); + var calcResult = calculator.Result; + if (calcResult.AccuracyRate <= accuracy.IterationAccuracy) + { + return new ForcesTupleResult() { IsValid = true, Desctription = "Analysis is done succsefully", LoaderResults = calcResult }; + } + else + { + return new ForcesTupleResult() { IsValid = false, Desctription = "Required accuracy rate has not achived", LoaderResults = calcResult }; + } + + } + catch (Exception ex) + { + var result = new ForcesTupleResult() { IsValid = false }; + if (ex.Message == "Calculation result is not valid: stiffness matrix is equal to zero") { result.Desctription = "Stiffness matrix is equal to zero \nProbably section was collapsed"; } + else { result.Desctription = $"Error is appeared due to analysis. Error: {ex}"; } + return result; + } + } + + public object Clone() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleInputData.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleInputData.cs new file mode 100644 index 0000000..241e76d --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleInputData.cs @@ -0,0 +1,18 @@ +using LoaderCalculator.Data.Ndms; +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public class ForceTupleInputData : IForceTupleInputData + { + public IEnumerable NdmCollection { get; set; } + public IForceTuple Tuple { get; set; } + public IAccuracy Accuracy { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForcesResults.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForcesResults.cs new file mode 100644 index 0000000..75fd467 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForcesResults.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public class ForcesResults : IForcesResults + { + public bool IsValid { get; set; } + public List ForcesResultList { get; } + public string Desctription { get; set; } + + public ForcesResults() + { + ForcesResultList = new List(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForcesTupleResult.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForcesTupleResult.cs new file mode 100644 index 0000000..7de59dc --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForcesTupleResult.cs @@ -0,0 +1,30 @@ +using LoaderCalculator.Data.ResultData; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public class ForcesTupleResult : IForcesTupleResult + { + public bool IsValid { get; set; } + public IDesignForceTuple DesignForceTuple { get; set; } + /// + /// Text of result of calculations + /// + public string Desctription { get; set; } + /// + /// Keep result of calculations from ndm-library + /// + public ILoaderResults LoaderResults { get; set; } + + public ForcesTupleResult() + { + DesignForceTuple = new DesignForceTuple(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceCalculator.cs new file mode 100644 index 0000000..25d9723 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceCalculator.cs @@ -0,0 +1,19 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Sections; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public interface IForceCalculator : INdmCalculator, IHasPrimitives, IHasForceCombinations + { + List CalcTermsList { get; } + List LimitStatesList { get; } + ICompressedMember CompressedMember { get; } + IAccuracy Accuracy { get; set; } + } +} \ No newline at end of file diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceInputData.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceInputData.cs new file mode 100644 index 0000000..d2a6d7e --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceInputData.cs @@ -0,0 +1,15 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Forces; +using StructureHelperLogics.Models.Calculations.CalculationProperties; +using System.Collections.Generic; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public interface IForceInputData + { + IEnumerable CalcTerms { get; set; } + IEnumerable ForceCombinationLists { get; set; } + IIterationProperty IterationProperty { get; } + IEnumerable LimitStates { get; set; } + } +} \ No newline at end of file diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs new file mode 100644 index 0000000..07a411a --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs @@ -0,0 +1,13 @@ +using StructureHelperCommon.Models.Calculators; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public interface IForceTupleCalculator : INdmCalculator + { + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleInputData.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleInputData.cs new file mode 100644 index 0000000..c151d6f --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleInputData.cs @@ -0,0 +1,18 @@ +using LoaderCalculator.Data.Ndms; +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public interface IForceTupleInputData + { + IEnumerable NdmCollection { get; set; } + IForceTuple Tuple { get; set; } + IAccuracy Accuracy { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForcesResults.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForcesResults.cs new file mode 100644 index 0000000..e0f5ddd --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForcesResults.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public interface IForcesResults : INdmResult + { + string Desctription { get; set; } + List ForcesResultList { get; } + bool IsValid { get; set; } + } +} \ No newline at end of file diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForcesTupleResult.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForcesTupleResult.cs new file mode 100644 index 0000000..4a108fc --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForcesTupleResult.cs @@ -0,0 +1,11 @@ +using LoaderCalculator.Data.ResultData; +using StructureHelperCommon.Models.Forces; + +namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces +{ + public interface IForcesTupleResult : INdmResult + { + IDesignForceTuple DesignForceTuple { get; set; } + ILoaderResults LoaderResults { get; set; } + } +} \ No newline at end of file diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ExportToCSVLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ExportToCSVLogic.cs new file mode 100644 index 0000000..8138b93 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/ExportToCSVLogic.cs @@ -0,0 +1,75 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperLogics.NdmCalculations.Analyses.ByForces; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses +{ + public class ExportToCSVLogic : IExportResultLogic + { + string filename; + + public void Export(INdmResult ndmResult) + { + string separator = ";"; + StringBuilder output = new StringBuilder(); + + if (ndmResult is ForcesResults) + { + var forceResults = ndmResult as ForcesResults; + string[] headings = + { + "Limit State", + "Calc duration", + "Mx", + "My", + "Nz", + "kx", + "ky", + "epsz" + }; + output.AppendLine(string.Join(separator, headings)); + foreach (var item in forceResults.ForcesResultList) + { + if (item.IsValid == true) + { + var tuple = item.DesignForceTuple.ForceTuple; + var strainMatrix = item.LoaderResults.StrainMatrix; + string[] newLine = + { + item.DesignForceTuple.LimitState.ToString(), + item.DesignForceTuple.CalcTerm.ToString(), + tuple.Mx.ToString(), + tuple.My.ToString(), + tuple.Nz.ToString(), + strainMatrix.Kx.ToString(), + strainMatrix.Ky.ToString(), + strainMatrix.EpsZ.ToString() + }; + output.AppendLine(string.Join(separator, newLine)); + } + } + try + { + File.AppendAllText(filename, output.ToString()); + } + catch (Exception ex) + { + Console.WriteLine("Data could not be written to the CSV file."); + return; + } + } + else throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown +": "+ nameof(ndmResult)); + } + + public ExportToCSVLogic(string filename) + { + this.filename = filename; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/IExportResultLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/IExportResultLogic.cs new file mode 100644 index 0000000..a3d927a --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/IExportResultLogic.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses +{ + public interface IExportResultLogic + { + void Export(INdmResult ndmResult); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/INdmCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/INdmCalculator.cs new file mode 100644 index 0000000..dc431ab --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/INdmCalculator.cs @@ -0,0 +1,24 @@ +using StructureHelperCommon.Models.Calculators; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using TaskManager; + +namespace StructureHelperLogics.NdmCalculations.Analyses +{ + public interface INdmCalculator : ICloneable + { + string Name { get; set; } + /// + /// Method for calculating + /// + void Run(); + /// + /// Result of Calculations + /// + INdmResult Result { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/INdmResult.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/INdmResult.cs new file mode 100644 index 0000000..878b31d --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Analyses/INdmResult.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Analyses +{ + public interface INdmResult + { + /// + /// True if result of calculation is valid + /// + bool IsValid { get; set; } + string Desctription { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs new file mode 100644 index 0000000..0738077 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs @@ -0,0 +1,177 @@ +using LoaderCalculator.Data.Materials.MaterialBuilders; +using LoaderCalculator.Data.Ndms; +using LoaderCalculator.Logics; +using LoaderCalculator.Logics.Geometry; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Shapes; +using StructureHelperCommon.Services.Forces; +using StructureHelperLogics.Models.Materials; +using StructureHelperLogics.NdmCalculations.Analyses; +using StructureHelperLogics.NdmCalculations.Analyses.ByForces; +using StructureHelperLogics.NdmCalculations.Primitives; +using StructureHelperLogics.Services.NdmPrimitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public class ConcreteBucklingCalculator : IConcreteBucklingCalculator + { + private IConcreteBucklingOptions options; + private IEilerCriticalForceLogic criticalForceLogic; + private IRCStiffnessLogic stiffnessLogicX, stiffnessLogicY; + private List ndmCollection; + private List concreteNdms; + private List otherNdms; + IForcesTupleResult forcesResults; + + public string Name { get; set; } + + public INdmResult Result { get; private set; } + + public IAccuracy Accuracy { get; set; } + + private (double EtaAlongX, double EtaAlongY) GetBucklingCoefficients() + { + var stiffness = GetStiffness(); + criticalForceLogic.LongForce = options.CalcForceTuple.Nz; + criticalForceLogic.StiffnessEI = stiffness.DX; + criticalForceLogic.DesignLength = options.CompressedMember.GeometryLength * options.CompressedMember.LengthFactorY; + var etaAlongY = criticalForceLogic.GetEtaFactor(); + criticalForceLogic.StiffnessEI = stiffness.DY; + criticalForceLogic.DesignLength = options.CompressedMember.GeometryLength * options.CompressedMember.LengthFactorX; + var etaAlongX = criticalForceLogic.GetEtaFactor(); + return (etaAlongX, etaAlongY); + } + + public ConcreteBucklingCalculator(IConcreteBucklingOptions options, IAccuracy accuracy) + { + this.options = options; + Accuracy = accuracy; + + var allPrimitives = options.Primitives; + var concretePrimitives = GetConcretePrimitives(); + var otherPrimitives = allPrimitives.Except(concretePrimitives); + ndmCollection = NdmPrimitivesService.GetNdms(allPrimitives, options.LimitState, options.CalcTerm); + concreteNdms = NdmPrimitivesService.GetNdms(concretePrimitives, options.LimitState, options.CalcTerm); + otherNdms = NdmPrimitivesService.GetNdms(otherPrimitives, options.LimitState, options.CalcTerm); + } + + private (IConcreteDeltaELogic DeltaLogicX, IConcreteDeltaELogic DeltaLogicY) GetDeltaLogics() + { + IForceTuple forceTuple = options.CalcForceTuple; + if (forceTuple.Nz >= 0) { return (new ConstDeltaELogic(), new ConstDeltaELogic()); } + var eccentricityAlongX = options.CalcForceTuple.My / forceTuple.Nz; + var eccentricityAlongY = options.CalcForceTuple.Mx / forceTuple.Nz; + var sizeAlongX = ndmCollection.Max(x => x.CenterX) - ndmCollection.Min(x => x.CenterX); + var sizeAlongY = ndmCollection.Max(x => x.CenterY) - ndmCollection.Min(x => x.CenterY); + var DeltaElogicAboutX = new DeltaELogicSP63(eccentricityAlongY, sizeAlongY); + var DeltaElogicAboutY = new DeltaELogicSP63(eccentricityAlongX, sizeAlongX); + return (DeltaElogicAboutX, DeltaElogicAboutY); + } + + private IEnumerable GetConcretePrimitives() + { + var primitives = options.Primitives.Where(x => x.HeadMaterial.HelperMaterial is IConcreteLibMaterial); + return primitives; + } + + private (double DX, double DY) GetStiffness() + { + var gravityCenter = GeometryOperations.GetGravityCenter(ndmCollection); + + var concreteInertia = GeometryOperations.GetMomentsOfInertiaMod(concreteNdms, gravityCenter); + var otherInertia = GeometryOperations.GetMomentsOfInertiaMod(otherNdms, gravityCenter); + + var stiffnessX = stiffnessLogicX.GetStiffnessCoeffitients(); + var dX = stiffnessX.Kc * concreteInertia.MomentX + stiffnessX.Ks * otherInertia.MomentX; + + var stiffnessY = stiffnessLogicY.GetStiffnessCoeffitients(); + var dY = stiffnessY.Kc * concreteInertia.MomentY + stiffnessY.Ks * otherInertia.MomentY; + + return (dX, dY); + } + + private IConcretePhiLLogic GetPhiLogic() + { + IPoint2D point = GetMostTensionedPoint(); + var phiLogic = new PhiLogicSP63(options.CalcForceTuple, options.LongTermTuple, point); + return phiLogic; + } + + private IPoint2D GetMostTensionedPoint() + { + var strains = forcesResults.LoaderResults.StrainMatrix; + double maxStrain = double.NegativeInfinity; + IPoint2D point = new Point2D(); + var stressLogic = new StressLogic(); + foreach (var item in ndmCollection) + { + var strain = stressLogic.GetTotalStrain(strains, item); + if (strain > maxStrain) + { + maxStrain = strain; + point = new Point2D() { X = item.CenterX, Y = item.CenterY }; + } + } + return point; + } + + private IForceTupleCalculator GetForceCalculator() + { + var tuple = options.CalcForceTuple; + IForceTupleInputData inputData = new ForceTupleInputData() { NdmCollection = ndmCollection, Tuple = tuple, Accuracy = Accuracy }; + IForceTupleCalculator calculator = new ForceTupleCalculator(inputData); + return calculator; + } + + public void Run() + { + var checkResult = CheckInputData(); + if (checkResult != "") + { + Result = new ConcreteBucklingResult() { IsValid = false, Desctription = checkResult }; + return; + } + else + { + IConcretePhiLLogic phiLLogic = GetPhiLogic(); + var (DeltaLogicAboutX, DeltaLogicAboutY) = GetDeltaLogics(); + stiffnessLogicX = new RCStiffnessLogicSP63(phiLLogic, DeltaLogicAboutX); + stiffnessLogicY = new RCStiffnessLogicSP63(phiLLogic, DeltaLogicAboutY); + criticalForceLogic = new EilerCriticalForceLogic(); + + var (EtaFactorX, EtaFactorY) = GetBucklingCoefficients(); + Result = new ConcreteBucklingResult() + { + IsValid = true, + EtaFactorAlongX = EtaFactorX, + EtaFactorAlongY = EtaFactorY + }; + } + } + + private string CheckInputData() + { + string result = ""; + IForceTupleCalculator calculator = GetForceCalculator(); + calculator.Run(); + forcesResults = calculator.Result as IForcesTupleResult; + if (forcesResults.IsValid != true) + { + result += "Bearind capacity of crosssection is not enough for initial forces\n"; + } + return result; + } + + public object Clone() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingOptions.cs new file mode 100644 index 0000000..820b7f2 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingOptions.cs @@ -0,0 +1,29 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Sections; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + /// + internal class ConcreteBucklingOptions : IConcreteBucklingOptions + { + /// + public IForceTuple LongTermTuple { get; set; } + /// + public ICompressedMember CompressedMember { get; set; } + /// + public LimitStates LimitState { get; set; } + /// + public CalcTerms CalcTerm { get; set; } + /// + public IEnumerable Primitives { get; set; } + /// + public IForceTuple CalcForceTuple { get; set; } +} +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingResult.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingResult.cs new file mode 100644 index 0000000..1d3e233 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingResult.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + /// + public class ConcreteBucklingResult : IConcreteBucklingResult + { + /// + public bool IsValid { get; set; } + /// + public string Desctription { get; set; } + /// + public double EtaFactorAlongX { get; set; } + /// + public double EtaFactorAlongY { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConstDeltaELogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConstDeltaELogic.cs new file mode 100644 index 0000000..ed60dd4 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConstDeltaELogic.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public class ConstDeltaELogic : IConcreteDeltaELogic + { + public double GetDeltaE() + { + return 1.5d; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConstPhiLLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConstPhiLLogic.cs new file mode 100644 index 0000000..a9cdc03 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ConstPhiLLogic.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal class ConstPhiLLogic : IConcretePhiLLogic + { + public double GetPhil() + { + return 2.0d; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/CriticalForceSP63Logic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/CriticalForceSP63Logic.cs new file mode 100644 index 0000000..6d14887 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/CriticalForceSP63Logic.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal class CriticalForceSP63Logic : ICriticalBucklingForceLogic + { + double concreteFactor, reinforcementFactor; + + public double GetCriticalForce() + { + throw new NotImplementedException(); + } + + public double GetEtaFactor() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/DeltaELogicSP63.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/DeltaELogicSP63.cs new file mode 100644 index 0000000..631aab6 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/DeltaELogicSP63.cs @@ -0,0 +1,36 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public class DeltaELogicSP63 : IConcreteDeltaELogic + { + const double deltaEMin = 0.15d; + const double deltaEMax = 1.5d; + + readonly double eccentricity; + readonly double size; + public DeltaELogicSP63(double eccentricity, double size) + { + if (size <= 0 ) + { + throw new StructureHelperException(ErrorStrings.SizeMustBeGreaterThanZero + $", actual size: {size}"); + } + this.eccentricity = eccentricity; + this.size = size; + } + + public double GetDeltaE() + { + var deltaE = Math.Abs(eccentricity) / size; + deltaE = Math.Max(deltaE, deltaEMin); + deltaE = Math.Min(deltaE, deltaEMax); + return deltaE; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/EilerCriticalForceLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/EilerCriticalForceLogic.cs new file mode 100644 index 0000000..9a76b38 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/EilerCriticalForceLogic.cs @@ -0,0 +1,35 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal class EilerCriticalForceLogic : IEilerCriticalForceLogic + { + public double LongForce { get; set; } + public double StiffnessEI { get; set; } + public double DesignLength { get; set; } + + public double GetCriticalForce() + { + double Ncr = - Math.Pow(Math.PI, 2) * StiffnessEI / (Math.Pow(DesignLength, 2)); + return Ncr; + } + + public double GetEtaFactor() + { + if (LongForce >= 0d) return 1d; + var Ncr = GetCriticalForce(); + if (LongForce <= Ncr) + { + throw new StructureHelperException(ErrorStrings.LongitudinalForceMustBeLessThanCriticalForce); + } + double eta = 1 / (1 - LongForce / Ncr); + return eta; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IBucklingOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IBucklingOptions.cs new file mode 100644 index 0000000..ecfc7c3 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IBucklingOptions.cs @@ -0,0 +1,21 @@ +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Sections; +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public interface IBucklingOptions + { + ICompressedMember CompressedMember { get; } + LimitStates LimitState { get; } + CalcTerms CalcTerm { get; } + IEnumerable Primitives { get; } + IForceTuple CalcForceTuple { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs new file mode 100644 index 0000000..6555062 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs @@ -0,0 +1,15 @@ +using StructureHelperCommon.Models.Calculators; +using StructureHelperLogics.NdmCalculations.Analyses; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal interface IConcreteBucklingCalculator : INdmCalculator + { + IAccuracy Accuracy { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingOptions.cs new file mode 100644 index 0000000..5ee4b4b --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingOptions.cs @@ -0,0 +1,15 @@ +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Models.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public interface IConcreteBucklingOptions : IBucklingOptions + { + IForceTuple LongTermTuple { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingResult.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingResult.cs new file mode 100644 index 0000000..635aa2b --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingResult.cs @@ -0,0 +1,24 @@ +using StructureHelperLogics.NdmCalculations.Analyses; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + /// + /// Results of calculation of buckling of reinforced concrete section + /// + public interface IConcreteBucklingResult : INdmResult + { + /// + /// Factor of increasing of bending moment (p-delta effect) in the plain XOZ + /// + double EtaFactorAlongX { get; set; } + /// + /// Factor of increasing of bending moment (p-delta effect) in the plain YOZ + /// + double EtaFactorAlongY { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteDeltaELogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteDeltaELogic.cs new file mode 100644 index 0000000..5654179 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcreteDeltaELogic.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal interface IConcreteDeltaELogic + { + double GetDeltaE(); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcretePhiLLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcretePhiLLogic.cs new file mode 100644 index 0000000..504e935 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IConcretePhiLLogic.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public interface IConcretePhiLLogic + { + double GetPhil(); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ICriticalBucklingForceLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ICriticalBucklingForceLogic.cs new file mode 100644 index 0000000..1d14189 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/ICriticalBucklingForceLogic.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal interface ICriticalBucklingForceLogic + { + double GetCriticalForce(); + double GetEtaFactor(); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IEilerCriticalForceLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IEilerCriticalForceLogic.cs new file mode 100644 index 0000000..c778b72 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IEilerCriticalForceLogic.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal interface IEilerCriticalForceLogic : ICriticalBucklingForceLogic + { + double LongForce { get; set; } + double StiffnessEI { get; set; } + double DesignLength { get; set; } + + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IRCStiffnessLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IRCStiffnessLogic.cs new file mode 100644 index 0000000..39cee43 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/IRCStiffnessLogic.cs @@ -0,0 +1,14 @@ +using StructureHelperLogics.NdmCalculations.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public interface IRCStiffnessLogic + { + (double Kc, double Ks) GetStiffnessCoeffitients(); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/PhiLogicSP63.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/PhiLogicSP63.cs new file mode 100644 index 0000000..cb02ffd --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/PhiLogicSP63.cs @@ -0,0 +1,41 @@ +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Shapes; +using StructureHelperCommon.Services.Forces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + public class PhiLogicSP63 : IConcretePhiLLogic + { + readonly IForceTuple fullForceTuple; + readonly IForceTuple longForceTuple; + readonly IPoint2D point; + public PhiLogicSP63(IForceTuple fullForceTuple, IForceTuple longForceTuple, IPoint2D point) + { + this.fullForceTuple = fullForceTuple; + this.longForceTuple = longForceTuple; + this.point = point; + } + + public double GetPhil() + { + var distance = Math.Sqrt(point.X * point.X + point.Y * point.Y); + var fullMoment = GetMoment(fullForceTuple, distance); + var longMoment = GetMoment(longForceTuple, distance); + if (fullMoment == 0d) { return 2d; } + var phi = 1 + longMoment / fullMoment; + phi = Math.Max(1, phi); + phi = Math.Min(2, phi); + return phi; + } + + private double GetMoment(IForceTuple forceTuple, double distance) + { + return Math.Abs(forceTuple.Nz) * distance + Math.Abs(forceTuple.Mx) + Math.Abs(forceTuple.My); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/RCStiffnessLogicSP63.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/RCStiffnessLogicSP63.cs new file mode 100644 index 0000000..357a14b --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Buckling/RCStiffnessLogicSP63.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Buckling +{ + internal class RCStiffnessLogicSP63 : IRCStiffnessLogic + { + IConcretePhiLLogic phiLLogic { get; } + IConcreteDeltaELogic deltaELogic { get; } + + public RCStiffnessLogicSP63() : this(new ConstPhiLLogic(), new ConstDeltaELogic()) { } + + public RCStiffnessLogicSP63(IConcretePhiLLogic phiLLogic, IConcreteDeltaELogic deltaELogic) + { + this.phiLLogic = phiLLogic; + this.deltaELogic = deltaELogic; + } + + public (double Kc, double Ks) GetStiffnessCoeffitients() + { + const double initialKs = 0.7d; + const double initialKc = 0.15d; + const double deltaEAddition = 0.3d; + double phiL = phiLLogic.GetPhil(); + double deltaE = deltaELogic.GetDeltaE(); + double kc = initialKc / (phiL * (deltaEAddition + deltaE)); + return (kc, initialKs); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IHasDivisionSize.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IHasDivisionSize.cs new file mode 100644 index 0000000..8590c48 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IHasDivisionSize.cs @@ -0,0 +1,15 @@ +using StructureHelperLogics.Models.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface IHasDivisionSize : INdmPrimitive + { + double NdmMaxSize { get; set; } + int NdmMinDivision { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IHasPrimitives.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IHasPrimitives.cs new file mode 100644 index 0000000..522f5fe --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IHasPrimitives.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface IHasPrimitives + { + List Primitives { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/ILinePrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/ILinePrimitive.cs new file mode 100644 index 0000000..fc78d08 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/ILinePrimitive.cs @@ -0,0 +1,13 @@ +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface ILinePrimitive : IHasDivisionSize, ILineShape + { + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs new file mode 100644 index 0000000..b5584c9 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs @@ -0,0 +1,29 @@ +using StructureHelperLogics.Models.Materials; +using StructureHelperCommon.Models.Shapes; +using StructureHelper.Models.Materials; +using System.Collections; +using LoaderCalculator.Data.Ndms; +using LoaderCalculator.Data.Materials; +using System.Collections.Generic; +using StructureHelperCommon.Infrastructures.Interfaces; +using System; +using StructureHelperCommon.Models.Forces; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface INdmPrimitive : ISaveable, ICloneable + { + string Name { get; set; } + double CenterX { get; set; } + double CenterY { get; set; } + IHeadMaterial HeadMaterial { get; set; } + IStrainTuple UsersPrestrain { get; } + IStrainTuple AutoPrestrain { get; } + //double PrestrainKx { get; set; } + //double PrestrainKy { get; set; } + //double PrestrainEpsZ { get; set; } + IVisualProperty VisualProperty {get; } + + IEnumerable GetNdms(IMaterial material); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IPointPrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IPointPrimitive.cs new file mode 100644 index 0000000..75ecff6 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IPointPrimitive.cs @@ -0,0 +1,14 @@ +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.Models.Primitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface IPointPrimitive : INdmPrimitive, IPointShape + { + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IRectanglePrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IRectanglePrimitive.cs new file mode 100644 index 0000000..a72f327 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IRectanglePrimitive.cs @@ -0,0 +1,13 @@ +using StructureHelperCommon.Models.Shapes; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface IRectanglePrimitive : IHasDivisionSize, IRectangleShape + { + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IVisualProperty.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IVisualProperty.cs new file mode 100644 index 0000000..c93eda5 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/IVisualProperty.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public interface IVisualProperty + { + bool IsVisible { get; set; } + Color Color { get; set; } + bool SetMaterialColor { get; set; } + int ZIndex { get; set; } + double Opacity { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/LinePrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/LinePrimitive.cs new file mode 100644 index 0000000..375754e --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/LinePrimitive.cs @@ -0,0 +1,69 @@ +using LoaderCalculator.Data.Materials; +using LoaderCalculator.Data.Ndms; +using StructureHelper.Models.Materials; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Shapes; +using StructureHelperCommon.Services.ShapeServices; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.Services.NdmPrimitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public class LinePrimitive : ILinePrimitive + { + public int Id { get; set; } + public string Name { get; set; } + public double CenterX { get; set; } + public double CenterY { get; set; } + public double NdmMaxSize { get; set; } + public int NdmMinDivision { get; set; } + public IHeadMaterial HeadMaterial { get; set; } + public double PrestrainKx { get; set; } + public double PrestrainKy { get; set; } + public double PrestrainEpsZ { get; set; } + + public IPoint2D StartPoint { get; set; } + public IPoint2D EndPoint { get; set; } + public double Thickness { get; set; } + + public IVisualProperty VisualProperty => throw new NotImplementedException(); + + public IStrainTuple UsersPrestrain => throw new NotImplementedException(); + + public IStrainTuple AutoPrestrain => throw new NotImplementedException(); + + public LinePrimitive() + { + StartPoint = new Point2D(); + EndPoint = new Point2D(); + + Name = "New Line"; + NdmMaxSize = 0.01d; + NdmMinDivision = 10; + } + + public object Clone() + { + var primitive = new LinePrimitive(); + NdmPrimitivesService.CopyDivisionProperties(this, primitive); + ShapeService.CopyLineProperties(this, primitive); + return primitive; + } + + public IEnumerable GetNdms(IMaterial material) + { + throw new NotImplementedException(); + } + + public void Save() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/PointPrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/PointPrimitive.cs new file mode 100644 index 0000000..953a64b --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/PointPrimitive.cs @@ -0,0 +1,64 @@ +using StructureHelperLogics.Models.Materials; +using StructureHelperCommon.Models.Shapes; +using StructureHelper.Models.Materials; +using System.Collections.Generic; +using LoaderCalculator.Data.Ndms; +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Interfaces; +using System; +using StructureHelperLogics.NdmCalculations.Primitives; +using StructureHelperLogics.NdmCalculations.Triangulations; +using StructureHelperLogics.Services.NdmPrimitives; +using StructureHelperCommon.Models.Forces; + +namespace StructureHelperLogics.Models.Primitives +{ + public class PointPrimitive : IPointPrimitive + { + public int Id { get; set; } + public string Name { get; set; } + public double CenterX { get; set; } + public double CenterY { get; set; } + public IHeadMaterial HeadMaterial { get; set; } + public double NdmMaxSize { get; set; } + public int NdmMinDivision { get; set; } + public IStrainTuple UsersPrestrain { get; private set; } + public IStrainTuple AutoPrestrain { get; private set; } + public double Area { get; set; } + + public IVisualProperty VisualProperty { get; } + + + + public PointPrimitive() + { + Name = "New Point"; + Area = 0.0005d; + VisualProperty = new VisualProperty(); + UsersPrestrain = new StrainTuple(); + AutoPrestrain = new StrainTuple(); + } + + public PointPrimitive(IHeadMaterial material) : this() { HeadMaterial = material; } + + public IEnumerable GetNdms(IMaterial material) + { + var options = new PointTriangulationLogicOptions(this); + IPointTriangulationLogic logic = new PointTriangulationLogic(options); + return logic.GetNdmCollection(material); + } + + public void Save() + { + throw new NotImplementedException(); + } + + public object Clone() + { + var primitive = new PointPrimitive(); + NdmPrimitivesService.CopyNdmProperties(this, primitive); + primitive.Area = Area; + return primitive; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs new file mode 100644 index 0000000..a7d4cca --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs @@ -0,0 +1,70 @@ +using LoaderCalculator.Data.Materials; +using LoaderCalculator.Data.Ndms; +using StructureHelper.Models.Materials; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Models.Shapes; +using StructureHelperCommon.Services.ShapeServices; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Triangulations; +using StructureHelperLogics.Services.NdmPrimitives; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public class RectanglePrimitive : IRectanglePrimitive + { + public int Id { get; set; } + public string Name { get; set; } + public double CenterX { get; set; } + public double CenterY { get; set; } + public IHeadMaterial HeadMaterial { get; set; } + public IStrainTuple UsersPrestrain { get; private set; } + public IStrainTuple AutoPrestrain { get; private set; } + public double NdmMaxSize { get; set; } + public int NdmMinDivision { get; set; } + public double Width { get; set; } + public double Height { get; set; } + public double Angle { get; set; } + + public IVisualProperty VisualProperty { get; } + + public RectanglePrimitive() + { + Name = "New Rectangle"; + NdmMaxSize = 0.01d; + NdmMinDivision = 10; + VisualProperty = new VisualProperty { Opacity = 0.8d}; + UsersPrestrain = new StrainTuple(); + AutoPrestrain = new StrainTuple(); + } + + public RectanglePrimitive(IHeadMaterial material) : this() { HeadMaterial = material; } + + public object Clone() + { + RectanglePrimitive primitive = new RectanglePrimitive(); + NdmPrimitivesService.CopyDivisionProperties(this, primitive); + ShapeService.CopyRectangleProperties(this, primitive); + return primitive; + } + + public IEnumerable GetNdms(IMaterial material) + { + List ndms = new List(); + var options = new RectangleTriangulationLogicOptions(this); + ITriangulationLogic logic = new RectangleTriangulationLogic(options); + ndms.AddRange(logic.GetNdmCollection(material)); + return ndms; + } + + public void Save() + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/VisualProperty.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/VisualProperty.cs new file mode 100644 index 0000000..b729485 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Primitives/VisualProperty.cs @@ -0,0 +1,42 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Services.ColorServices; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace StructureHelperLogics.NdmCalculations.Primitives +{ + public class VisualProperty : IVisualProperty + { + + public bool IsVisible { get; set; } + public Color Color { get; set; } + public bool SetMaterialColor { get; set; } + public int ZIndex { get; set; } + private double opacity; + + public double Opacity + { + get { return opacity; } + set + { + if (value < 0d || value > 1d) { throw new StructureHelperException(ErrorStrings.VisualPropertyIsNotRight + nameof(Opacity) + value); } + opacity = value; + } + } + + + public VisualProperty() + { + IsVisible = true; + Color = ColorProcessor.GetRandomColor(); + SetMaterialColor = true; + ZIndex = 0; + Opacity = 1; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IPointTriangulationLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IPointTriangulationLogic.cs new file mode 100644 index 0000000..16f3c63 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IPointTriangulationLogic.cs @@ -0,0 +1,6 @@ +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + interface IPointTriangulationLogic : ITriangulationLogic + { + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IPointTriangulationLogicOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IPointTriangulationLogicOptions.cs new file mode 100644 index 0000000..9d64cce --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IPointTriangulationLogicOptions.cs @@ -0,0 +1,10 @@ +using StructureHelperCommon.Models.Shapes; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public interface IPointTriangulationLogicOptions : ITriangulationLogicOptions + { + IPoint2D Center { get; } + double Area { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IRectangleTriangulationLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IRectangleTriangulationLogic.cs new file mode 100644 index 0000000..f2d285d --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IRectangleTriangulationLogic.cs @@ -0,0 +1,6 @@ +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public interface IRectangleTriangulationLogic : ITriangulationLogic + { + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IRectangleTriangulationLogicOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IRectangleTriangulationLogicOptions.cs new file mode 100644 index 0000000..66851dc --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/IRectangleTriangulationLogicOptions.cs @@ -0,0 +1,28 @@ +using StructureHelperCommon.Models.Shapes; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + /// + /// Parameter of triangulation of rectangle part of section + /// Параметры триангуляции прямоугольного участка сечения + /// + public interface IRectangleTriangulationLogicOptions : ITriangulationLogicOptions + { + /// + /// + /// + IPoint2D Center { get; } + /// + /// + /// + IRectangleShape Rectangle { get; } + /// + /// Maximum size (width or height) of ndm part after triangulation + /// + double NdmMaxSize { get; } + /// + /// Minimum quantity of division of side of rectangle after triangulation + /// + int NdmMinDivision { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationLogic.cs new file mode 100644 index 0000000..ad313e1 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationLogic.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using LoaderCalculator.Data.Ndms; +using LoaderCalculator.Data.Materials; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public interface ITriangulationLogic + { + ITriangulationLogicOptions Options { get; } + IEnumerable GetNdmCollection(IMaterial material); + void ValidateOptions(ITriangulationLogicOptions options); + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationLogicOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationLogicOptions.cs new file mode 100644 index 0000000..513a185 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationLogicOptions.cs @@ -0,0 +1,9 @@ +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public interface ITriangulationLogicOptions + { + double PrestrainKx { get;} + double PrestrainKy { get;} + double PrestrainEpsZ { get;} + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs new file mode 100644 index 0000000..0f1f0b6 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs @@ -0,0 +1,10 @@ +using StructureHelperCommon.Infrastructures.Enums; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public interface ITriangulationOptions + { + LimitStates LimiteState { get; } + CalcTerms CalcTerm { get; } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/PointTriangulationLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/PointTriangulationLogic.cs new file mode 100644 index 0000000..c682be6 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/PointTriangulationLogic.cs @@ -0,0 +1,37 @@ +using LoaderCalculator.Data.Materials; +using LoaderCalculator.Data.Ndms; +using System; +using System.Collections.Generic; +using StructureHelperCommon.Models.Shapes; +using LoaderCalculator.Data.Matrix; +using LoaderCalculator.Data.Ndms.Transformations; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public class PointTriangulationLogic : IPointTriangulationLogic + { + public ITriangulationLogicOptions Options { get; } + + public PointTriangulationLogic(ITriangulationLogicOptions options) + { + Options = options; + } + + public IEnumerable GetNdmCollection(IMaterial material) + { + IPointTriangulationLogicOptions options = Options as IPointTriangulationLogicOptions; + IPoint2D center = options.Center; + double area = options.Area; + List ndmCollection = new List(); + INdm ndm = new Ndm { CenterX = center.X, CenterY = center.Y, Area = area, Material = material }; + ndmCollection.Add(ndm); + NdmTransform.SetPrestrain(ndmCollection, new StrainMatrix() { Kx = Options.PrestrainKx, Ky = Options.PrestrainKy, EpsZ = Options.PrestrainEpsZ }); + return ndmCollection; + } + + public void ValidateOptions(ITriangulationLogicOptions options) + { + throw new NotImplementedException(); + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/PointTriangulationLogicOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/PointTriangulationLogicOptions.cs new file mode 100644 index 0000000..1abae2e --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/PointTriangulationLogicOptions.cs @@ -0,0 +1,42 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Primitives; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + /// + /// + /// + public class PointTriangulationLogicOptions : IPointTriangulationLogicOptions + { + /// + /// + /// + public IPoint2D Center { get; } + /// + public double Area { get; } + /// + public double PrestrainKx { get; } + /// + public double PrestrainKy { get; } + /// + public double PrestrainEpsZ { get; } + + public PointTriangulationLogicOptions(IPoint2D center, double area) + { + Center = center; + Area = area; + } + + public PointTriangulationLogicOptions(IPointPrimitive primitive) + { + Center = new Point2D() { X = primitive.CenterX, Y = primitive.CenterY }; + Area = primitive.Area; + PrestrainKx = primitive.UsersPrestrain.Kx + primitive.AutoPrestrain.Kx; + PrestrainKy = primitive.UsersPrestrain.Ky + primitive.AutoPrestrain.Ky; + PrestrainEpsZ = primitive.UsersPrestrain.EpsZ + primitive.AutoPrestrain.EpsZ; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/RectangleTriangulationLogic.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/RectangleTriangulationLogic.cs new file mode 100644 index 0000000..a11e435 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/RectangleTriangulationLogic.cs @@ -0,0 +1,43 @@ +using LoaderCalculator.Data.Materials; +using LoaderCalculator.Data.Ndms; +using System; +using System.Collections.Generic; +using LoaderCalculator.Data.Ndms.Transformations; +using LoaderCalculator.Data.Matrix; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public class RectangleTriangulationLogic : IRectangleTriangulationLogic + { + public ITriangulationLogicOptions Options { get; } + + public IEnumerable GetNdmCollection(IMaterial material) + { + IRectangleTriangulationLogicOptions rectangleOptions = Options as IRectangleTriangulationLogicOptions; + double width = rectangleOptions.Rectangle.Width; + double height = rectangleOptions.Rectangle.Height; + double ndmMaxSize = rectangleOptions.NdmMaxSize; + int ndmMinDivision = rectangleOptions.NdmMinDivision; + LoaderCalculator.Triangulations.RectangleTriangulationLogicOptions logicOptions = new LoaderCalculator.Triangulations.RectangleTriangulationLogicOptions(width, height, ndmMaxSize, ndmMinDivision); + var logic = LoaderCalculator.Triangulations.Triangulation.GetLogicInstance(logicOptions); + var ndmCollection = logic.GetNdmCollection(new LoaderCalculator.Data.Planes.RectangularPlane { Material = material }); + double dX = rectangleOptions.Center.X; + double dY = rectangleOptions.Center.Y; + NdmTransform.Move(ndmCollection, dX, dY); + double angle = rectangleOptions.Rectangle.Angle; + NdmTransform.Rotate(ndmCollection, angle); + NdmTransform.SetPrestrain(ndmCollection, new StrainMatrix() { Kx = Options.PrestrainKx, Ky = Options.PrestrainKy, EpsZ = Options.PrestrainEpsZ }); + return ndmCollection; + } + + public void ValidateOptions(ITriangulationLogicOptions options) + { + throw new NotImplementedException(); + } + + public RectangleTriangulationLogic(ITriangulationLogicOptions options) + { + Options = options; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/RectangleTriangulationLogicOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/RectangleTriangulationLogicOptions.cs new file mode 100644 index 0000000..b7bf8a3 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/RectangleTriangulationLogicOptions.cs @@ -0,0 +1,47 @@ +using System; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Primitives; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + /// + public class RectangleTriangulationLogicOptions : IRectangleTriangulationLogicOptions + { + /// + public IPoint2D Center { get; } + /// + public IRectangleShape Rectangle { get; } + /// + public double NdmMaxSize { get; } + /// + public int NdmMinDivision { get; } + /// + public double PrestrainKx { get;} + /// + public double PrestrainKy { get; } + /// + public double PrestrainEpsZ { get;} + + public RectangleTriangulationLogicOptions(IPoint2D center, IRectangleShape rectangle, double ndmMaxSize, int ndmMinDivision) + { + Center = center; + Rectangle = rectangle; + NdmMaxSize = ndmMaxSize; + NdmMinDivision = ndmMinDivision; + } + + public RectangleTriangulationLogicOptions(IRectanglePrimitive primitive) + { + Center = new Point2D() { X = primitive.CenterX, Y = primitive.CenterY }; + Rectangle = primitive; + NdmMaxSize = primitive.NdmMaxSize; + NdmMinDivision = primitive.NdmMinDivision; + PrestrainKx = primitive.UsersPrestrain.Kx + primitive.AutoPrestrain.Kx; + PrestrainKy = primitive.UsersPrestrain.Ky + primitive.AutoPrestrain.Ky; + PrestrainEpsZ = primitive.UsersPrestrain.EpsZ + primitive.AutoPrestrain.EpsZ; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs new file mode 100644 index 0000000..fbdc021 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using LoaderCalculator.Data.Materials; +using LoaderCalculator.Data.Materials.MaterialBuilders; +using LoaderCalculator.Data.Ndms; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Strings; +using StructureHelperLogics.Models.Materials; +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.Models.Primitives; +using StructureHelper.Models.Materials; +using StructureHelperLogics.NdmCalculations.Primitives; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public static class Triangulation + { + public static IEnumerable GetNdms(IEnumerable ndmPrimitives, ITriangulationOptions options) + { + List ndms = new List(); + var headMaterials = GetPrimitiveMaterials(ndmPrimitives); + Dictionary materials = GetMaterials(headMaterials, options); + foreach (var ndmPrimitive in ndmPrimitives) + { + IHeadMaterial headMaterial = ndmPrimitive.HeadMaterial; + IMaterial material; + if (materials.TryGetValue(headMaterial.Id, out material) == false) { throw new Exception("Material dictionary is not valid"); } + IEnumerable localNdms = GetNdmsByPrimitive(ndmPrimitive, material); + ndms.AddRange(localNdms); + } + return ndms; + } + /// + /// Returns dictionary of unique materials by collection of primitives + /// + /// + /// + private static Dictionary GetPrimitiveMaterials(IEnumerable ndmPrimitives) + { + Dictionary headMaterials = new Dictionary(); + foreach (var ndmPrimitive in ndmPrimitives) + { + IHeadMaterial material = ndmPrimitive.HeadMaterial; + if (!headMaterials.ContainsKey(material.Id)) { headMaterials.Add(material.Id, material); } + } + return headMaterials; + } + /// + /// Return dictionary of ndm-materials by dictionary of primirive materials + /// + /// + /// + /// + /// + private static Dictionary GetMaterials(Dictionary PrimitiveMaterials, ITriangulationOptions options) + { + Dictionary materials = new Dictionary(); + IEnumerable keyCollection = PrimitiveMaterials.Keys; + IMaterial material; + foreach (string id in keyCollection) + { + IHeadMaterial headMaterial; + if (PrimitiveMaterials.TryGetValue(id, out headMaterial) == false) { throw new StructureHelperException("Material dictionary is not valid"); } + material = headMaterial.GetLoaderMaterial(options.LimiteState, options.CalcTerm); + materials.Add(id, material); + } + return materials; + } + + private static IEnumerable GetNdmsByPrimitive(INdmPrimitive primitive, IMaterial material) + { + List ndms = new List(); + //ITriangulationLogicOptions options; + //ICenter center = primitive.Center; + //IShape shape = primitive.Shape; + ndms.AddRange(primitive.GetNdms(material)); + //if (shape is IRectangleShape) + //{ + // options = new RectangleTriangulationLogicOptions(primitive); + // ITriangulationLogic logic = new RectangleTriangulationLogic(options); + // ndms.AddRange(logic.GetNdmCollection(material)); + //} + //else if (shape is IPoint) + //{ + // options = new PointTriangulationLogicOptions(primitive); + // IPointTriangulationLogic logic = new PointTriangulationLogic(options); + // ndms.AddRange(logic.GetNdmCollection(material)); + //} + //else { throw new StructureHelperException($"{ErrorStrings.ShapeIsNotCorrect} :{nameof(primitive.Shape)}"); } + return ndms; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs new file mode 100644 index 0000000..6a52527 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs @@ -0,0 +1,10 @@ +using StructureHelperCommon.Infrastructures.Enums; + +namespace StructureHelperLogics.NdmCalculations.Triangulations +{ + public class TriangulationOptions : ITriangulationOptions + { + public LimitStates LimiteState { get; set; } + public CalcTerms CalcTerm { get; set; } + } +} diff --git a/StructureHelper/StructureHelperLogics/Services/NdmCalculations/CalculationService.cs b/StructureHelper/StructureHelperLogics/Services/NdmCalculations/CalculationService.cs new file mode 100644 index 0000000..dbc039d --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Services/NdmCalculations/CalculationService.cs @@ -0,0 +1,90 @@ +using LoaderCalculator.Data.Matrix; +using LoaderCalculator.Data.Ndms; +using LoaderCalculator.Data.SourceData; +using LoaderCalculator; +using StructureHelperLogics.Models.Calculations.CalculationProperties; +using StructureHelperLogics.Models.Calculations.CalculationsResults; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Triangulations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperLogics.NdmCalculations.Primitives; + +namespace StructureHelperLogics.Services.NdmCalculations +{ + public class CalculationService + { + private ICalculationProperty calculationProperty; + + public IStrainMatrix GetPrimitiveStrainMatrix(INdmPrimitive[] ndmPrimitives, double mx, double my, double nz) + { + var ndmCollection = new List(); + ITriangulationOptions options = new TriangulationOptions { LimiteState = calculationProperty.LimitState, CalcTerm = calculationProperty.CalcTerm }; + ndmCollection.AddRange(Triangulation.GetNdms(ndmPrimitives, options)); + var loaderData = new LoaderOptions + { + Preconditions = new Preconditions + { + ConditionRate = calculationProperty.IterationProperty.Accuracy, + MaxIterationCount = calculationProperty.IterationProperty.MaxIterationCount, + StartForceMatrix = new ForceMatrix { Mx = mx, My = my, Nz = nz } + }, + NdmCollection = ndmCollection + }; + var calculator = new Calculator(); + calculator.Run(loaderData, new CancellationToken()); + return calculator.Result.StrainMatrix; + } + + public List GetCalculationResults(IEnumerable ndms) + { + List results = new List(); + foreach (var forceCombinations in calculationProperty.ForceCombinations) + { + var forceMatrix = forceCombinations.ForceMatrix; + results.Add(GetCalculationResult(forceMatrix, ndms, calculationProperty.IterationProperty.Accuracy, calculationProperty.IterationProperty.MaxIterationCount)); + } + return results; + } + + public ICalculationResult GetCalculationResult(IForceMatrix forceMatrix, IEnumerable ndmCollection, double accuracyRate, int maxIterationCount) + { + try + { + var loaderData = new LoaderOptions + { + Preconditions = new Preconditions + { + ConditionRate = accuracyRate, + MaxIterationCount = maxIterationCount, + StartForceMatrix = forceMatrix + }, + NdmCollection = ndmCollection + }; + var calculator = new Calculator(); + calculator.Run(loaderData, new CancellationToken()); + var result = calculator.Result; + if (result.AccuracyRate <= accuracyRate) { return new CalculationResult() { IsValid = true, Desctription = "Analisys is done succsefully", LoaderResults = result }; } + else { return new CalculationResult() { IsValid = false, Desctription = "Required accuracy rate has not achived", LoaderResults = result }; } + } + catch (Exception ex) + { + return new CalculationResult() { IsValid = false, Desctription = $"Error is appeared due to analysis. Error: {ex}" }; + } + } + + public CalculationService(ICalculationProperty property) + { + calculationProperty = property; + } + public CalculationService() + { + + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Services/NdmCalculations/InterpolateService.cs b/StructureHelper/StructureHelperLogics/Services/NdmCalculations/InterpolateService.cs new file mode 100644 index 0000000..5d1cd4b --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Services/NdmCalculations/InterpolateService.cs @@ -0,0 +1,40 @@ +using StructureHelperCommon.Models.Forces; +using StructureHelperCommon.Services.Forces; +using StructureHelperCommon.Services.Sections; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Analyses.ByForces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StructureHelperLogics.Services.NdmCalculations +{ + public static class InterpolateService + { + public static IForceCalculator InterpolateForceCalculator(IForceCalculator source, IDesignForceTuple finishDesignForce,IDesignForceTuple startDesignForce, int stepCount) + { + IForceCalculator calculator = new ForceCalculator(); + calculator.LimitStatesList.Clear(); + calculator.LimitStatesList.Add(finishDesignForce.LimitState); + calculator.CalcTermsList.Clear(); + calculator.CalcTermsList.Add(finishDesignForce.CalcTerm); + CompressedMemberServices.CopyProperties(source.CompressedMember, calculator.CompressedMember); + calculator.Accuracy = source.Accuracy; + calculator.Primitives.AddRange(source.Primitives); + calculator.ForceCombinationLists.Clear(); + var combination = new ForceCombinationList() + { + Name = "New combination", + SetInGravityCenter = false + }; + combination.DesignForces.Clear(); + combination.DesignForces.AddRange(ForceTupleService.InterpolateDesignTuple(finishDesignForce, startDesignForce, stepCount)); + combination.ForcePoint.X = 0; + combination.ForcePoint.Y = 0; + calculator.ForceCombinationLists.Add(combination); + return calculator; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/Services/NdmPrimitives/NdmPrimitivesService.cs b/StructureHelper/StructureHelperLogics/Services/NdmPrimitives/NdmPrimitivesService.cs new file mode 100644 index 0000000..de61870 --- /dev/null +++ b/StructureHelper/StructureHelperLogics/Services/NdmPrimitives/NdmPrimitivesService.cs @@ -0,0 +1,57 @@ +using LoaderCalculator.Data.Ndms; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Services.Forces; +using StructureHelperLogics.Models.Calculations.CalculationProperties; +using StructureHelperLogics.Models.Primitives; +using StructureHelperLogics.NdmCalculations.Primitives; +using StructureHelperLogics.NdmCalculations.Triangulations; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static System.Collections.Specialized.BitVector32; + +namespace StructureHelperLogics.Services.NdmPrimitives +{ + public static class NdmPrimitivesService + { + public static void CopyVisualProperty(IVisualProperty source, IVisualProperty target) + { + target.IsVisible = source.IsVisible; + target.Color = source.Color; + target.SetMaterialColor = source.SetMaterialColor; + target.Opacity = source.Opacity; + target.ZIndex = source.ZIndex; + } + + public static void CopyNdmProperties (INdmPrimitive source, INdmPrimitive target) + { + target.Name = source.Name + " copy" ; + if (source.HeadMaterial != null) target.HeadMaterial = source.HeadMaterial; + CopyVisualProperty(source.VisualProperty, target.VisualProperty); + target.CenterX = source.CenterX; + target.CenterY = source.CenterY; + StrainTupleService.CopyProperties(source.UsersPrestrain, target.UsersPrestrain); + } + + public static void CopyDivisionProperties(IHasDivisionSize source, IHasDivisionSize target) + { + CopyNdmProperties(source, target); + target.NdmMaxSize = source.NdmMaxSize; + target.NdmMinDivision = source.NdmMinDivision; + } + + public static List GetNdms(IEnumerable primitives, LimitStates limitState, CalcTerms calcTerm) + { + //Настройки триангуляции + ITriangulationOptions options = new TriangulationOptions { LimiteState = limitState, CalcTerm = calcTerm }; + + //Формируем коллекцию элементарных участков для расчета в библитеке (т.е. выполняем триангуляцию) + List ndmCollection = new List(); + ndmCollection.AddRange(Triangulation.GetNdms(primitives, options)); + + return ndmCollection; + } + } +} diff --git a/StructureHelper/StructureHelperLogics/StructureHelperLogics.csproj b/StructureHelper/StructureHelperLogics/StructureHelperLogics.csproj new file mode 100644 index 0000000..ef0f54a --- /dev/null +++ b/StructureHelper/StructureHelperLogics/StructureHelperLogics.csproj @@ -0,0 +1,26 @@ + + + + net472 + Library + + + + + + + + + ..\Libraries\LoaderCalculator.dll + + + + + + + + + + + + \ No newline at end of file diff --git a/StructureHelperLogics/StructureHelperLogics.csproj.bak b/StructureHelper/StructureHelperLogics/StructureHelperLogics.csproj.bak similarity index 100% rename from StructureHelperLogics/StructureHelperLogics.csproj.bak rename to StructureHelper/StructureHelperLogics/StructureHelperLogics.csproj.bak diff --git a/StructureHelperLogics/StructureHelperLogics1.csproj b/StructureHelper/StructureHelperLogics/StructureHelperLogics1.csproj similarity index 100% rename from StructureHelperLogics/StructureHelperLogics1.csproj rename to StructureHelper/StructureHelperLogics/StructureHelperLogics1.csproj diff --git a/UnitSystem/Enums/SystemTypes.cs b/StructureHelper/UnitSystem/Enums/SystemTypes.cs similarity index 100% rename from UnitSystem/Enums/SystemTypes.cs rename to StructureHelper/UnitSystem/Enums/SystemTypes.cs diff --git a/UnitSystem/Systems/IUnitSystem.cs b/StructureHelper/UnitSystem/Systems/IUnitSystem.cs similarity index 100% rename from UnitSystem/Systems/IUnitSystem.cs rename to StructureHelper/UnitSystem/Systems/IUnitSystem.cs diff --git a/UnitSystem/Systems/SystemSi.cs b/StructureHelper/UnitSystem/Systems/SystemSi.cs similarity index 100% rename from UnitSystem/Systems/SystemSi.cs rename to StructureHelper/UnitSystem/Systems/SystemSi.cs diff --git a/UnitSystem/UnitSystemService.cs b/StructureHelper/UnitSystem/UnitSystemService.cs similarity index 100% rename from UnitSystem/UnitSystemService.cs rename to StructureHelper/UnitSystem/UnitSystemService.cs diff --git a/Windows/AddMaterialWindow/AddMaterialView.xaml b/StructureHelper/Windows/AddMaterialWindow/AddMaterialView.xaml similarity index 100% rename from Windows/AddMaterialWindow/AddMaterialView.xaml rename to StructureHelper/Windows/AddMaterialWindow/AddMaterialView.xaml diff --git a/Windows/AddMaterialWindow/AddMaterialView.xaml.cs b/StructureHelper/Windows/AddMaterialWindow/AddMaterialView.xaml.cs similarity index 100% rename from Windows/AddMaterialWindow/AddMaterialView.xaml.cs rename to StructureHelper/Windows/AddMaterialWindow/AddMaterialView.xaml.cs diff --git a/Windows/AddMaterialWindow/AddMaterialViewModel.cs b/StructureHelper/Windows/AddMaterialWindow/AddMaterialViewModel.cs similarity index 100% rename from Windows/AddMaterialWindow/AddMaterialViewModel.cs rename to StructureHelper/Windows/AddMaterialWindow/AddMaterialViewModel.cs diff --git a/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml b/StructureHelper/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml similarity index 100% rename from Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml rename to StructureHelper/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml diff --git a/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs similarity index 100% rename from Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs rename to StructureHelper/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs diff --git a/Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml b/StructureHelper/Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml similarity index 100% rename from Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml rename to StructureHelper/Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml diff --git a/Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml.cs similarity index 100% rename from Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml.cs rename to StructureHelper/Windows/CalculationWindows/CalculationResultWindow/CalculationResultView.xaml.cs diff --git a/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml diff --git a/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml.cs similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml.cs rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml.cs diff --git a/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml diff --git a/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml.cs similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml.cs rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForcesResultsView.xaml.cs diff --git a/Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml diff --git a/Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml.cs similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml.cs rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/SetPrestrainView.xaml.cs diff --git a/Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml diff --git a/Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml.cs similarity index 100% rename from Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml.cs rename to StructureHelper/Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml.cs diff --git a/Windows/ColorPickerWindow/ColorPickerView.xaml b/StructureHelper/Windows/ColorPickerWindow/ColorPickerView.xaml similarity index 100% rename from Windows/ColorPickerWindow/ColorPickerView.xaml rename to StructureHelper/Windows/ColorPickerWindow/ColorPickerView.xaml diff --git a/Windows/ColorPickerWindow/ColorPickerView.xaml.cs b/StructureHelper/Windows/ColorPickerWindow/ColorPickerView.xaml.cs similarity index 100% rename from Windows/ColorPickerWindow/ColorPickerView.xaml.cs rename to StructureHelper/Windows/ColorPickerWindow/ColorPickerView.xaml.cs diff --git a/Windows/ColorPickerWindow/ColorPickerViewModel.cs b/StructureHelper/Windows/ColorPickerWindow/ColorPickerViewModel.cs similarity index 100% rename from Windows/ColorPickerWindow/ColorPickerViewModel.cs rename to StructureHelper/Windows/ColorPickerWindow/ColorPickerViewModel.cs diff --git a/Windows/Forces/ForceCombinationView.xaml b/StructureHelper/Windows/Forces/ForceCombinationView.xaml similarity index 100% rename from Windows/Forces/ForceCombinationView.xaml rename to StructureHelper/Windows/Forces/ForceCombinationView.xaml diff --git a/Windows/Forces/ForceCombinationView.xaml.cs b/StructureHelper/Windows/Forces/ForceCombinationView.xaml.cs similarity index 100% rename from Windows/Forces/ForceCombinationView.xaml.cs rename to StructureHelper/Windows/Forces/ForceCombinationView.xaml.cs diff --git a/Windows/Forces/ForceTupleControl.xaml b/StructureHelper/Windows/Forces/ForceTupleControl.xaml similarity index 100% rename from Windows/Forces/ForceTupleControl.xaml rename to StructureHelper/Windows/Forces/ForceTupleControl.xaml diff --git a/Windows/Forces/ForceTupleControl.xaml.cs b/StructureHelper/Windows/Forces/ForceTupleControl.xaml.cs similarity index 100% rename from Windows/Forces/ForceTupleControl.xaml.cs rename to StructureHelper/Windows/Forces/ForceTupleControl.xaml.cs diff --git a/Windows/Forces/InterpolateTuplesView.xaml b/StructureHelper/Windows/Forces/InterpolateTuplesView.xaml similarity index 100% rename from Windows/Forces/InterpolateTuplesView.xaml rename to StructureHelper/Windows/Forces/InterpolateTuplesView.xaml diff --git a/Windows/Forces/InterpolateTuplesView.xaml.cs b/StructureHelper/Windows/Forces/InterpolateTuplesView.xaml.cs similarity index 100% rename from Windows/Forces/InterpolateTuplesView.xaml.cs rename to StructureHelper/Windows/Forces/InterpolateTuplesView.xaml.cs diff --git a/Windows/MainWindow/MainModel.cs b/StructureHelper/Windows/MainWindow/MainModel.cs similarity index 100% rename from Windows/MainWindow/MainModel.cs rename to StructureHelper/Windows/MainWindow/MainModel.cs diff --git a/Windows/MainWindow/MainView.xaml b/StructureHelper/Windows/MainWindow/MainView.xaml similarity index 100% rename from Windows/MainWindow/MainView.xaml rename to StructureHelper/Windows/MainWindow/MainView.xaml index 647a5c0..81695dc 100644 --- a/Windows/MainWindow/MainView.xaml +++ b/StructureHelper/Windows/MainWindow/MainView.xaml @@ -3,7 +3,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:infrastructure="clr-namespace:StructureHelper.Infrastructure" xmlns:dataTemplates="clr-namespace:StructureHelper.Infrastructure.UI.DataTemplates" xmlns:dataContexts="clr-namespace:StructureHelper.Infrastructure.UI.DataContexts" @@ -11,6 +10,7 @@ xmlns:mouseEventTriggers="clr-namespace:StructureHelper.Infrastructure.UI.Triggers.MouseEventTriggers" xmlns:local="clr-namespace:StructureHelper.Windows.MainWindow" xmlns:enums="clr-namespace:StructureHelper.Infrastructure.Enums" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d" d:DataContext="{d:DesignInstance local:MainViewModel}" Title="StructureHelper" Height="700" Width="1000" MinHeight="400" MinWidth="600"> diff --git a/Windows/MainWindow/MainView.xaml.cs b/StructureHelper/Windows/MainWindow/MainView.xaml.cs similarity index 100% rename from Windows/MainWindow/MainView.xaml.cs rename to StructureHelper/Windows/MainWindow/MainView.xaml.cs diff --git a/Windows/MainWindow/MainViewModel.cs b/StructureHelper/Windows/MainWindow/MainViewModel.cs similarity index 100% rename from Windows/MainWindow/MainViewModel.cs rename to StructureHelper/Windows/MainWindow/MainViewModel.cs diff --git a/Windows/MainWindow/Materials/HeadMaterialsView.xaml b/StructureHelper/Windows/MainWindow/Materials/HeadMaterialsView.xaml similarity index 100% rename from Windows/MainWindow/Materials/HeadMaterialsView.xaml rename to StructureHelper/Windows/MainWindow/Materials/HeadMaterialsView.xaml diff --git a/Windows/MainWindow/Materials/HeadMaterialsView.xaml.cs b/StructureHelper/Windows/MainWindow/Materials/HeadMaterialsView.xaml.cs similarity index 100% rename from Windows/MainWindow/Materials/HeadMaterialsView.xaml.cs rename to StructureHelper/Windows/MainWindow/Materials/HeadMaterialsView.xaml.cs diff --git a/Windows/MainWindow/Materials/PartialFactorsView.xaml b/StructureHelper/Windows/MainWindow/Materials/PartialFactorsView.xaml similarity index 100% rename from Windows/MainWindow/Materials/PartialFactorsView.xaml rename to StructureHelper/Windows/MainWindow/Materials/PartialFactorsView.xaml diff --git a/Windows/MainWindow/Materials/PartialFactorsView.xaml.cs b/StructureHelper/Windows/MainWindow/Materials/PartialFactorsView.xaml.cs similarity index 100% rename from Windows/MainWindow/Materials/PartialFactorsView.xaml.cs rename to StructureHelper/Windows/MainWindow/Materials/PartialFactorsView.xaml.cs diff --git a/Windows/MainWindow/Materials/SafetyFactorsView.xaml b/StructureHelper/Windows/MainWindow/Materials/SafetyFactorsView.xaml similarity index 100% rename from Windows/MainWindow/Materials/SafetyFactorsView.xaml rename to StructureHelper/Windows/MainWindow/Materials/SafetyFactorsView.xaml diff --git a/Windows/MainWindow/Materials/SafetyFactorsView.xaml.cs b/StructureHelper/Windows/MainWindow/Materials/SafetyFactorsView.xaml.cs similarity index 100% rename from Windows/MainWindow/Materials/SafetyFactorsView.xaml.cs rename to StructureHelper/Windows/MainWindow/Materials/SafetyFactorsView.xaml.cs diff --git a/Windows/MainWindow/VisualPropertyView.xaml b/StructureHelper/Windows/MainWindow/VisualPropertyView.xaml similarity index 100% rename from Windows/MainWindow/VisualPropertyView.xaml rename to StructureHelper/Windows/MainWindow/VisualPropertyView.xaml diff --git a/Windows/MainWindow/VisualPropertyView.xaml.cs b/StructureHelper/Windows/MainWindow/VisualPropertyView.xaml.cs similarity index 100% rename from Windows/MainWindow/VisualPropertyView.xaml.cs rename to StructureHelper/Windows/MainWindow/VisualPropertyView.xaml.cs diff --git a/Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml b/StructureHelper/Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml similarity index 100% rename from Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml rename to StructureHelper/Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml diff --git a/Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml.cs b/StructureHelper/Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml.cs similarity index 100% rename from Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml.cs rename to StructureHelper/Windows/PrimitivePropertiesWindow/PrimitivePropertiesView.xaml.cs diff --git a/Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml b/StructureHelper/Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml similarity index 100% rename from Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml rename to StructureHelper/Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml diff --git a/Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml.cs b/StructureHelper/Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml.cs similarity index 100% rename from Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml.cs rename to StructureHelper/Windows/PrimitivePropertiesWindow/SelectPrimitivesView.xaml.cs diff --git a/Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml b/StructureHelper/Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml similarity index 100% rename from Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml rename to StructureHelper/Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml diff --git a/Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml.cs b/StructureHelper/Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml.cs similarity index 100% rename from Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml.cs rename to StructureHelper/Windows/PrimitiveTemplates/RCs/RectangleBeam/RectangleBeamView.xaml.cs diff --git a/Windows/ViewModels/CRUDViewModelBase.cs b/StructureHelper/Windows/ViewModels/CRUDViewModelBase.cs similarity index 100% rename from Windows/ViewModels/CRUDViewModelBase.cs rename to StructureHelper/Windows/ViewModels/CRUDViewModelBase.cs diff --git a/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs b/StructureHelper/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs similarity index 100% rename from Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs rename to StructureHelper/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs diff --git a/Windows/ViewModels/Calculations/CalculationResult/CalculationResultViewModel.cs b/StructureHelper/Windows/ViewModels/Calculations/CalculationResult/CalculationResultViewModel.cs similarity index 100% rename from Windows/ViewModels/Calculations/CalculationResult/CalculationResultViewModel.cs rename to StructureHelper/Windows/ViewModels/Calculations/CalculationResult/CalculationResultViewModel.cs diff --git a/Windows/ViewModels/Calculations/Calculators/ForceCalculatorViewModel.cs b/StructureHelper/Windows/ViewModels/Calculations/Calculators/ForceCalculatorViewModel.cs similarity index 100% rename from Windows/ViewModels/Calculations/Calculators/ForceCalculatorViewModel.cs rename to StructureHelper/Windows/ViewModels/Calculations/Calculators/ForceCalculatorViewModel.cs diff --git a/Windows/ViewModels/Calculations/Calculators/ForcesResultsViewModel.cs b/StructureHelper/Windows/ViewModels/Calculations/Calculators/ForcesResultsViewModel.cs similarity index 100% rename from Windows/ViewModels/Calculations/Calculators/ForcesResultsViewModel.cs rename to StructureHelper/Windows/ViewModels/Calculations/Calculators/ForcesResultsViewModel.cs diff --git a/Windows/ViewModels/Calculations/Calculators/ICombinationSourceToTargetViewModel.cs b/StructureHelper/Windows/ViewModels/Calculations/Calculators/ICombinationSourceToTargetViewModel.cs similarity index 100% rename from Windows/ViewModels/Calculations/Calculators/ICombinationSourceToTargetViewModel.cs rename to StructureHelper/Windows/ViewModels/Calculations/Calculators/ICombinationSourceToTargetViewModel.cs diff --git a/Windows/ViewModels/Calculations/Calculators/SetPrestrainViewModel.cs b/StructureHelper/Windows/ViewModels/Calculations/Calculators/SetPrestrainViewModel.cs similarity index 100% rename from Windows/ViewModels/Calculations/Calculators/SetPrestrainViewModel.cs rename to StructureHelper/Windows/ViewModels/Calculations/Calculators/SetPrestrainViewModel.cs diff --git a/Windows/ViewModels/Forces/ActionsViewModel.cs b/StructureHelper/Windows/ViewModels/Forces/ActionsViewModel.cs similarity index 100% rename from Windows/ViewModels/Forces/ActionsViewModel.cs rename to StructureHelper/Windows/ViewModels/Forces/ActionsViewModel.cs diff --git a/Windows/ViewModels/Forces/ForceCombinationViewModel.cs b/StructureHelper/Windows/ViewModels/Forces/ForceCombinationViewModel.cs similarity index 100% rename from Windows/ViewModels/Forces/ForceCombinationViewModel.cs rename to StructureHelper/Windows/ViewModels/Forces/ForceCombinationViewModel.cs diff --git a/Windows/ViewModels/Forces/ForceTuplesViewModel.cs b/StructureHelper/Windows/ViewModels/Forces/ForceTuplesViewModel.cs similarity index 100% rename from Windows/ViewModels/Forces/ForceTuplesViewModel.cs rename to StructureHelper/Windows/ViewModels/Forces/ForceTuplesViewModel.cs diff --git a/Windows/ViewModels/Forces/InterpolateTuplesViewModel.cs b/StructureHelper/Windows/ViewModels/Forces/InterpolateTuplesViewModel.cs similarity index 100% rename from Windows/ViewModels/Forces/InterpolateTuplesViewModel.cs rename to StructureHelper/Windows/ViewModels/Forces/InterpolateTuplesViewModel.cs diff --git a/Windows/ViewModels/ICRUDViewModel.cs b/StructureHelper/Windows/ViewModels/ICRUDViewModel.cs similarity index 100% rename from Windows/ViewModels/ICRUDViewModel.cs rename to StructureHelper/Windows/ViewModels/ICRUDViewModel.cs diff --git a/Windows/ViewModels/ISourceToTargetViewModel.cs b/StructureHelper/Windows/ViewModels/ISourceToTargetViewModel.cs similarity index 100% rename from Windows/ViewModels/ISourceToTargetViewModel.cs rename to StructureHelper/Windows/ViewModels/ISourceToTargetViewModel.cs diff --git a/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs similarity index 100% rename from Windows/ViewModels/Materials/HeadMaterialsViewModel.cs rename to StructureHelper/Windows/ViewModels/Materials/HeadMaterialsViewModel.cs diff --git a/Windows/ViewModels/Materials/ISafetyFactorViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/ISafetyFactorViewModel.cs similarity index 100% rename from Windows/ViewModels/Materials/ISafetyFactorViewModel.cs rename to StructureHelper/Windows/ViewModels/Materials/ISafetyFactorViewModel.cs diff --git a/Windows/ViewModels/Materials/PartialFactorsViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/PartialFactorsViewModel.cs similarity index 100% rename from Windows/ViewModels/Materials/PartialFactorsViewModel.cs rename to StructureHelper/Windows/ViewModels/Materials/PartialFactorsViewModel.cs diff --git a/Windows/ViewModels/Materials/SafetyFactorsViewModel.cs b/StructureHelper/Windows/ViewModels/Materials/SafetyFactorsViewModel.cs similarity index 100% rename from Windows/ViewModels/Materials/SafetyFactorsViewModel.cs rename to StructureHelper/Windows/ViewModels/Materials/SafetyFactorsViewModel.cs diff --git a/Windows/ViewModels/NdmCrossSections/AnalysisVewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/AnalysisVewModelLogic.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/AnalysisVewModelLogic.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/AnalysisVewModelLogic.cs diff --git a/Windows/ViewModels/NdmCrossSections/CrossSectionViewVisualProperty.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/CrossSectionViewVisualProperty.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/CrossSectionViewVisualProperty.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/CrossSectionViewVisualProperty.cs diff --git a/Windows/ViewModels/NdmCrossSections/ForceCombinationViewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/ForceCombinationViewModelLogic.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/ForceCombinationViewModelLogic.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/ForceCombinationViewModelLogic.cs diff --git a/Windows/ViewModels/NdmCrossSections/ICalculatorsViewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/ICalculatorsViewModelLogic.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/ICalculatorsViewModelLogic.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/ICalculatorsViewModelLogic.cs diff --git a/Windows/ViewModels/NdmCrossSections/IForceCombinationViewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/IForceCombinationViewModelLogic.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/IForceCombinationViewModelLogic.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/IForceCombinationViewModelLogic.cs diff --git a/Windows/ViewModels/NdmCrossSections/IPrimitiveViewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/IPrimitiveViewModelLogic.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/IPrimitiveViewModelLogic.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/IPrimitiveViewModelLogic.cs diff --git a/Windows/ViewModels/NdmCrossSections/PrimitiveViewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/PrimitiveViewModelLogic.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/PrimitiveViewModelLogic.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/PrimitiveViewModelLogic.cs diff --git a/Windows/ViewModels/NdmCrossSections/SecondOrderViewModel.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/SecondOrderViewModel.cs similarity index 100% rename from Windows/ViewModels/NdmCrossSections/SecondOrderViewModel.cs rename to StructureHelper/Windows/ViewModels/NdmCrossSections/SecondOrderViewModel.cs diff --git a/Windows/ViewModels/OkCancelViewModelBase.cs b/StructureHelper/Windows/ViewModels/OkCancelViewModelBase.cs similarity index 100% rename from Windows/ViewModels/OkCancelViewModelBase.cs rename to StructureHelper/Windows/ViewModels/OkCancelViewModelBase.cs diff --git a/Windows/ViewModels/PrimitiveProperties/PrimitivePropertiesViewModel.cs b/StructureHelper/Windows/ViewModels/PrimitiveProperties/PrimitivePropertiesViewModel.cs similarity index 100% rename from Windows/ViewModels/PrimitiveProperties/PrimitivePropertiesViewModel.cs rename to StructureHelper/Windows/ViewModels/PrimitiveProperties/PrimitivePropertiesViewModel.cs diff --git a/Windows/ViewModels/PrimitiveProperties/SelectPrimitivesViewModel.cs b/StructureHelper/Windows/ViewModels/PrimitiveProperties/SelectPrimitivesViewModel.cs similarity index 100% rename from Windows/ViewModels/PrimitiveProperties/SelectPrimitivesViewModel.cs rename to StructureHelper/Windows/ViewModels/PrimitiveProperties/SelectPrimitivesViewModel.cs diff --git a/Windows/ViewModels/PrimitiveTemplates/RCs/RectangleBeamViewModel.cs b/StructureHelper/Windows/ViewModels/PrimitiveTemplates/RCs/RectangleBeamViewModel.cs similarity index 100% rename from Windows/ViewModels/PrimitiveTemplates/RCs/RectangleBeamViewModel.cs rename to StructureHelper/Windows/ViewModels/PrimitiveTemplates/RCs/RectangleBeamViewModel.cs diff --git a/Windows/ViewModels/Primitives/RectangleControlViewModel.cs b/StructureHelper/Windows/ViewModels/Primitives/RectangleControlViewModel.cs similarity index 100% rename from Windows/ViewModels/Primitives/RectangleControlViewModel.cs rename to StructureHelper/Windows/ViewModels/Primitives/RectangleControlViewModel.cs diff --git a/Windows/ViewModels/SelectItemsViewModel.cs b/StructureHelper/Windows/ViewModels/SelectItemsViewModel.cs similarity index 100% rename from Windows/ViewModels/SelectItemsViewModel.cs rename to StructureHelper/Windows/ViewModels/SelectItemsViewModel.cs diff --git a/Windows/ViewModels/SourceToTargetViewModel.cs b/StructureHelper/Windows/ViewModels/SourceToTargetViewModel.cs similarity index 100% rename from Windows/ViewModels/SourceToTargetViewModel.cs rename to StructureHelper/Windows/ViewModels/SourceToTargetViewModel.cs diff --git a/packages.config b/StructureHelper/packages.config similarity index 100% rename from packages.config rename to StructureHelper/packages.config diff --git a/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs b/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs index 66213b9..8150f2b 100644 --- a/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs +++ b/StructureHelperCommon/Infrastructures/Enums/CodeTypes.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace StructureHelperCommon.Infrastructures.Enums +namespace StructureHelperCommon.Infrastructures.Enums { public enum CodeTypes { diff --git a/StructureHelperCommon/Infrastructures/Enums/Directions.cs b/StructureHelperCommon/Infrastructures/Enums/Directions.cs index f210380..6b4dc0f 100644 --- a/StructureHelperCommon/Infrastructures/Enums/Directions.cs +++ b/StructureHelperCommon/Infrastructures/Enums/Directions.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Infrastructures.Enums +namespace StructureHelperCommon.Infrastructures.Enums { public enum Directions { diff --git a/StructureHelperCommon/Infrastructures/Enums/StressStates.cs b/StructureHelperCommon/Infrastructures/Enums/StressStates.cs index e02d0a6..5c44653 100644 --- a/StructureHelperCommon/Infrastructures/Enums/StressStates.cs +++ b/StructureHelperCommon/Infrastructures/Enums/StressStates.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Infrastructures.Enums +namespace StructureHelperCommon.Infrastructures.Enums { public enum StressStates { diff --git a/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs b/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs index 21f9421..8df3530 100644 --- a/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs +++ b/StructureHelperCommon/Infrastructures/Enums/UnitTypes.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Infrastructures.Enums +namespace StructureHelperCommon.Infrastructures.Enums { public enum UnitTypes { diff --git a/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs b/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs index 9c96b5e..ab76f9d 100644 --- a/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs +++ b/StructureHelperCommon/Infrastructures/Exceptions/StructureHelperException.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Infrastructures.Exceptions { diff --git a/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs b/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs index 6bf61fb..e73e49f 100644 --- a/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs +++ b/StructureHelperCommon/Infrastructures/Interfaces/IHasForceCombinations.cs @@ -1,9 +1,5 @@ -using StructureHelperCommon.Models.Forces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Collections.Generic; +using StructureHelperCommon.Models.Forces; namespace StructureHelperCommon.Infrastructures.Interfaces { diff --git a/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs b/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs index 99f6895..e51b97f 100644 --- a/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs +++ b/StructureHelperCommon/Infrastructures/Interfaces/IHasParent.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Infrastructures.Interfaces +namespace StructureHelperCommon.Infrastructures.Interfaces { public interface IHasParent { diff --git a/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs b/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs index a1020e2..45d8519 100644 --- a/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs +++ b/StructureHelperCommon/Infrastructures/Interfaces/ISaveable.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Infrastructures.Interfaces +namespace StructureHelperCommon.Infrastructures.Interfaces { public interface ISaveable { diff --git a/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs b/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs index 21e48a1..03254af 100644 --- a/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs +++ b/StructureHelperCommon/Infrastructures/Settings/ProgramSetting.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Infrastructures.Settings { diff --git a/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs b/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs index 227527f..1939600 100644 --- a/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs +++ b/StructureHelperCommon/Infrastructures/Strings/ErrorString.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Infrastructures.Strings +namespace StructureHelperCommon.Infrastructures.Strings { public static class ErrorStrings { diff --git a/StructureHelperCommon/Models/Calculators/Accuracy.cs b/StructureHelperCommon/Models/Calculators/Accuracy.cs index 67ca68e..4b7fadb 100644 --- a/StructureHelperCommon/Models/Calculators/Accuracy.cs +++ b/StructureHelperCommon/Models/Calculators/Accuracy.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Calculators +namespace StructureHelperCommon.Models.Calculators { public class Accuracy : IAccuracy { diff --git a/StructureHelperCommon/Models/Calculators/IAccuracy.cs b/StructureHelperCommon/Models/Calculators/IAccuracy.cs index 4ca1bd4..6526300 100644 --- a/StructureHelperCommon/Models/Calculators/IAccuracy.cs +++ b/StructureHelperCommon/Models/Calculators/IAccuracy.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Calculators +namespace StructureHelperCommon.Models.Calculators { public interface IAccuracy { diff --git a/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs b/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs index cddd4d2..2bb73c6 100644 --- a/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs +++ b/StructureHelperCommon/Models/Calculators/IHelperCalculator.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Calculators +namespace StructureHelperCommon.Models.Calculators { public interface IHelperCalculator where TInputData : class diff --git a/StructureHelperCommon/Models/Forces/DesignForceTuple.cs b/StructureHelperCommon/Models/Forces/DesignForceTuple.cs index 3425cb0..804701e 100644 --- a/StructureHelperCommon/Models/Forces/DesignForceTuple.cs +++ b/StructureHelperCommon/Models/Forces/DesignForceTuple.cs @@ -1,10 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Remoting.Messaging; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs b/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs index d113c67..5292cbb 100644 --- a/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs +++ b/StructureHelperCommon/Models/Forces/Factories/DesignForceFactory.cs @@ -1,11 +1,6 @@ using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Strings; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs b/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs index b98a933..003a9c5 100644 --- a/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs +++ b/StructureHelperCommon/Models/Forces/Factories/ForceCombinationListFactory.cs @@ -1,11 +1,7 @@ -using StructureHelperCommon.Infrastructures.Enums; +using System.Collections.Generic; +using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Strings; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/ForceCombinationList.cs b/StructureHelperCommon/Models/Forces/ForceCombinationList.cs index c6cd760..e09765f 100644 --- a/StructureHelperCommon/Models/Forces/ForceCombinationList.cs +++ b/StructureHelperCommon/Models/Forces/ForceCombinationList.cs @@ -1,10 +1,6 @@ -using StructureHelperCommon.Infrastructures.Enums; +using System.Collections.Generic; +using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Models.Shapes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/ForceTuple.cs b/StructureHelperCommon/Models/Forces/ForceTuple.cs index 78662b8..81ae422 100644 --- a/StructureHelperCommon/Models/Forces/ForceTuple.cs +++ b/StructureHelperCommon/Models/Forces/ForceTuple.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Forces +namespace StructureHelperCommon.Models.Forces { /// public class ForceTuple : IForceTuple diff --git a/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs b/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs index e50b2c6..ee8aeeb 100644 --- a/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs +++ b/StructureHelperCommon/Models/Forces/IDesignForceTuple.cs @@ -1,9 +1,5 @@ -using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/IForceCombinationList.cs b/StructureHelperCommon/Models/Forces/IForceCombinationList.cs index 8a89573..2bc9034 100644 --- a/StructureHelperCommon/Models/Forces/IForceCombinationList.cs +++ b/StructureHelperCommon/Models/Forces/IForceCombinationList.cs @@ -1,9 +1,6 @@ -using StructureHelperCommon.Models.Shapes; -using System; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Models.Shapes; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/IForceRepository.cs b/StructureHelperCommon/Models/Forces/IForceRepository.cs index b8c656f..3b61cea 100644 --- a/StructureHelperCommon/Models/Forces/IForceRepository.cs +++ b/StructureHelperCommon/Models/Forces/IForceRepository.cs @@ -1,11 +1,4 @@ -using StructureHelperCommon.Infrastructures.Interfaces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Forces +namespace StructureHelperCommon.Models.Forces { internal interface IForceRepository { diff --git a/StructureHelperCommon/Models/Forces/IForceTuple.cs b/StructureHelperCommon/Models/Forces/IForceTuple.cs index 96c487f..1713b32 100644 --- a/StructureHelperCommon/Models/Forces/IForceTuple.cs +++ b/StructureHelperCommon/Models/Forces/IForceTuple.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs b/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs index 8fc0bdf..ba881dd 100644 --- a/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs +++ b/StructureHelperCommon/Models/Forces/Strains/IStrainTuple.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs b/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs index e18c6d7..6d6900a 100644 --- a/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs +++ b/StructureHelperCommon/Models/Forces/Strains/StrainTuple.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Services.Forces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Forces { diff --git a/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs b/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs index 1532fd6..a1fa134 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/ConcreteMaterialEntity.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs b/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs index b4c2f35..3d94713 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/Factories/ConcreteFactorsFactory.cs @@ -1,11 +1,6 @@ using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Strings; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs b/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs index cbe4aa3..ce74263 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/Factories/LibMaterialFactory.cs @@ -1,11 +1,5 @@ -using StructureHelperCommon.Infrastructures.Enums; -using StructureHelperCommon.Infrastructures.Exceptions; -using StructureHelperCommon.Infrastructures.Strings; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Collections.Generic; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs b/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs index cd21857..5ce355e 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/IConcreteMaterialEntity.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Materials.Libraries +namespace StructureHelperCommon.Models.Materials.Libraries { public interface IConcreteMaterialEntity : ILibMaterialEntity { diff --git a/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs b/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs index fcb35fa..2da6248 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/ILibMaterialEntity.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs b/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs index 51aeffa..b52ebbc 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/IMaterialPartialFactor.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs b/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs index 4542fa2..40fecef 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/IMaterialSafetyFactor.cs @@ -1,9 +1,6 @@ -using StructureHelperCommon.Infrastructures.Enums; -using System; +using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs b/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs index 6aaf89c..1f4696f 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/IPartialFactor.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs b/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs index 184aba0..ae4be11 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/IReinforcementMaterialEntity.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Materials.Libraries +namespace StructureHelperCommon.Models.Materials.Libraries { public interface IReinforcementMaterialEntity : ILibMaterialEntity { diff --git a/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs b/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs index 4ba1a3c..36b3551 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/LibMaterialPepository.cs @@ -1,9 +1,6 @@ -using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs b/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs index 8e90e1f..a73a227 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/MaterialPartialFactor.cs @@ -1,11 +1,6 @@ using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Strings; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs b/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs index c49d904..e8f6a71 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/MaterialSafetyFactor.cs @@ -1,9 +1,6 @@ -using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs b/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs index 3774e4f..07d8cd7 100644 --- a/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs +++ b/StructureHelperCommon/Models/Materials/Libraries/ReinforcementMaterialEntity.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Materials.Libraries { diff --git a/StructureHelperCommon/Models/Sections/CompressedMember.cs b/StructureHelperCommon/Models/Sections/CompressedMember.cs index 7c2722f..9aaf418 100644 --- a/StructureHelperCommon/Models/Sections/CompressedMember.cs +++ b/StructureHelperCommon/Models/Sections/CompressedMember.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Services.Sections; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Sections { diff --git a/StructureHelperCommon/Models/Sections/ICompressedMember.cs b/StructureHelperCommon/Models/Sections/ICompressedMember.cs index e3b3cb1..4e399df 100644 --- a/StructureHelperCommon/Models/Sections/ICompressedMember.cs +++ b/StructureHelperCommon/Models/Sections/ICompressedMember.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Models.Sections { diff --git a/StructureHelperCommon/Models/Shapes/ILineShape.cs b/StructureHelperCommon/Models/Shapes/ILineShape.cs index ea29670..ddd7051 100644 --- a/StructureHelperCommon/Models/Shapes/ILineShape.cs +++ b/StructureHelperCommon/Models/Shapes/ILineShape.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Shapes +namespace StructureHelperCommon.Models.Shapes { public interface ILineShape : IShape { diff --git a/StructureHelperCommon/Models/Shapes/LineShape.cs b/StructureHelperCommon/Models/Shapes/LineShape.cs index a47471d..5034574 100644 --- a/StructureHelperCommon/Models/Shapes/LineShape.cs +++ b/StructureHelperCommon/Models/Shapes/LineShape.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperCommon.Models.Shapes +namespace StructureHelperCommon.Models.Shapes { /// public class LineShape : ILineShape diff --git a/StructureHelperCommon/Properties/AssemblyInfo.cs b/StructureHelperCommon/Properties/AssemblyInfo.cs index 27e2e0c..7cee17e 100644 --- a/StructureHelperCommon/Properties/AssemblyInfo.cs +++ b/StructureHelperCommon/Properties/AssemblyInfo.cs @@ -33,4 +33,4 @@ using System.Runtime.InteropServices; // используя "*", как показано ниже: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/StructureHelperCommon/Services/Calculations/AccuracyService.cs b/StructureHelperCommon/Services/Calculations/AccuracyService.cs index c56bd0c..521fbb4 100644 --- a/StructureHelperCommon/Services/Calculations/AccuracyService.cs +++ b/StructureHelperCommon/Services/Calculations/AccuracyService.cs @@ -1,10 +1,4 @@ -using LoaderCalculator; -using StructureHelperCommon.Models.Calculators; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Models.Calculators; namespace StructureHelperCommon.Services.Calculations { diff --git a/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs b/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs index 67f7980..b21442e 100644 --- a/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs +++ b/StructureHelperCommon/Services/ColorServices/ColorProcessor.cs @@ -1,12 +1,7 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading; -using System.Threading.Tasks; using System.Windows.Forms; -using System.Windows.Media; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.Window; +using Color = System.Windows.Media.Color; namespace StructureHelperCommon.Services.ColorServices { diff --git a/StructureHelperCommon/Services/Forces/ForceTupleService.cs b/StructureHelperCommon/Services/Forces/ForceTupleService.cs index ccf0951..31f0fc8 100644 --- a/StructureHelperCommon/Services/Forces/ForceTupleService.cs +++ b/StructureHelperCommon/Services/Forces/ForceTupleService.cs @@ -1,12 +1,8 @@ -using StructureHelperCommon.Infrastructures.Exceptions; +using System.Collections.Generic; +using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Strings; using StructureHelperCommon.Models.Forces; using StructureHelperCommon.Models.Shapes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Services.Forces { diff --git a/StructureHelperCommon/Services/Forces/StrainTupleService.cs b/StructureHelperCommon/Services/Forces/StrainTupleService.cs index 6a488bb..ab3c965 100644 --- a/StructureHelperCommon/Services/Forces/StrainTupleService.cs +++ b/StructureHelperCommon/Services/Forces/StrainTupleService.cs @@ -1,10 +1,5 @@ using LoaderCalculator.Data.Matrix; using StructureHelperCommon.Models.Forces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Services.Forces { diff --git a/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs b/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs index e38a53e..0999535 100644 --- a/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs +++ b/StructureHelperCommon/Services/Sections/CompressedMemberServices.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Models.Sections; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Services.Sections { diff --git a/StructureHelperCommon/Services/ShapeServices/ShapeService.cs b/StructureHelperCommon/Services/ShapeServices/ShapeService.cs index 7c75825..e198a12 100644 --- a/StructureHelperCommon/Services/ShapeServices/ShapeService.cs +++ b/StructureHelperCommon/Services/ShapeServices/ShapeService.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Models.Shapes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Services.ShapeServices { diff --git a/StructureHelperCommon/Services/Units/IUnit.cs b/StructureHelperCommon/Services/Units/IUnit.cs index 7a81584..8074a71 100644 --- a/StructureHelperCommon/Services/Units/IUnit.cs +++ b/StructureHelperCommon/Services/Units/IUnit.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Services.Units { diff --git a/StructureHelperCommon/Services/Units/Unit.cs b/StructureHelperCommon/Services/Units/Unit.cs index d3e2cf2..4f254dd 100644 --- a/StructureHelperCommon/Services/Units/Unit.cs +++ b/StructureHelperCommon/Services/Units/Unit.cs @@ -1,9 +1,4 @@ using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperCommon.Services.Units { diff --git a/StructureHelperCommon/Services/Units/UnitsFactory.cs b/StructureHelperCommon/Services/Units/UnitsFactory.cs index 8620ad4..53fd969 100644 --- a/StructureHelperCommon/Services/Units/UnitsFactory.cs +++ b/StructureHelperCommon/Services/Units/UnitsFactory.cs @@ -1,9 +1,5 @@ -using StructureHelperCommon.Infrastructures.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.Collections.Generic; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperCommon.Services.Units { diff --git a/StructureHelperCommon/StructureHelperCommon.csproj b/StructureHelperCommon/StructureHelperCommon.csproj index d5e146a..99d72f0 100644 --- a/StructureHelperCommon/StructureHelperCommon.csproj +++ b/StructureHelperCommon/StructureHelperCommon.csproj @@ -1,118 +1,18 @@ - - - + + - Debug - AnyCPU - {5DFEC3FD-9677-47BB-9E88-EB71828B5913} - Library - Properties - StructureHelperCommon - StructureHelperCommon - v4.7.2 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + net6.0-windows + disable + enable + true + true + false + - ..\Libraries\LoaderCalculator.dll + ..\StructureHelper\Libraries\LoaderCalculator.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + diff --git a/StructureHelperLogics/StructureHelperLogics.csproj b/StructureHelperLogics/StructureHelperLogics.csproj index ef0f54a..c221750 100644 --- a/StructureHelperLogics/StructureHelperLogics.csproj +++ b/StructureHelperLogics/StructureHelperLogics.csproj @@ -1,8 +1,9 @@  - net472 - Library + net6.0-windows + enable + enable @@ -11,16 +12,8 @@ - ..\Libraries\LoaderCalculator.dll + ..\StructureHelper\Libraries\LoaderCalculator.dll - - - - - - - - - \ No newline at end of file + diff --git a/StructureHelperTests/StructureHelperTests.csproj b/StructureHelperTests/StructureHelperTests.csproj index 7b76be3..371defd 100644 --- a/StructureHelperTests/StructureHelperTests.csproj +++ b/StructureHelperTests/StructureHelperTests.csproj @@ -87,24 +87,6 @@ - - - {87064b50-3b7c-4a91-af4a-941c6f95d997} - FieldVisualizer - - - {BAD27E27-4444-4300-ADF8-E21042C0781D} - StructureHelper - - - {5DFEC3FD-9677-47BB-9E88-EB71828B5913} - StructureHelperCommon - - - {330bef5b-15be-4d2c-a750-b1ae50fb2be3} - StructureHelperLogics - - diff --git a/StructureHelper_TemporaryKey.pfx b/StructureHelper_TemporaryKey.pfx deleted file mode 100644 index b98150c..0000000 Binary files a/StructureHelper_TemporaryKey.pfx and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/Autofac.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/Autofac.dll.deploy deleted file mode 100644 index e714c37..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/Autofac.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/FieldVisualizer.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/FieldVisualizer.dll.deploy deleted file mode 100644 index 95dfa8d..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/FieldVisualizer.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/LoaderCalculator.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/LoaderCalculator.dll.deploy deleted file mode 100644 index 75e5c75..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/LoaderCalculator.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/Microsoft.Bcl.AsyncInterfaces.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/Microsoft.Bcl.AsyncInterfaces.dll.deploy deleted file mode 100644 index 476f1b1..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/Microsoft.Bcl.AsyncInterfaces.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/Microsoft.Expression.Interactions.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/Microsoft.Expression.Interactions.dll.deploy deleted file mode 100644 index 979c965..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/Microsoft.Expression.Interactions.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/Newtonsoft.Json.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/Newtonsoft.Json.dll.deploy deleted file mode 100644 index 7af125a..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/Newtonsoft.Json.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.application b/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.application deleted file mode 100644 index 4b6ad9f..0000000 --- a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.application +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - SHyyPpiu/G7izGrKPX4ZMq35RGjief8+4X75T8JO5f4= - - - -E1adO37wivdqDVYQ3FJdqUBxIoyoYoFdNAELzYPbBuU=jstl5R6h+8dI94bEy4n2y/7PgG5Rom+bvC3fLkm/yCktU5o91C/ItwnXyN4hXfhdppkoE62mkP0/OW1zEXb4FwpavdtdHWwc+43UJTMeTvCkNdCg7xF9OLjJJAz+ULupVTydzxWTYPStGTVnZz4LtPJe/vFYX3n/AxMC7NFMiJg=634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=AQABCN=EAHOME\UserXMjKJ4t/nikM8DHg6HJIJ3BPIByWkckFtu6nTCUUoN0=VWaDWp9QUuoggLKiadG/ndRKmowvoeC007/3DeuPPAVpZI4UpXa+U5bVIlA8Cv3ftfLG+IAGgpMUa7nR0inH73ifELEvnd+484B5g66ExCNaEYfSVogRUIQmrBTYyCfCQDokGIDdcIUHvonZ2wX1zSD9w/moG5REV5RXVr7k7T8=634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=AQABMIIBxTCCAS6gAwIBAgIQdW4a4i1B6ZpEyHZPHlrayTANBgkqhkiG9w0BAQsFADAhMR8wHQYDVQQDHhYARQBBAEgATwBNAEUAXABVAHMAZQByMB4XDTIyMTAyMjE1MDY0M1oXDTIzMTAyMjIxMDY0M1owITEfMB0GA1UEAx4WAEUAQQBIAE8ATQBFAFwAVQBzAGUAcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKUCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCmSBRoEJkrYAzHutpnML6GlC5QoBTOBhEtsZk2LeCDob8oDAtVCmI9MwthBMQnEHdGsiCcsnj4D/Orjbdw2ZTqHcNQSvX7aMqvyQQOGguQA3vi49D08p/TL+wKrpWHmOBdpIxj/x5GtKsqQSe3CUAhvkaHPuq+cn+iRyBAHkoTrA== \ No newline at end of file diff --git a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.config.deploy b/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.config.deploy deleted file mode 100644 index d5dbf25..0000000 --- a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.config.deploy +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.deploy b/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.deploy deleted file mode 100644 index 84aa147..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.manifest b/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.manifest deleted file mode 100644 index 1d04588..0000000 --- a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelper.exe.manifest +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - R6ACRqrKX5Pm39qTeRyqQfJyN4HN7to8/JL96pswMu0= - - - - - - - - - - - - UlD3DiTPy4phiibEHSCCRHF9VpOrvcOT+PthozJQbOM= - - - - - - - - - - - - PS8gJ9hXTUKJj+t7ARGVNofbd6bG7vOlyFm9mY8QXP4= - - - - - - - - - - - - KVryFC2SFPP9hOr+R3jcoRm+fgIp8UtrqNUmnC8eLng= - - - - - - - - - - - - 87FN770FSTuFcwFrCLhuW11TtIawRX/XX2e/i/8Evjg= - - - - - - - - - - - - tiSUnfiw46YVP9+3MKfG9JkLZZLuDZIuF4hDPSdmEPM= - - - - - - - - - - - - 0vbv6pftc2FgDvLoEYF4NLRhEHyorHVGwM7EaMz3ncQ= - - - - - - - - - - - - 2XjfxDPsF5OqDx/eSoF05PNVKULLhmzMxZikCy8r4vg= - - - - - - - - - - - - woG+HEcR/ptJ4ZmmmZz8ScaJL8CfdM0rheZEiESS2AM= - - - - - - - - - - - - rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs= - - - - - - - - - - - - geZkiABC5FFJWhviJiSrSrXooGgD7tpb3afGnfJDmBU= - - - - - - - - - - - - vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8= - - - - - - - - - - - - HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM= - - - - - - - - - - - - N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8= - - - - - - - - - - - - T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y= - - - - - - - - - - - - SqzoyKMwroQpzYzBtoBAdtOp/9YzRw+R/Ta90lu1eHY= - - - - - - - - - - XJ4UTVCHY1fDfJcmuGAB8NgEOj0ea/C98clia7y2xfM= - - -OB2DVefJbT397h8VuZEn1Dj805PagjlGkjvQ+eg2rZ4=blDp7n3tL7B1tDTyhS2pXE7hbjOoSslxxHaYDHdaoZInj6XCPN7cKeMbg4HUGCv11OElENrxDwGjmOJsJpVVZwneCtqvVBLm1kz/Qd/NmLdgSWD0RbUFjz0P1/5CrubPVt1vqv2qlwM+qomMvhkMsXHQUhx+wT2E6sGKM1zfymI=634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=AQABCN=EAHOME\UseruL0dDdGJ5ceym4EDYSov7My9JtKZZg+sFgYtfJPhsbQ=AK6PzCIEn5wVIj5tMRbAFvkEmilmeKKyeQFXYwtcApYq0BH75EeguTu+Od7oKaJPvgpdlIRK6tvtg8VS4TtiYj8Q/g9v+H9e0OZrtk/p790F53Z+HDFVEyf+MmAmlOX/SxA53HZ5TeUwdZJO/qxDzEASwZSESwXcHP76dTiEvRY=634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=AQABMIIBxTCCAS6gAwIBAgIQdW4a4i1B6ZpEyHZPHlrayTANBgkqhkiG9w0BAQsFADAhMR8wHQYDVQQDHhYARQBBAEgATwBNAEUAXABVAHMAZQByMB4XDTIyMTAyMjE1MDY0M1oXDTIzMTAyMjIxMDY0M1owITEfMB0GA1UEAx4WAEUAQQBIAE8ATQBFAFwAVQBzAGUAcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKUCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCmSBRoEJkrYAzHutpnML6GlC5QoBTOBhEtsZk2LeCDob8oDAtVCmI9MwthBMQnEHdGsiCcsnj4D/Orjbdw2ZTqHcNQSvX7aMqvyQQOGguQA3vi49D08p/TL+wKrpWHmOBdpIxj/x5GtKsqQSe3CUAhvkaHPuq+cn+iRyBAHkoTrA== \ No newline at end of file diff --git a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelperCommon.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/StructureHelperCommon.dll.deploy deleted file mode 100644 index c4c7059..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelperCommon.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelperLogics.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/StructureHelperLogics.dll.deploy deleted file mode 100644 index 50d3e7b..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/StructureHelperLogics.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Buffers.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Buffers.dll.deploy deleted file mode 100644 index f2d83c5..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Buffers.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Diagnostics.DiagnosticSource.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Diagnostics.DiagnosticSource.dll.deploy deleted file mode 100644 index 0774d46..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Diagnostics.DiagnosticSource.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Memory.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Memory.dll.deploy deleted file mode 100644 index 4617199..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Memory.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Numerics.Vectors.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Numerics.Vectors.dll.deploy deleted file mode 100644 index 0865972..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Numerics.Vectors.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Runtime.CompilerServices.Unsafe.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Runtime.CompilerServices.Unsafe.dll.deploy deleted file mode 100644 index c5ba4e4..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Runtime.CompilerServices.Unsafe.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Threading.Tasks.Extensions.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Threading.Tasks.Extensions.dll.deploy deleted file mode 100644 index eeec928..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Threading.Tasks.Extensions.dll.deploy and /dev/null differ diff --git a/publish/Application Files/StructureHelper_1_0_0_0/System.Windows.Interactivity.dll.deploy b/publish/Application Files/StructureHelper_1_0_0_0/System.Windows.Interactivity.dll.deploy deleted file mode 100644 index 0419e95..0000000 Binary files a/publish/Application Files/StructureHelper_1_0_0_0/System.Windows.Interactivity.dll.deploy and /dev/null differ diff --git a/publish/StructureHelper.application b/publish/StructureHelper.application deleted file mode 100644 index 4b6ad9f..0000000 --- a/publish/StructureHelper.application +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - SHyyPpiu/G7izGrKPX4ZMq35RGjief8+4X75T8JO5f4= - - - -E1adO37wivdqDVYQ3FJdqUBxIoyoYoFdNAELzYPbBuU=jstl5R6h+8dI94bEy4n2y/7PgG5Rom+bvC3fLkm/yCktU5o91C/ItwnXyN4hXfhdppkoE62mkP0/OW1zEXb4FwpavdtdHWwc+43UJTMeTvCkNdCg7xF9OLjJJAz+ULupVTydzxWTYPStGTVnZz4LtPJe/vFYX3n/AxMC7NFMiJg=634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=AQABCN=EAHOME\UserXMjKJ4t/nikM8DHg6HJIJ3BPIByWkckFtu6nTCUUoN0=VWaDWp9QUuoggLKiadG/ndRKmowvoeC007/3DeuPPAVpZI4UpXa+U5bVIlA8Cv3ftfLG+IAGgpMUa7nR0inH73ifELEvnd+484B5g66ExCNaEYfSVogRUIQmrBTYyCfCQDokGIDdcIUHvonZ2wX1zSD9w/moG5REV5RXVr7k7T8=634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=AQABMIIBxTCCAS6gAwIBAgIQdW4a4i1B6ZpEyHZPHlrayTANBgkqhkiG9w0BAQsFADAhMR8wHQYDVQQDHhYARQBBAEgATwBNAEUAXABVAHMAZQByMB4XDTIyMTAyMjE1MDY0M1oXDTIzMTAyMjIxMDY0M1owITEfMB0GA1UEAx4WAEUAQQBIAE8ATQBFAFwAVQBzAGUAcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKUCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCmSBRoEJkrYAzHutpnML6GlC5QoBTOBhEtsZk2LeCDob8oDAtVCmI9MwthBMQnEHdGsiCcsnj4D/Orjbdw2ZTqHcNQSvX7aMqvyQQOGguQA3vi49D08p/TL+wKrpWHmOBdpIxj/x5GtKsqQSe3CUAhvkaHPuq+cn+iRyBAHkoTrA== \ No newline at end of file diff --git a/publish/setup.exe b/publish/setup.exe deleted file mode 100644 index e6603ed..0000000 Binary files a/publish/setup.exe and /dev/null differ