public RebarPointResult(double Stress, double Strain, double Force, double DistanceToNa, RebarPoint Point) { this.Stress = Stress; this.Strain = Strain; this.Force = Force; this.DistanceToNeutralAxis = DistanceToNa; this.Point = Point; }
internal RectangularSectionSinglyReinforced(double b, double h, double A_s, double c_cntr, ConcreteMaterial ConcreteMaterial, RebarMaterial LongitudinalRebarMaterial, bool hasTies=false) { CrossSectionRectangularShape shape = new CrossSectionRectangularShape(ConcreteMaterial.Concrete, null, b, h); base.ConcreteMaterial = ConcreteMaterial; //duplicate save of concrete material into base Dynamo class List<wosadAci.RebarPoint> LongitudinalBars = new List<wosadAci.RebarPoint>(); wosadAci.Rebar thisBar = new wosadAci.Rebar(A_s, LongitudinalRebarMaterial.Material); wosadAci.RebarPoint point = new wosadAci.RebarPoint(thisBar, new wosadAci.RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr }); LongitudinalBars.Add(point); wosadAci.IConcreteFlexuralMember fs = new wosadAci14.ConcreteSectionFlexure(shape, LongitudinalBars, new CalcLog()); this.FlexuralSection = fs; }
public ConcreteSectionFlexure GetConcreteBeam(double Width, double Height, double fc, params RebarInput[] rebarInput) { IConcreteSection Section = GetRectangularSection(Width, Height, fc); List<RebarPoint> LongitudinalBars = new List<RebarPoint>(); foreach (var bar in rebarInput) { Rebar thisBar = new Rebar(bar.Area, new MaterialAstmA615(A615Grade.Grade60)); RebarPoint point = new RebarPoint(thisBar, new RebarCoordinate() { X = 0, Y = -Height / 2.0 + bar.Cover }); LongitudinalBars.Add(point); } ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section,LongitudinalBars, log); return beam; }
public ConcreteSectionFlexure GetNonPrestressedDoublyReinforcedRectangularSection(double b, double h, double A_s1,double A_s2,double c_cntr1,double c_cntr2, double A_s_prime1,double A_s_prime2, double c_cntr_prime1, double c_cntr_prime2, ConcreteMaterial concrete, IRebarMaterial rebar) { CrossSectionRectangularShape Section = new CrossSectionRectangularShape(concrete, null, b, h); List<RebarPoint> LongitudinalBars = new List<RebarPoint>(); Rebar bottom1 = new Rebar(A_s1, rebar); RebarPoint pointBottom1 = new RebarPoint(bottom1, new RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr1 }); LongitudinalBars.Add(pointBottom1); if (A_s2!=0) { Rebar bottom2 = new Rebar(A_s2, rebar); RebarPoint pointBottom2 = new RebarPoint(bottom2, new RebarCoordinate() { X = 0, Y = -h / 2.0 + c_cntr2 }); LongitudinalBars.Add(pointBottom2); } if (A_s_prime1 != 0) { Rebar top1 = new Rebar(A_s_prime1, rebar); RebarPoint pointTop1 = new RebarPoint(top1, new RebarCoordinate() { X = 0, Y = h / 2.0 - c_cntr_prime1 }); LongitudinalBars.Add(pointTop1); } if (A_s_prime2 != 0) { Rebar top2 = new Rebar(A_s_prime2, rebar); RebarPoint pointTop2 = new RebarPoint(top2, new RebarCoordinate() { X = 0, Y = h / 2.0 - c_cntr_prime2 }); LongitudinalBars.Add(pointTop2); } CalcLog log = new CalcLog(); ConcreteSectionFlexure beam = new ConcreteSectionFlexure(Section, LongitudinalBars, log); return beam; }
protected RebarPoint FindRebarWithExtremeCoordinate(BarCoordinateFilter CoordinateFilter, BarCoordinateLimitFilterType LimitFilter, double CutoffCoordinate) { RebarPoint returnBar = null; RebarPoint maxXRebar = null; RebarPoint maxYRebar = null; RebarPoint minXRebar = null; RebarPoint minYRebar = null; double MaxY = double.NegativeInfinity; double MaxX = double.NegativeInfinity; double MinY = double.PositiveInfinity; double MinX = double.PositiveInfinity; if (longitBars.Count == 0) { throw new NoRebarException(); } foreach (var bar in longitBars) { if (bar.Coordinate.X > MaxX) { if (bar.Coordinate.X < CutoffCoordinate) { maxXRebar = bar; MaxX = bar.Coordinate.X; } } if (bar.Coordinate.Y > MaxY) { if (bar.Coordinate.Y < CutoffCoordinate) { maxYRebar = bar; MaxY = bar.Coordinate.Y; } } if (bar.Coordinate.X < MinX) { if (bar.Coordinate.X > CutoffCoordinate) { minXRebar = bar; MinX = bar.Coordinate.X; } } if (bar.Coordinate.Y < MinY) { if (bar.Coordinate.Y > CutoffCoordinate) { minYRebar = bar; MinY = bar.Coordinate.Y; } } } if (CoordinateFilter == BarCoordinateFilter.X && LimitFilter == BarCoordinateLimitFilterType.Maximum) { returnBar = maxXRebar; } if (CoordinateFilter == BarCoordinateFilter.X && LimitFilter == BarCoordinateLimitFilterType.Minimum) { returnBar = minXRebar; } if (CoordinateFilter == BarCoordinateFilter.Y && LimitFilter == BarCoordinateLimitFilterType.Maximum) { returnBar = maxYRebar; } if (CoordinateFilter == BarCoordinateFilter.Y && LimitFilter == BarCoordinateLimitFilterType.Minimum) { returnBar = minYRebar; } return(returnBar); }