Esempio n. 1
0
        /// <summary>
        /// Определение погонной арм с шириной и шагом распределения
        /// </summary>
        /// <param name="length"></param>
        /// <param name="widthRun"></param>
        /// <param name="propDiam"></param>
        /// <param name="propPos"></param>
        /// <param name="propStep"></param>
        /// <param name="concrete"></param>
        /// <param name="friendlyName"></param>
        /// <returns></returns>
        protected BarRunning defineBarRunStep(int length, int widthRun, int rows, string propDiam, string propPos, string propStep,
                                              Concrete concrete, string friendlyName)
        {
            int diam = Block.GetPropValue <int>(propDiam);

            if (diam == 0)
            {
                return(null);
            }
            string pos  = Block.GetPropValue <string>(propPos);
            int    step = Block.GetPropValue <int>(propStep);
            double len  = getLengthRunArm(length, diam, concrete);
            var    arm  = new BarRunning(diam, len, widthRun, step, rows, pos, this, friendlyName);

            arm.Calc();
            return(arm);
        }
Esempio n. 2
0
        private void defineUnder()
        {
            // Определение арматуры снизу проема
            if (ApertureHeightUnder < 200)
            {
                return;
            }
            hasBottomArm = true;

            int diamVerticArm = Block.GetPropValue <int>(PropNameArmVerticDiam);
            int stepVerticArm = Block.GetPropValue <int>(PropNameArmVerticStep);
            // Длина нахлести вертик арм (для скобы)
            int lapLengthVerticArm = Armature.GetLapLength(diamVerticArm, Concrete);
            int widthRun           = ApertureWidth - 100;

            if (widthRun <= 0)
            {
                return;
            }

            int lengthVerticArm = ApertureHeightUnder - 20;
            int bracketLen      = lapLengthVerticArm;

            // Если высота подоконника больше двух длин нахлеста, то добавляется вертикальная погонная арматура
            if (ApertureHeightUnder > lapLengthVerticArm * 2)
            {
                // Добавление вертик погонной арм - без коэф нахлести погонной арм!!!
                string posArmVertic        = Block.GetPropValue <string>(PropNameArmVerticPos);
                var    barRunArmVerticTemp = new BarRunning(diamVerticArm, lengthVerticArm, widthRun, stepVerticArm, 2, posArmVertic, this, "Вертикальная погонная арматура");
                barRunArmVerticTemp.Calc();
                if (ArmVertic == null)
                {
                    ArmVertic = barRunArmVerticTemp;
                }
                else
                {
                    // Добавить метры к существующей верхней вертик погонной арм
                    var barRunArmVertic = (BarRunning)ArmVertic;
                    barRunArmVertic.Meters += barRunArmVerticTemp.Meters;
                    barRunArmVertic.Calc();
                }
            }
            else
            {
                // Скоба на всю высоту выпуска вертик стержней (без погонной арматуры)
                bracketLen = lengthVerticArm;
            }
            // Скоба нижняя
            int    tBracket   = Thickness - 2 * a - diamVerticArm;
            string posBracket = Block.GetPropValue <string>(PropNameBracketBottomPos);

            BracketBottom = new Bracket(diamVerticArm, bracketLen, tBracket, stepVerticArm, widthRun, 1, posBracket,
                                        this, "Скоба нижняя");
            BracketBottom.Calc();

            // Хомут
            int    stepShackle = Block.GetPropValue <int>(PropNameShackleStep);
            int    diamShackle = Block.GetPropValue <int>(PropNameShackleDiam);
            int    wShackle    = Thickness - 2 * a + diamVerticArm + AddArmHor.Diameter * 2;
            int    hShackle    = (addArmHorBottomCount == 4 ? 100 : 200) + AddArmHor.Diameter;
            string posShackle  = Block.GetPropValue <string>(PropNameShackleBottomPos);

            ShackleBottom = new Shackle(diamShackle, wShackle, hShackle, stepShackle, widthRun, 1, posShackle, this);
            ShackleBottom.Calc();

            // Горизонтальная погонная арм - Фоновая
            int stepHorArm  = Block.GetPropValue <int>(PropNameArmHorStep);
            int widthHorArm = ApertureHeightUnder - a - (addArmHorBottomCount == 4 ? 100 : 200) - stepHorArm - 50;

            if (widthHorArm > 0)
            {
                var armHorTemp = defineBarRunStep(ApertureWidth, widthHorArm, 2, PropNameArmHorDiam, PropNameArmHorPos,
                                                  PropNameArmHorStep, Concrete, "Горизонтальная фоновая арматура");
                armHorTemp.Calc();
                if (ArmHor == null)
                {
                    ArmHor = armHorTemp;
                }
                else
                {
                    ArmHor.Meters += armHorTemp.Meters;
                    ArmHor.Count  += armHorTemp.Count;
                    ArmHor.Width  += armHorTemp.Width;
                    ArmHor.Calc();
                }
            }
        }
Esempio n. 3
0
        private void defineAbove()
        {
            // Определение арматуры надпроемной части
            // Наличие вертик погонной арм - на выпуск

            int diamVerticArm = Block.GetPropValue <int>(PropNameArmVerticDiam);
            int stepVerticArm = Block.GetPropValue <int>(PropNameArmVerticStep);
            // Длина нахлести вертик арм (для скобы)
            int lapLengthVerticArm = Armature.GetLapLength(diamVerticArm, Concrete);
            int widthRun           = ApertureWidth - 100;

            if (widthRun <= 0)
            {
                return;
            }

            int lengthVerticArm = Height - ApertureHeight + Outline - 20;
            int bracketLen      = lapLengthVerticArm;

            // Если высота стены над проемом больше двух длин нахлеста, то добавляется вертикальная погонная арматура
            if (Height - ApertureHeight > lapLengthVerticArm * 2)
            {
                // Добавление вертик погонной арм - без коэф нахлести погонной арм!!!
                string posArmVertic = Block.GetPropValue <string>(PropNameArmVerticPos);
                ArmVertic = new BarRunning(diamVerticArm, lengthVerticArm, widthRun, stepVerticArm, 2, posArmVertic, this, "Вертикальная погонная арматура");
                ArmVertic.Calc();
            }
            else
            {
                // Скоба на всю высоту выпуска вертик стержней (без погонной арматуры)
                bracketLen = lengthVerticArm;
            }
            // Скоба верхняя
            int    tBracket   = Thickness - 2 * a - diamVerticArm;
            string posBracket = Block.GetPropValue <string>(PropNameBracketTopPos);

            BracketTop = new Bracket(diamVerticArm, bracketLen, tBracket, stepVerticArm, widthRun, 1, posBracket,
                                     this, "Скоба верхняя");
            BracketTop.Calc();

            // Хомут
            int    stepShackle = Block.GetPropValue <int>(PropNameShackleStep);
            int    diamShackle = Block.GetPropValue <int>(PropNameShackleDiam);
            int    wShackle    = Thickness - 2 * a + diamVerticArm + AddArmHor.Diameter * 2;
            int    hShackle    = (addArmHorTopCount == 4 ? 100: 200) + AddArmHor.Diameter;
            string posShackle  = Block.GetPropValue <string>(PropNameShackleTopPos);

            ShackleTop = new Shackle(diamShackle, wShackle, hShackle, stepShackle, widthRun, 1, posShackle, this);
            ShackleTop.Calc();

            // Горизонтальная погонная арм - Фоновая
            int stepHorArm  = Block.GetPropValue <int>(PropNameArmHorStep);
            int widthHorArm = Height - ApertureHeight - a - (addArmHorTopCount == 4 ? 100: 200) - stepHorArm - 50;

            if (widthHorArm > 0)
            {
                ArmHor = defineBarRunStep(ApertureWidth, widthHorArm, 2, PropNameArmHorDiam, PropNameArmHorPos,
                                          PropNameArmHorStep, Concrete, "Горизонтальная фоновая арматура");
                ArmHor.Calc();
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Определение длины горизонтальных стержней
        /// </summary>
        /// <returns></returns>
        protected double getLengthRunArm(int length, int diam, Concrete concrete)
        {
            double kLap = BarRunning.GetKLap(diam, concrete);

            return(length * kLap);
        }