Tools for graphs were added

This commit is contained in:
Evgeny Redikultsev
2023-05-06 21:10:02 +05:00
parent 3cb6e60fc9
commit 79c24f2cd5
31 changed files with 553 additions and 77 deletions

View File

@@ -9,13 +9,15 @@ namespace StructureHelperLogics.Models.Templates.CrossSections
{
internal class ForceLogic : IForceLogic
{
public IEnumerable<IForceCombinationList> GetCombinationList()
public IEnumerable<IForceAction> GetCombinationList()
{
var combinations = new List<IForceCombinationList>();
var combinations = new List<IForceAction>();
var combination = new ForceCombinationList() { Name = "New Force Action"};
combination.DesignForces.Clear();
combination.DesignForces.AddRange(ForceCombinationListFactory.GetDesignForces(DesignForceType.Suit_1));
combinations.Add(combination);
var factorCombination = new ForceCombinationByFactor();
combinations.Add(factorCombination);
return combinations;
}
}

View File

@@ -9,6 +9,6 @@ namespace StructureHelperLogics.Models.Templates.CrossSections
{
internal interface IForceLogic
{
IEnumerable<IForceCombinationList> GetCombinationList();
IEnumerable<IForceAction> GetCombinationList();
}
}

View File

@@ -19,7 +19,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs
IRCGeometryLogic geometryLogic;
ICalculatorLogic calculatorLogic;
IEnumerable<INdmPrimitive> primitives;
IEnumerable<IForceCombinationList> combinations;
IEnumerable<IForceAction> combinations;
IEnumerable<INdmCalculator> calculators;
public SectionTemplate(IRCGeometryLogic geometryLogic)

View File

@@ -83,6 +83,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
{
bucklingCalculator.Run();
var bucklingResult = bucklingCalculator.Result as IConcreteBucklingResult;
if (bucklingResult.IsValid != true)
{
result.IsValid = false;
@@ -107,6 +108,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
Result = ndmResult;
}
private void GetCombinations()
{
ForceCombinationLists = new List<IForceCombinationList>();

View File

@@ -10,7 +10,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.Geometry
public class GeometryResult : IGeometryResult
{
public bool IsValid { get; set; }
public List<ITextParameter> TextParameters { get; set; }
public List<IValueParameter<string>> TextParameters { get; set; }
public string Description { get; set; }
}
}

View File

@@ -9,6 +9,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.Geometry
{
public interface IGeometryResult : INdmResult
{
List<ITextParameter> TextParameters { get; set; }
List<IValueParameter<string>> TextParameters { get; set; }
}
}

View File

@@ -23,9 +23,9 @@ namespace StructureHelperLogics.Services.NdmPrimitives
static IEnumerable<IUnit> units = UnitsFactory.GetUnitCollection();
private IEnumerable<INdm> ndms;
private IStrainMatrix strainMatrix;
public List<ITextParameter> GetTextParameters()
public List<IValueParameter<string>> GetTextParameters()
{
var parameters = new List<ITextParameter>();
var parameters = new List<IValueParameter<string>>();
parameters.AddRange(GetGravityCenter(prefixInitial, ndms));
parameters.AddRange(GetSimpleArea(ndms));
parameters.AddRange(GetArea(prefixInitial, ndms));
@@ -38,15 +38,15 @@ namespace StructureHelperLogics.Services.NdmPrimitives
return parameters;
}
private IEnumerable<ITextParameter> GetSimpleArea(IEnumerable<INdm> ndms)
private IEnumerable<IValueParameter<string>> GetSimpleArea(IEnumerable<INdm> ndms)
{
const string name = "Summary Area";
const string shortName = "A";
var parameters = new List<ITextParameter>();
var parameters = new List<IValueParameter<string>>();
var unitArea = CommonOperation.GetUnit(UnitTypes.Area, "mm2");
var unitName = $"{unitArea.Name}";
var unitMultiPlayer = unitArea.Multiplyer;
var firstParameter = new TextParameter()
var firstParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{name}",
@@ -56,28 +56,28 @@ namespace StructureHelperLogics.Services.NdmPrimitives
};
try
{
firstParameter.Value = ndms.Sum(x => x.Area) * unitMultiPlayer;
firstParameter.Value = (ndms.Sum(x => x.Area) * unitMultiPlayer).ToString();
}
catch (Exception ex)
{
firstParameter.IsValid = false;
firstParameter.Value = double.NaN;
firstParameter.Value = (double.NaN).ToString();
firstParameter.Description += $": {ex}";
}
parameters.Add(firstParameter);
return parameters;
}
private IEnumerable<ITextParameter> GetMomentOfInertia(string prefix, IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
private IEnumerable<IValueParameter<string>> GetMomentOfInertia(string prefix, IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
{
const string name = "Bending stiffness";
const string shortName = "EI";
var parameters = new List<ITextParameter>();
var parameters = new List<IValueParameter<string>>();
var unitArea = CommonOperation.GetUnit(UnitTypes.Area, "mm2");
var unitStress = CommonOperation.GetUnit(UnitTypes.Stress, "MPa");
var unitName = $"{unitStress.Name} * {unitArea.Name} * {unitArea.Name}";
var unitMultiPlayer = unitArea.Multiplyer * unitArea.Multiplyer * unitStress.Multiplyer;
var firstParameter = new TextParameter()
var firstParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefix} {name} {firstAxisName.ToUpper()}",
@@ -85,7 +85,7 @@ namespace StructureHelperLogics.Services.NdmPrimitives
MeasurementUnit = unitName,
Description = $"{prefix} {name} of cross-section arbitrary {firstAxisName}-axis multiplied by {prefix} modulus"
};
var secondParameter = new TextParameter()
var secondParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefix} {name} {secondAxisName}",
@@ -96,28 +96,28 @@ namespace StructureHelperLogics.Services.NdmPrimitives
try
{
var gravityCenter = GeometryOperations.GetReducedMomentsOfInertia(locNdms, locStrainMatrix);
firstParameter.Value = gravityCenter.MomentX * unitMultiPlayer;
secondParameter.Value = gravityCenter.MomentY * unitMultiPlayer;
firstParameter.Value = (gravityCenter.MomentX * unitMultiPlayer).ToString();
secondParameter.Value = (gravityCenter.MomentY * unitMultiPlayer).ToString();
}
catch (Exception ex)
{
firstParameter.IsValid = false;
firstParameter.Value = double.NaN;
firstParameter.Value = (double.NaN).ToString();
firstParameter.Description += $": {ex}";
secondParameter.IsValid = false;
secondParameter.Value = double.NaN;
secondParameter.Value = (double.NaN).ToString();
secondParameter.Description += $": {ex}";
}
parameters.Add(firstParameter);
parameters.Add(secondParameter);
return parameters;
}
private IEnumerable<ITextParameter> GetMomentOfInertiaRatio(IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
private IEnumerable<IValueParameter<string>> GetMomentOfInertiaRatio(IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
{
const string name = "Bending stiffness";
const string shortName = "EI";
var parameters = new List<ITextParameter>();
var firstParameter = new TextParameter()
var parameters = new List<IValueParameter<string>>();
var firstParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefixActual}/{prefixInitial} {name} {firstAxisName.ToUpper()} ratio",
@@ -125,7 +125,7 @@ namespace StructureHelperLogics.Services.NdmPrimitives
MeasurementUnit = "-",
Description = $"{prefixActual}/{prefixInitial} {name} of cross-section arbitrary {firstAxisName}-axis ratio"
};
var secondParameter = new TextParameter()
var secondParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefixActual}/{prefixInitial} {name} {secondAxisName} ratio",
@@ -137,32 +137,32 @@ namespace StructureHelperLogics.Services.NdmPrimitives
{
var initialMoments = GeometryOperations.GetReducedMomentsOfInertia(locNdms);
var actualMoments = GeometryOperations.GetReducedMomentsOfInertia(locNdms, locStrainMatrix);
firstParameter.Value = actualMoments.MomentX / initialMoments.MomentX;
secondParameter.Value = actualMoments.MomentY / initialMoments.MomentY;
firstParameter.Value = (actualMoments.MomentX / initialMoments.MomentX).ToString();
secondParameter.Value = (actualMoments.MomentY / initialMoments.MomentY).ToString();
}
catch (Exception ex)
{
firstParameter.IsValid = false;
firstParameter.Value = double.NaN;
firstParameter.Value = (double.NaN).ToString();
firstParameter.Description += $": {ex}";
secondParameter.IsValid = false;
secondParameter.Value = double.NaN;
secondParameter.Value = (double.NaN).ToString();
secondParameter.Description += $": {ex}";
}
parameters.Add(firstParameter);
parameters.Add(secondParameter);
return parameters;
}
private IEnumerable<ITextParameter> GetArea(string prefix, IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
private IEnumerable<IValueParameter<string>> GetArea(string prefix, IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
{
const string name = "Longitudinal stiffness";
const string shortName = "EA";
var parameters = new List<ITextParameter>();
var parameters = new List<IValueParameter<string>>();
var unitArea = CommonOperation.GetUnit(UnitTypes.Area, "mm2");
var unitStress = CommonOperation.GetUnit(UnitTypes.Stress, "MPa");
var unitName = $"{unitStress.Name} * {unitArea.Name}" ;
var unitMultiPlayer = unitArea.Multiplyer * unitStress.Multiplyer;
var firstParameter = new TextParameter()
var firstParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefix} {name}",
@@ -172,23 +172,23 @@ namespace StructureHelperLogics.Services.NdmPrimitives
};
try
{
firstParameter.Value = GeometryOperations.GetReducedArea(locNdms, locStrainMatrix) * unitMultiPlayer;
firstParameter.Value = (GeometryOperations.GetReducedArea(locNdms, locStrainMatrix) * unitMultiPlayer).ToString();
}
catch (Exception ex)
{
firstParameter.IsValid = false;
firstParameter.Value = double.NaN;
firstParameter.Value = (double.NaN).ToString();
firstParameter.Description += $": {ex}";
}
parameters.Add(firstParameter);
return parameters;
}
private IEnumerable<ITextParameter> GetAreaRatio(IEnumerable<INdm> locNdms, IStrainMatrix locStrainMatrix)
private IEnumerable<IValueParameter<string>> GetAreaRatio(IEnumerable<INdm> locNdms, IStrainMatrix locStrainMatrix)
{
const string name = "Longitudinal stiffness";
const string shortName = "EA";
var parameters = new List<ITextParameter>();
var firstParameter = new TextParameter()
var parameters = new List<IValueParameter<string>>();
var firstParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefixActual}/{prefixInitial} {name} ratio",
@@ -200,12 +200,12 @@ namespace StructureHelperLogics.Services.NdmPrimitives
{
var actual = GeometryOperations.GetReducedArea(locNdms, locStrainMatrix);
var initial = GeometryOperations.GetReducedArea(locNdms);
firstParameter.Value = actual / initial;
firstParameter.Value = (actual / initial).ToString();
}
catch (Exception ex)
{
firstParameter.IsValid = false;
firstParameter.Value = double.NaN;
firstParameter.Value = (double.NaN).ToString();
firstParameter.Description += $": {ex}";
}
parameters.Add(firstParameter);
@@ -216,14 +216,14 @@ namespace StructureHelperLogics.Services.NdmPrimitives
this.ndms = ndms;
this.strainMatrix = strainMatrix;
}
private IEnumerable<ITextParameter> GetGravityCenter(string prefix, IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
private IEnumerable<IValueParameter<string>> GetGravityCenter(string prefix, IEnumerable<INdm> locNdms, IStrainMatrix? locStrainMatrix = null)
{
var parameters = new List<ITextParameter>();
var parameters = new List<IValueParameter<string>>();
var unitType = UnitTypes.Length;
var unit = CommonOperation.GetUnit(unitType, "mm");
var unitName = unit.Name;
var unitMultiPlayer = unit.Multiplyer;
var firstParameter = new TextParameter()
var firstParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefix} Center{firstAxisName.ToUpper()}",
@@ -231,7 +231,7 @@ namespace StructureHelperLogics.Services.NdmPrimitives
MeasurementUnit = unitName,
Description = $"{prefix} Displacement of center of gravity of cross-section along {firstAxisName}-axis"
};
var secondParameter = new TextParameter()
var secondParameter = new ValueParameter<string>()
{
IsValid = true,
Name = $"{prefix} Center{secondAxisName.ToUpper()}",
@@ -242,16 +242,16 @@ namespace StructureHelperLogics.Services.NdmPrimitives
try
{
var gravityCenter = GeometryOperations.GetGravityCenter(locNdms, locStrainMatrix);
firstParameter.Value = gravityCenter.CenterX * unitMultiPlayer;
secondParameter.Value = gravityCenter.CenterY * unitMultiPlayer;
firstParameter.Value = (gravityCenter.CenterX * unitMultiPlayer).ToString();
secondParameter.Value = (gravityCenter.CenterY * unitMultiPlayer).ToString();
}
catch (Exception ex)
{
firstParameter.IsValid = false;
firstParameter.Value = double.NaN;
firstParameter.Value = (double.NaN).ToString();
firstParameter.Description += $": {ex}";
secondParameter.IsValid = false;
secondParameter.Value = double.NaN;
secondParameter.Value = (double.NaN).ToString();
secondParameter.Description += $": {ex}";
}
parameters.Add(firstParameter);