예제 #1
0
        // GET: Reinforcement
        public ActionResult ReinforcementAnchoring()
        {
            Reinforcement         reinforcement         = null;
            ReinforcementPosition reinforcementPosition = null;
            //ConcreteClass concreteClass = null;

            ICoefficient barFormCoefficient = new BarFormCoefficient(
                reinforcementPosition, reinforcement);
            ICoefficient coverCoefficient = new CoverCoefficient(
                reinforcementPosition, reinforcement);
            ICoefficient transverseReinforcementCoefficient = new TransverseReinforcementCoefficient(
                reinforcementPosition, reinforcement, TypeEnum.Beam, 0);
            ICoefficient weldedTransverseBarCoefficient = new WeldedTransverseBarCoefficient();
            ICoefficient transversePressureCoefficient  =
                new TransversePressureCoefficient(reinforcementPosition, 0);

            var coefficients = new List <ICoefficient>();

            coefficients.Add(barFormCoefficient);
            coefficients.Add(coverCoefficient);
            coefficients.Add(transverseReinforcementCoefficient);
            coefficients.Add(weldedTransverseBarCoefficient);
            coefficients.Add(transversePressureCoefficient);

            var anchorageLength = new AnchoringAnchorageLength();

            var reinforcementAnchoringViewModel = new ReinforcementAnchoringViewModel();

            return(View("ReinforcementAnchoring", reinforcementAnchoringViewModel));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="TransverseReinforcementCoefficient"/> class.
 /// </summary>
 /// <param name="reinforcementPosition">Set <see cref="ReinforcementPosition"/>.</param>
 /// <param name="bar">Set <see cref="Bar"/>.</param>
 /// <param name="elementType">Set <see cref="Type"/>.</param>
 /// <param name="transverseReinforcementArea">Set <see cref="TransverseReinforcementArea"/>.</param>
 public TransverseReinforcementCoefficient(ReinforcementPosition reinforcementPosition,
                                           Bar bar, TypeEnum elementType, double transverseReinforcementArea)
 {
     ReinforcementPosition = reinforcementPosition;
     Bar  = bar;
     Type = elementType;
     TransverseReinforcementArea = transverseReinforcementArea;
 }
        public void ReinforcementPositionTest_Constructor_Success()
        {
            var reinforcementPosition = new ReinforcementPosition(
                false, AnchorageTypeEnum.Loop, 25, 20, 50, TransverseBarPositionEnum.InsideBend);

            Assert.IsNotNull(reinforcementPosition, "ReinforcementPosition should be created.");
            Assert.IsFalse(reinforcementPosition.AreAnchoragesInTension,
                           "AreAnchoragesInTension property should be set at construction time.");
            Assert.AreEqual(AnchorageTypeEnum.Loop, reinforcementPosition.AnchorageType,
                            "AnchorageType should be set at construction time.");
            Assert.AreEqual(25, reinforcementPosition.SideCoverDistance,
                            "SideCoverDistance should be set at construction time.");
            Assert.AreEqual(20, reinforcementPosition.BottomCoverDistance,
                            "BottomCoverDistance should be set at construction time.");
            Assert.AreEqual(50, reinforcementPosition.DistanceBetweenBars,
                            "DistanceBetweenBars should be set at construction time.");
            Assert.AreEqual(TransverseBarPositionEnum.InsideBend, reinforcementPosition.TransverseBarPosition,
                            "TransverseBarPosition should be set at construction time.");
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="TransversePressureCoefficient"/> class.
 /// </summary>
 /// <param name="reinforcementPosition">Set <see cref="ReinforcementPosition"/>.</param>
 /// <param name="transversePressure">Set <see cref="TransversePressure"/>.</param>
 public TransversePressureCoefficient(ReinforcementPosition reinforcementPosition,
                                      double transversePressure)
 {
     ReinforcementPosition = reinforcementPosition;
     TransversePressure    = transversePressure;
 }
예제 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CoefficientHelper"/> class.
 /// </summary>
 /// <param name="reinforcementPosition">Set <see cref="ReinforcementPosition"/>.</param>
 public CoefficientHelper(ReinforcementPosition reinforcementPosition)
 {
     ReinforcementPosition = reinforcementPosition;
 }
예제 #6
0
        public ActionResult CalculateReinforcementAnchoring(ReinforcementAnchoringViewModel reinforcementAnchoringViewModel)
        {
            var antyCoefficients = new List <Type>();

            if (!reinforcementAnchoringViewModel.CalculateBarFormCoefficient)
            {
                antyCoefficients.Add(typeof(BarFormCoefficient));
            }
            if (!reinforcementAnchoringViewModel.CalculateCoverCoefficient)
            {
                antyCoefficients.Add(typeof(CoverCoefficient));
            }
            if (!reinforcementAnchoringViewModel.CalculateTransverseReinforcementCoefficient)
            {
                antyCoefficients.Add(typeof(TransverseReinforcementCoefficient));
            }
            if (!reinforcementAnchoringViewModel.CalculateWeldedTransverseBarCoefficient)
            {
                antyCoefficients.Add(typeof(WeldedTransverseBarCoefficient));
            }
            if (!reinforcementAnchoringViewModel.CalculateTransversePressureCoefficient)
            {
                antyCoefficients.Add(typeof(TransversePressureCoefficient));
            }

            var reinforcement = new Reinforcement(
                reinforcementAnchoringViewModel.ReinforcementDiameter ?? 0,
                reinforcementAnchoringViewModel.PressInReinforcement ?? 0,
                reinforcementAnchoringViewModel.IsPairOfBars);
            var reinforcementPosition = new ReinforcementPosition(
                reinforcementAnchoringViewModel.AreAnchoragesInTension,
                reinforcementAnchoringViewModel.AnchorageType,
                reinforcementAnchoringViewModel.SideCoverDistance ?? 0,
                reinforcementAnchoringViewModel.BottomCoverDistance ?? 0,
                reinforcementAnchoringViewModel.DistanceBetweenBars ?? 0,
                reinforcementAnchoringViewModel.TransverseBarPosition);

            ICoefficient barFormCoefficient = new BarFormCoefficient(
                reinforcementPosition, reinforcement);
            ICoefficient coverCoefficient = new CoverCoefficient(
                reinforcementPosition, reinforcement);
            ICoefficient transverseReinforcementCoefficient = new TransverseReinforcementCoefficient(
                reinforcementPosition, reinforcement, reinforcementAnchoringViewModel.Type,
                reinforcementAnchoringViewModel.TransverseReinforcementArea ?? 0);
            ICoefficient weldedTransverseBarCoefficient = new WeldedTransverseBarCoefficient();
            ICoefficient transversePressureCoefficient  = new TransversePressureCoefficient(
                reinforcementPosition, reinforcementAnchoringViewModel.TransversePressure ?? 0);

            var coefficients = new List <ICoefficient>();

            coefficients.Add(barFormCoefficient);
            coefficients.Add(coverCoefficient);
            coefficients.Add(transverseReinforcementCoefficient);
            coefficients.Add(weldedTransverseBarCoefficient);
            coefficients.Add(transversePressureCoefficient);

            var filteredCoefficients =
                coefficients.Where(c => !antyCoefficients.Contains(c.GetType())).ToList();

            var anchorageLength = new AnchorageLength(reinforcement, reinforcementPosition,
                                                      reinforcementAnchoringViewModel.ConcreteClassName,
                                                      reinforcementAnchoringViewModel.Type,
                                                      reinforcementAnchoringViewModel.BondCondition,
                                                      filteredCoefficients, reinforcementAnchoringViewModel.TransversePressure ?? 0);

            anchorageLength.CalculateAnchorageLengths();

            reinforcementAnchoringViewModel.AnchoringAnchorageLength = new AnchoringAnchorageLength()
            {
                AnchorageLength = anchorageLength
            };

            reinforcementAnchoringViewModel.ShowResults = true;

            return(View("ReinforcementAnchoring", reinforcementAnchoringViewModel));
        }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CoverCoefficient"/> class.
 /// </summary>
 /// <param name="reinforcementPosition">Set <see cref="ReinforcementPosition"/>.</param>
 /// <param name="bar">Set <see cref="Bar"/>.</param>
 public CoverCoefficient(ReinforcementPosition reinforcementPosition, Bar bar)
 {
     ReinforcementPosition = reinforcementPosition;
     Bar = bar;
 }
예제 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BarFormCoefficient"/> class.
 /// </summary>
 /// <param name="reinforcementPosition">Set <see cref="ReinforcementPosition"/>.</param>
 /// <param name="bar">Set <see cref="Bar"/>.</param>
 public BarFormCoefficient(ReinforcementPosition reinforcementPosition, Bar bar)
 {
     ReinforcementPosition = reinforcementPosition;
     Bar = bar;
 }