Add inclined section visualization

This commit is contained in:
RedikultsevEvg
2025-08-07 22:42:46 +05:00
parent 466c57feef
commit 2f6c35482b
56 changed files with 1392 additions and 150 deletions

View File

@@ -1,6 +1,8 @@
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models.Shapes;
using StructureHelperCommon.Models.VisualProperties;
using StructureHelperLogics.Models.Materials;
using System.Windows.Media;
namespace StructureHelperLogics.Models.BeamShears
{
@@ -17,6 +19,7 @@ namespace StructureHelperLogics.Models.BeamShears
public double CenterCover { get; set; } = 0.05;
public double ReinforcementArea { get; set; } = 0;
public IReinforcementLibMaterial ReinforcementMaterial { get; set; }
public IPrimitiveVisualProperty VisualProperty { get; set; }
public BeamShearSection(Guid id)
{
@@ -24,6 +27,10 @@ namespace StructureHelperLogics.Models.BeamShears
ConcreteMaterial = ConcreteLibMaterialFactory.GetConcreteLibMaterial(ConcreteLibTypes.Concrete25);
ReinforcementMaterial = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Reinforcement500).HelperMaterial as IReinforcementLibMaterial;
ConcreteMaterial.TensionForULS = true;
VisualProperty = new PrimitiveVisualProperty(Guid.NewGuid())
{
Color = (Color)ColorConverter.ConvertFromString("DarkGray")
};
}
public object Clone()

View File

@@ -1,5 +1,6 @@
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models.Shapes;
using StructureHelperCommon.Models.VisualProperties;
using StructureHelperLogics.Models.Materials;
namespace StructureHelperLogics.Models.BeamShears
@@ -7,7 +8,7 @@ namespace StructureHelperLogics.Models.BeamShears
/// <summary>
/// Properties of RC cross-section for shear strength of beam
/// </summary>
public interface IBeamShearSection : ISaveable, ICloneable
public interface IBeamShearSection : ISaveable, ICloneable, IHasVisualProperty
{
string? Name { get; set; }
/// <summary>

View File

@@ -36,6 +36,16 @@ namespace StructureHelperLogics.Models.BeamShears
Check();
TraceLogger?.AddMessage(LoggerStrings.LogicType(this), TraceLogStatuses.Service);
TraceLogger?.AddMessage("Calculation has been started", TraceLogStatuses.Debug);
if (stirrupByDensity.EndCoordinate < inclinedSection.StartCoord)
{
TraceLogger?.AddMessage($"Stirrup end coordinate Xend = {stirrupByDensity.EndCoordinate}(m) is less than incline section start coordinate Xstart = {inclinedSection.StartCoord}(m), stirrup {stirrupByDensity.Name} has been ignored");
return 0;
}
if (stirrupByDensity.StartCoordinate > inclinedSection.EndCoord)
{
TraceLogger?.AddMessage($"Stirrup start coordinate Xstart = {stirrupByDensity.StartCoordinate}(m) is bigger than incline section end coordinate Xend = {inclinedSection.EndCoord}(m), stirrup {stirrupByDensity.Name} has been ignored");
return 0;
}
double crackLength = inclinedSection.EndCoord - inclinedSection.StartCoord;
TraceLogger?.AddMessage($"Length of crack = {inclinedSection.EndCoord} - {inclinedSection.StartCoord} = {crackLength}(m)");
double crackEndCoord = Math.Min(stirrupByDensity.EndCoordinate, inclinedSection.EndCoord);

View File

@@ -52,6 +52,16 @@ namespace StructureHelperLogics.Models.BeamShears
public double GetShearStrength()
{
InitializeStrategies();
if (stirrupByRebar.EndCoordinate < inclinedSection.StartCoord)
{
TraceLogger?.AddMessage($"Stirrup end coordinate Xend = {stirrupByRebar.EndCoordinate}(m) is less than incline section start coordinate Xstart = {inclinedSection.StartCoord}(m), stirrup {stirrupByRebar.Name} has been ignored");
return 0;
}
if (stirrupByRebar.StartCoordinate > inclinedSection.EndCoord)
{
TraceLogger?.AddMessage($"Stirrup start coordinate Xstart = {stirrupByRebar.StartCoordinate}(m) is bigger than incline section end coordinate Xend = {inclinedSection.EndCoord}(m), stirrup {stirrupByRebar.Name} has been ignored");
return 0;
}
TraceLogger?.AddMessage($"Stirrup diameter d = {stirrupByRebar.Diameter}(m)");
TraceLogger?.AddMessage($"Stirrup leg number n = {stirrupByRebar.LegCount}");
TraceLogger?.AddMessage($"Stirrup spacing S = {stirrupByRebar.Spacing}(m)");

View File

@@ -21,7 +21,7 @@ namespace StructureHelperLogics.Models.BeamShears
Id = id;
VisualProperty = new PrimitiveVisualProperty(Guid.NewGuid())
{
Color = (Color)ColorConverter.ConvertFromString("Black")
Color = (Color)ColorConverter.ConvertFromString("Gray")
};
}

View File

@@ -73,7 +73,7 @@ namespace StructureHelperLogics.Models.BeamShears
Id = id;
VisualProperty = new PrimitiveVisualProperty(Guid.NewGuid())
{
Color = (Color)ColorConverter.ConvertFromString("Black")
Color = (Color)ColorConverter.ConvertFromString("Blue")
};
}

View File

@@ -74,7 +74,7 @@ namespace StructureHelperLogics.Models.BeamShears
Material = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Reinforcement400).HelperMaterial as IReinforcementLibMaterial;
VisualProperty = new PrimitiveVisualProperty(Guid.NewGuid())
{
Color = (Color)ColorConverter.ConvertFromString("Black")
Color = (Color)ColorConverter.ConvertFromString("Brown")
};
}