Add circle shape calculation for shear
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
using StructureHelperCommon.Infrastructures.Exceptions;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperCommon.Models.Forces.BeamShearActions;
|
||||
using StructureHelperCommon.Models.Shapes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -12,6 +14,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
public enum ShearSectionTemplateTypes
|
||||
{
|
||||
Rectangle,
|
||||
Circle
|
||||
}
|
||||
public static class BeamShearTemplatesFactory
|
||||
{
|
||||
@@ -21,23 +24,46 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
{
|
||||
return GetRectangleSection();
|
||||
}
|
||||
if (templateType is ShearSectionTemplateTypes.Circle)
|
||||
{
|
||||
return GetCircleSection();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(templateType));
|
||||
}
|
||||
}
|
||||
|
||||
private static IBeamShearRepository GetCircleSection()
|
||||
{
|
||||
BeamShearSection section = new(Guid.NewGuid())
|
||||
{
|
||||
Name = "New circle section",
|
||||
Shape = new CircleShape(Guid.NewGuid()) { Diameter = 0.6},
|
||||
};
|
||||
return BuildRepository(section);
|
||||
}
|
||||
|
||||
private static IBeamShearRepository GetRectangleSection()
|
||||
{
|
||||
BeamShearSection section = new(Guid.NewGuid())
|
||||
{
|
||||
Name = "New rectangle section",
|
||||
Shape = new RectangleShape(Guid.NewGuid()) { Height = 0.6, Width = 0.4 },
|
||||
};
|
||||
return BuildRepository(section);
|
||||
}
|
||||
|
||||
private static IBeamShearRepository BuildRepository(BeamShearSection section)
|
||||
{
|
||||
BeamShearRepository shearRepository = new(Guid.Empty);
|
||||
IBeamShearAction shearAction = BeamShearActionFactory.GetBeamShearAction(ShearActionTypes.DistributedLoad);
|
||||
shearAction.Name = "New shear action";
|
||||
shearRepository.Actions.Add(shearAction);
|
||||
BeamShearSection section = new(Guid.NewGuid()) { Name = "New shear section"};
|
||||
shearRepository.Sections.Add(section);
|
||||
StirrupByRebar stirrupByUniformRebar = new(Guid.NewGuid()) { Name = "New uniform stirrup"};
|
||||
StirrupByRebar stirrupByUniformRebar = new(Guid.NewGuid()) { Name = "New uniform stirrup" };
|
||||
shearRepository.Stirrups.Add(stirrupByUniformRebar);
|
||||
BeamShearCalculator beamShearCalculator = new(Guid.NewGuid()) { Name = "New shear calculator"};
|
||||
BeamShearCalculator beamShearCalculator = new(Guid.NewGuid()) { Name = "New shear calculator" };
|
||||
beamShearCalculator.InputData.Sections.Add(section);
|
||||
beamShearCalculator.InputData.Stirrups.Add(stirrupByUniformRebar);
|
||||
beamShearCalculator.InputData.Actions.Add(shearAction);
|
||||
|
||||
Reference in New Issue
Block a user