Example #1
0
        /// <summary>
        /// Хомут по длине хомута
        /// </summary>
        /// <param name="propShLen">Параметр Длины хомута по внутр граням стержней</param>
        /// <param name="thickness">Толщина бетона</param>
        /// <param name="a">Защ слой до центра раб арм</param>
        /// <param name="range">Ширина распределения хомутов (по бетону, отступ 100 отнимается тут)</param>
        /// <param name="diamWorkArm">Диам раб арм</param>
        /// <param name="propDiam">Парам диаметра</param>
        /// <param name="propPos">Значение атр позиции</param>
        /// <param name="propStep">Параметр шага</param>
        protected Shackle defineShackleByLen(string propShLen, int thickness, int a, int range, int diamWorkArm,
                                             string propDiam, string propPos, string propStep, int rows = 1)
        {
            int diam = Block.GetPropValue <int>(propDiam);

            if (diam == 0)
            {
                return(null);
            }
            var shackleLen = Block.GetPropValue <int>(propShLen);

            if (shackleLen == 0)
            {
                return(null);
            }
            string pos      = Block.GetPropValue <string>(propPos);
            int    step     = Block.GetPropValue <int>(propStep);
            int    shackleH = thickness - (2 * a) + diamWorkArm;
            var    s        = new Shackle(diam, shackleLen, shackleH, step, range - 100, rows, pos, this);

            s.Calc();
            return(s);
        }
Example #2
0
        /// <summary>
        /// Определение хомута - по габаритам бетона
        /// </summary>
        /// <param name="width">Ширина бетона</param>
        /// <param name="thickness">Толщина бетона</param>
        /// <param name="range">Ширина распределения хомутов (по бетону, отступ 100 отнимается тут)</param>
        /// <param name="diamWorkArm">Раб диам</param>
        /// <param name="a">Защ слой до центра раб арм</param>
        /// <param name="propDiam">Парам диам</param>
        /// <param name="propPos">Парам позиции</param>
        /// <param name="propStep">Парам шага</param>
        protected Shackle defineShackleByGab(int width, int thickness, int range, int diamWorkArm, int a,
                                             string propDiam, string propPos, string propStep, int rows = 1)
        {
            if (width == 0 || thickness == 0)
            {
                return(null);
            }
            int diam = Block.GetPropValue <int>(propDiam, false);

            if (diam == 0)
            {
                return(null);
            }
            string pos  = Block.GetPropValue <string>(propPos);
            int    step = Block.GetPropValue <int>(propStep);
            // длина хомута
            int     lShackle = width - (2 * a) + diamWorkArm;
            int     hShackle = thickness - (2 * a) + diamWorkArm;
            Shackle s        = new Shackle(diam, lShackle, hShackle, step, range - 100, rows, pos, this);

            s.Calc();
            return(s);
        }
Example #3
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();
                }
            }
        }
Example #4
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();
            }
        }