Ejemplo n.º 1
0
        /// <summary>
        /// Определение скобы
        /// </summary>
        /// <param name="propDiam">Парам диам скобы</param>
        /// <param name="propPos">Парам поз скобы</param>
        /// <param name="propStep">Парам шаг скобы</param>
        /// <param name="bracketLen">Длина вылета скобы</param>
        /// <param name="thicknessWall">Толщина стены</param>
        /// <param name="a">Защитный слой до центра раб арм</param>
        /// <param name="widthRun">Ширина распределения скобы (высота стены)</param>
        /// <param name="diamWorkArm">Диам раб арм</param>
        /// <returns></returns>
        protected Bracket defineBracket(string propDiam, string propPos,
                                        string propStep, int bracketLen, int thicknessWall, int a, int widthRun, int diamWorkArm, int rows = 1,
                                        string friendlyName = "Скоба")
        {
            if (bracketLen == 0)
            {
                return(null);
            }
            int diam = Block.GetPropValue <int>(propDiam);

            if (diam == 0)
            {
                return(null);
            }
            string pos  = Block.GetPropValue <string>(propPos);
            int    step = Block.GetPropValue <int>(propStep);
            // ширина скобы
            int     tBracket = thicknessWall - 2 * a + diamWorkArm;
            Bracket b        = new Bracket(diam, bracketLen, tBracket, step, widthRun, rows, pos, this, friendlyName);

            b.Calc();
            return(b);
        }
Ejemplo 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();
                }
            }
        }
Ejemplo 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();
            }
        }