Change beam shear calculator

This commit is contained in:
RedikultsevEvg
2025-08-09 17:33:08 +05:00
parent b34618e8a4
commit 3d8ac6f0c4
22 changed files with 372 additions and 198 deletions

View File

@@ -17,6 +17,8 @@ namespace StructureHelperLogics.Models.BeamShears
private IGetLongitudinalForceFactorLogic getLongitudinalForceFactorLogic;
private string sectionMessage;
private ICheckInputDataLogic<IBeamShearSectionLogicInputData> checkInputDataLogic;
private double concreteStrength;
private double stirrupStrength;
private ShiftTraceLogger? localTraceLogger { get; set; }
@@ -41,6 +43,7 @@ namespace StructureHelperLogics.Models.BeamShears
InitializeStrategies();
try
{
AddInclinedCrackToInputData();
CalculateResult();
}
catch (Exception ex)
@@ -50,6 +53,20 @@ namespace StructureHelperLogics.Models.BeamShears
}
}
private void AddInclinedCrackToInputData()
{
InclinedSection newSection = new();
var updateStrategy = new InclinedSectionUpdateStrategy();
updateStrategy.Update(newSection, InputData.InclinedSection);
double crackLength = newSection.EndCoord - newSection.StartCoord;
double maxCrackLength = 2 * newSection.EffectiveDepth;
if (crackLength > maxCrackLength)
{
newSection.StartCoord = newSection.EndCoord - maxCrackLength;
}
InputData.InclinedCrack = newSection;
}
private bool Check()
{
bool checkResult = true;
@@ -71,8 +88,8 @@ namespace StructureHelperLogics.Models.BeamShears
SetLongitudinalForce();
double factorOfLongitudinalForce = getLongitudinalForceFactorLogic.GetFactor();
localTraceLogger?.AddMessage($"Factor of longitudinal force = {factorOfLongitudinalForce}, (dimensionless)");
double concreteStrength = concreteLogic.GetShearStrength();
double stirrupStrength = stirrupLogic.GetShearStrength();
concreteStrength = concreteLogic.GetShearStrength();
stirrupStrength = stirrupLogic.GetShearStrength();
if (stirrupStrength > concreteStrength)
{
localTraceLogger?.AddMessage($"Shear reinforcement strength Qsw = {stirrupStrength} is greater than concrete strength for shear Qb = {concreteStrength}, shear reinforcement strength has to be restricted.");
@@ -113,6 +130,7 @@ namespace StructureHelperLogics.Models.BeamShears
};
double stirrupStrength = logic.GetShearStrength();
localTraceLogger?.AddMessage($"Stirrup strength was restricted as Qsw,restricted = {stirrupStrength}(N)");
InputData.InclinedCrack = logic.InclinedCrack;
return stirrupStrength;
}