//Обновить список болтов public void RefreshBoltList() { string name; name = SelectedBolt == null ? "" : SelectedBolt.Name; BoltList.Clear(); foreach (DataRow dr in my_base.Tables["Площади сечения болтов"].Rows) { Bolt bolt = new Bolt(); bolt.Name = TableReader.GetStringCell(dr, 0); bolt.Diameter = TableReader.GetDoubleCell(dr, 1); bolt.Ab = TableReader.GetDoubleCell(dr, 2); bolt.Abn = TableReader.GetDoubleCell(dr, 3); BoltList.Add(bolt); } if (name == "") { return; } foreach (Bolt bolt in BoltList) { if (bolt.Name == name) { SelectedBolt = bolt; break; } } }
//Обновить список классов прочности болтов public void RefreshStrengthClassList() { string name; name = SelectedStrengthClass == null ? "" : SelectedStrengthClass.Name; StrengthClassList.Clear(); foreach (DataRow dr in my_base.Tables["Нормативные сопротивления стали болтов и расчётные сопротивления одноболтовых соединений срезу и растяжению"].Rows) { StrengthClass sc = new StrengthClass(); sc.Name = TableReader.GetStringCell(dr, 0); sc.Rbun = TableReader.GetDoubleCell(dr, 1); sc.Rbyn = TableReader.GetDoubleCell(dr, 2); sc.Rbs = TableReader.GetDoubleCell(dr, 3); sc.Rbt = TableReader.GetDoubleCell(dr, 4); sc.IsHighStrength = TableReader.GetBoolCell(dr, 5); StrengthClassList.Add(sc); } if (name == "") { return; } foreach (StrengthClass sclass in StrengthClassList) { if (sclass.Name == name) { SelectedStrengthClass = sclass; break; } } }
//Установить Rbp public void SetRbp() { if (SelectedSteelMark == null) { return; } foreach (DataRow dr in my_base.Tables[3].Rows) { if (SelectedSteelMark.Run == TableReader.GetDoubleCell(dr, 0)) { if (SelectedPrecisionClass == "A") { R_bp = TableReader.GetDoubleCell(dr, 1); } else { R_bp = TableReader.GetDoubleCell(dr, 2); } return; } else { R_bp = 0; } } }
//Подобрать длину из условия общей толщины (или проверить длину, если не авто) private void SetBoltLength() { if (AutoLength) { DataTable dt = gost_base.Tables["Длина резьбы"]; double length; string result = ""; BoltLength = 0; ThreadLength = 0; for (int i = 0; i < dt.Rows.Count; i++) { length = TableReader.GetDoubleCell(dt.Rows[i], 0); if (length >= left_washers_count * WasherHeight + Package + right_washers_count * WasherHeight + grover_count * GroverWashersHeight + CountNuts * NutHeight + min_protrusion) { BoltLength = length; ThreadLength = TableReader.GetDoubleCell(dt.Rows[i], BoltName); index_length = i; result = BoltLength.ToString(System.Globalization.CultureInfo.InvariantCulture); break; } } if (ResultChangedEvent != null) { ResultChangedEvent(result); } } else { BoltLength = TableReader.GetDoubleCell(gost_base.Tables["Длина резьбы"].Rows[index_length], 0); ThreadLength = TableReader.GetDoubleCell(gost_base.Tables["Длина резьбы"].Rows[index_length], BoltName); CheckBoltLengths(); } }
//Инициализировать списки Гамма с public void RefreshListGammaC() { ListGammaC.Clear(); foreach (DataRow dr in BaseSet[0].Tables["Коэффициенты условий работы γс"].Rows) { ItemGammaC igc = new ItemGammaC(); igc.Description = TableReader.GetStringCell(dr, 0); igc.Value = TableReader.GetDoubleCell(dr, 1); ListGammaC.Add(igc); } }
//Назначить толщины и массы private void SetThicknessAndMass() { foreach (DataRow dr in gost_base.Tables["Гайки"].Rows) { string diameter = TableReader.GetStringCell(dr, 0); if (diameter == bolt_name) { NutHeight = TableReader.GetDoubleCell(dr, 1); NutWeight = TableReader.GetDoubleCell(dr, 2); break; } } if (left_washer_existence || right_washer_existence) { foreach (DataRow dr in gost_base.Tables["Шайбы"].Rows) { string diameter = TableReader.GetStringCell(dr, 0); if (diameter == bolt_name) { WasherHeight = TableReader.GetDoubleCell(dr, 1); WasherWeight = TableReader.GetDoubleCell(dr, 2); break; } } } if (grover_existence) { foreach (DataRow dr in gost_base.Tables["Шайбы пружинные"].Rows) { string diameter = TableReader.GetStringCell(dr, 0); if (diameter == bolt_name) { GroverWashersHeight = TableReader.GetDoubleCell(dr, 1); GroverWashersWeight = TableReader.GetDoubleCell(dr, 2); break; } } } foreach (DataRow dr in gost_base.Tables["Конструктивные параметры болтов"].Rows) { string diameter = TableReader.GetStringCell(dr, 0); if (diameter == bolt_name) { Diameter = TableReader.GetDoubleCell(dr, "Diameter"); TurnkeySize = TableReader.GetDoubleCell(dr, "TurnkeySize"); HeadHeight = TableReader.GetDoubleCell(dr, "HeadHeight"); ThreadPitch = TableReader.GetDoubleCell(dr, "ThreadPitch"); break; } } }
public void DownLengthManually() { if (AutoLength) { return; } if (index_length == 0) { return; } index_length--; BoltLength = TableReader.GetDoubleCell(gost_base.Tables["Длина резьбы"].Rows[index_length], 0); ThreadLength = TableReader.GetDoubleCell(gost_base.Tables["Длина резьбы"].Rows[index_length], BoltName); if (ResultChangedEvent != null) { ResultChangedEvent(BoltLength.ToString(System.Globalization.CultureInfo.InvariantCulture)); } CheckBoltLengths(); }
//Выбрать характеристики стали public void SetSteelCharact() { foreach (DataRow dr in my_base.Tables[2].Rows) { if (SelectedSteelMark == null) { return; } if (SelectedSteelMark.Name == TableReader.GetStringCell(dr, 0) && DetailThickness >= TableReader.GetDoubleCell(dr, 1) && DetailThickness <= TableReader.GetDoubleCell(dr, 2)) { SelectedSteelMark.Ryn = TableReader.GetDoubleCell(dr, 3); SelectedSteelMark.Run = TableReader.GetDoubleCell(dr, 4); break; } else { SelectedSteelMark.Ryn = 0; SelectedSteelMark.Run = 0; } } }