/// <summary> /// Выбор муфты из ГОСТ /// </summary> public void Create_by_GOST(double T, double Diam1, double Diam2, int isp_v1, int isp_v2) { master.Get_from_GOST(Diam1, T, isp_v1); master.Calculate_Params_of_Holes(isp_v1); slave.Get_from_GOST(Diam2, T, isp_v2); slave.Calculate_Params_of_Holes(isp_v2); DataTable dt_20761_a2 = provider.get_rows("20761-96", "a2", "*", $"m_kr = {T.ToString("#.##")}"); //парсим только длину болтов и номинальный диаметр, т.к. остальные штуки не меняются int M = int.Parse(new Regex(@"M(\d+)").Match(dt_20761_a2.Rows[0]["bolt_7796_obozn"].ToString()).Value.Replace("M", "")); int L_Bolta = int.Parse(new Regex(@"g-(\d+)").Match(dt_20761_a2.Rows[0]["bolt_7796_obozn"].ToString()).Value.Replace("g-", "")); bolt7796.Get_from_GOST(M, L_Bolta, 'k'); bolt7817.Get_from_GOST(M, L_Bolta, 'k'); shayba.Get_from_GOST(M, "Л"); gayka.Get_from_GOST(M, 'k'); }
public void Get_from_GOST(double m_nom, double l_bolta, char shag_rezby = 'k') { string parameters = $"m = {m_nom}"; string columns = $"m, t_{shag_rezby}, d, d1, s, k, R, d2"; DataTable dt1 = provider.get_rows("7817-80", "1", columns, parameters); d = double.Parse(dt1.Rows[0]["d"].ToString()); t = double.Parse(dt1.Rows[0]["t_" + shag_rezby].ToString()); d1 = double.Parse(dt1.Rows[0]["d1"].ToString()); S = double.Parse(dt1.Rows[0]["s"].ToString()); k = double.Parse(dt1.Rows[0]["k"].ToString()); R = double.Parse(dt1.Rows[0]["R"].ToString()); d2 = double.Parse(dt1.Rows[0]["d2"].ToString()); parameters = $"m = {m_nom}, l = {l_bolta}"; columns = $"m, l, l1, l2"; DataTable dt2 = provider.get_rows("7817-80", "2", columns, parameters); l = double.Parse(dt2.Rows[0]["l"].ToString()); l1 = double.Parse(dt2.Rows[0]["l1"].ToString()); l2 = double.Parse(dt2.Rows[0]["l2"].ToString()); //по ГОСТ 10549-80 if (z == 0) { if (t >= 0.75 && t <= 1) { z = 1.0; } else if (t <= 1.75) { z = 1.6; } else if (t <= 2.00) { z = 2.0; } else if (t <= 3.00) { z = 2.5; } else if (t <= 4.00) { z = 3.0; } else { z = 4.0; } } }
/// <summary> /// Выбрать шайбу из ГОСТа /// </summary> /// <param name="m">Номинальный диаметр резьбы</param> /// <param name="type">Тип шайбы: Л-легкие Н-нормальные Т-тяжелые ОТ-особо тяжелые</param> public void Get_from_GOST(double m_nom, string type) { string parameters = $"m = {m_nom}"; switch (type) { case "Л": type = "l"; break; case "Н": type = "n"; break; case "Т": type = "t"; break; case "ОТ": type = "ot"; break; } string columns = $"m, d, {type}_b, {type}_s"; DataTable dt = provider.get_rows("6402-70", "1", columns, parameters); m = double.Parse(dt.Rows[0]["m"].ToString()); d = double.Parse(dt.Rows[0]["d"].ToString()); b = double.Parse(dt.Rows[0][type + "_b"].ToString()); s = double.Parse(dt.Rows[0][type + "_s"].ToString()); }
public void Get_from_GOST(double m_nom, char shag_rezby = 'k') { try { provider = new GOST_Provider(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } string parameters = $"d = {m_nom}"; string columns = $"d, t_{shag_rezby}, S, m, dw"; DataTable dt1 = provider.get_rows("15521-70", "1", columns, parameters); d = double.Parse(dt1.Rows[0]["d"].ToString()); t = double.Parse(dt1.Rows[0]["t_" + shag_rezby].ToString()); m = double.Parse(dt1.Rows[0]["m"].ToString()); S = double.Parse(dt1.Rows[0]["s"].ToString()); dw = double.Parse(dt1.Rows[0]["dw"].ToString()); //по ГОСТ 10549-80 if (z == 0) { if (t >= 0.75 && t <= 1) { z = 1.0; } else if (t <= 1.75) { z = 1.6; } else if (t <= 2.00) { z = 2.0; } else if (t <= 3.00) { z = 2.5; } else if (t <= 4.00) { z = 3.0; } else { z = 4.0; } } }
/// <summary> /// Выбрать шайбу из ГОСТа. Шаг резьбы 'm'/'k' - мелкий/крупный /// </summary> public void Get_from_GOST(double m_nom, double l_bolta, char shag_rezby = 'k') { string parameters = $"m = {m_nom}"; string columns = $"m, t_{shag_rezby}, d, d1, s, k"; DataTable dt1 = provider.get_rows("7796-70", "1", columns, parameters); d = double.Parse(dt1.Rows[0]["d"].ToString()); t = double.Parse(dt1.Rows[0]["t_" + shag_rezby].ToString()); d1 = double.Parse(dt1.Rows[0]["d1"].ToString()); S = double.Parse(dt1.Rows[0]["s"].ToString()); k = double.Parse(dt1.Rows[0]["k"].ToString()); parameters = $"m = {m_nom}, l = {l_bolta}"; columns = $"m, l, b"; DataTable dt2 = provider.get_rows("7796-70", "2", columns, parameters); l = double.Parse(dt2.Rows[0]["l"].ToString()); b = double.Parse(dt2.Rows[0]["b"].ToString()); //радиуса скругления нет в ГОСТ по этому болту, но присуттвует на чертеже. беру его из ГОСТ 7817 if (R == 0) { if (m_nom < 8) { R = 0.25; } else if (m_nom <= 10) { R = 0.4; } else if (m_nom <= 18) { R = 0.6; } else if (m_nom <= 24) { R = 0.8; } else if (m_nom <= 36) { R = 1; } else if (m_nom <= 42) { R = 1.2; } else { R = 1.5; } } //по ГОСТ 10549-80 if (z == 0) { if (t >= 0.75 && t <= 1) { z = 1.0; } else if (t <= 1.75) { z = 1.6; } else if (t <= 2.00) { z = 2.0; } else if (t <= 3.00) { z = 2.5; } else if (t <= 4.00) { z = 3.0; } else { z = 4.0; } } }