/// <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); }
/// <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); }
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(); } } }
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(); } }