/// <summary> /// Создание скобы по распределению /// </summary> /// <param name="d">Диаметр скобы</param> /// <param name="h">Длина нахлеста скобы - вылет (от внутренней грани стержня)</param> /// <param name="t">Ширина скобы (по внутренней грани стержня) - округляется до 5</param> /// <param name="step">Шаг скобы</param> /// <param name="width">Ширина распределения</param> /// <param name="pos">Позиция (из атрибута блока)</param> /// <param name="block">Блок</param> public Bracket(int d, int h, int t, int step, int width, int rows, string pos, ISpecBlock block, string friendlyName) : base(d, CalcLength(h, t, d), width, step, rows, PREFIX, pos, block, friendlyName) { T = RoundHelper.Round5(t); L = h; Key += "t" + T + "l" + L; }
/// <summary> /// Шпилька - с шагом по ширине распределения и кол рядов /// </summary> /// <param name="diam">Диам</param> /// <param name="lRab">Раст между раб стержнями (от центров раб стержней)</param> /// <param name="step">Шаг</param> /// <param name="width">Ширина распределения</param> /// <param name="rows">Рядов шпилек</param> /// <param name="pos">значение атр позиции</param> /// <param name="block">Блок</param> public Spring(int diam, int lRab, int step, int width, int rows, string pos, ISpecBlock block) : base(diam, GetLength(lRab, diam), width, step, rows, PREFIX, pos, block, friendlyName) { //descEnd = $", ш.{step}"; tail = getTail(diam); LRab = RoundHelper.Round5(lRab); Class = ClassA240C; Gost = GostOld; }
/// <summary> /// Хомут /// </summary> /// <param name="diam">Диаметр</param> /// <param name="wShackle">Ширина хомута (по внутр гряням)</param> /// <param name="hShackle">Высота хомута</param> /// <param name="step">Шаг</param> /// <param name="range">Ширина распределения</param> /// <param name="pos">Значение атр позиции из блока</param> /// <param name="block">Блок</param> public Shackle(int diam, int wShackle, int hShackle, int step, int range, int rows, string pos, ISpecBlock block) : base(diam, GetLenShackle(wShackle, hShackle, diam), range, step, rows, PREFIX, pos, block, friendlyName) { tail = getTail(diam); L = RoundHelper.Round5(wShackle); H = RoundHelper.Round5(hShackle); Class = ClassA240C; Gost = GostOld; Key = GetName() + "t" + tail + "L" + L + "h" + H; }
/// <summary> /// Шпилька распределенная по площади стены /// </summary> /// <param name="diam">Диаметр шпильки</param> /// <param name="diamWork">Диам раб арм</param> /// <param name="lRab">Раст между раб стержнями (от центров раб стержней)</param> /// <param name="stepHor">Шаг шпилек по горизонтали</param> /// <param name="stepVert">Шаг шпилек по вертикали</param> /// <param name="widthHor">Ширина распределения по гориз</param> /// <param name="widthVertic">Ширина распр по вертик</param> /// <param name="pos">Позиция (из атр блока)</param> /// <param name="block">Блок</param> public Spring(int diam, int lRab, int stepHor, int stepVert, int widthHor, int widthVertic, string pos, ISpecBlock block) : base(diam, GetLength(lRab, diam), 1, PREFIX, pos, block, friendlyName) { Step = stepHor; this.stepVertic = stepVert; //descEnd = $", ш.{stepHor}х{stepVert}"; tail = getTail(diam); LRab = RoundHelper.Round5(lRab); Class = ClassA240C; Gost = GostOld; Count = CalcCountByArea(widthHor, widthVertic, stepHor, stepVert); Key = GetName() + "t" + tail + "lr" + LRab; }
/// <summary> /// Определение длины шпильки /// </summary> /// <param name="lRab">Раст между раб стержнями (от внешних граней стержней)</param> /// <returns></returns> private static int GetLength(int lRab, int diam) { return(RoundHelper.Round5(lRab) + 2 * getTail(diam)); }
/// <summary> /// Длина хомута - периметр + 75*2 /// </summary> private static int GetLenShackle(int width, int height, int diam) { return(RoundHelper.Round5(width) * 2 + RoundHelper.Round5(height) * 2 + getTail(diam) * 2); }
/// <summary> /// Дефолтный конструктор по диаметру, остальные дефолтные значения /// </summary> /// <param name="diameter"></param> public Armature(int diameter, int len) { Length = RoundHelper.Round5(len); Diameter = diameter; defineBaseParams(); }
/// <summary> /// Опрределение длины скобы /// </summary> /// <param name="h">Длина нахлеста скобы - вылет (от внутренней грани стержня)</param> /// <param name="t">Ширина скобы (по внутренней грани стержня)</param> /// <param name="d">Диаметр скобы</param> private static int CalcLength(int h, int t, int d) { return(RoundHelper.RoundWhole(2 * h + RoundHelper.Round5(t) + 0.58 * d)); }