コード例 #1
0
 void set_newValues_all(Mufta mufta)
 {
     set_new_Values("ST1", mufta.master);
     set_new_Values("ST2", mufta.slave);
     set_new_Values("B7796", mufta.bolt7796);
     set_new_Values("B7817", mufta.bolt7817);
     set_new_Values("G15521", mufta.gayka);
     set_new_Values("SH6402", mufta.shayba);
 }
コード例 #2
0
        private void Get_or_Calc_all_param_of_Mufta()
        {
            if (params_Table == null)
            {
                throw new Exception("Таблица параметров еще не заполенена. Откройте КОМПАС-3D и загрузите модель");
            }

            double T             = 0;
            double P             = 0;
            double K_T           = 0; //коэффицент нагрузки
            double w             = 0;
            double RPM           = 0;
            double Diam1         = 0;
            double Diam2         = 0;
            double V             = 0;
            double l_v1          = 0;
            double l_v2          = 0;
            int    ispolnenie_v1 = 0;
            int    ispolnenie_v2 = 0;

            mufta = new Mufta();

            ///// чтение данных с формы и расчет недостающих парметров
            try
            {
                read_params_from_Form(ref P, ref T, ref K_T, ref RPM, ref w, ref Diam1, ref Diam2, ref ispolnenie_v1,
                                      ref ispolnenie_v2, ref l_v1, ref l_v2);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
                //throw;
            }


            ////// поиск подходящей муфты в ГОСТе

            bool mufta_is_selected = false;

            if (Diam1 == Diam2)
            {
                try
                {
                    DataTable polumufta1 = provider.get_rows("20761-96", "a1",
                                                             parameters: $"m_kr >= {T.ToString("#.##")}, d_inner = {Diam1.ToString("#.##")}, isp = {ispolnenie_v1}");
                    DataTable polumufta2 = provider.get_rows("20761-96", "a1",
                                                             parameters: $"m_kr >= {T.ToString("#.##")}, d_inner = {Diam2.ToString("#.##")}, isp = {ispolnenie_v2}");
                    V = double.Parse(polumufta1.Rows[0]["d_external"].ToString()) / 2 / 1000 * w; //R в метрах
                    if (V > 70)
                    {
                        throw new Exception(
                                  "Окружная скорость на наружном диаметре муфты более 70 м/с. Использование фланцевой муфты в данном соединении невозможно.");
                    }


                    DialogResult result = MessageBox.Show(
                        $"В ГОСТ 20761 найдена муфта до {polumufta1.Rows[0]["m_kr"]} H*м.\nВыбрать эту муфту или рассчитать новую?",
                        "Уведомление", MessageBoxButtons.YesNo);
                    if (result == DialogResult.Yes)
                    {
                        mufta.Create_by_GOST(T, Diam1, Diam2, ispolnenie_v1, ispolnenie_v2);

                        mufta_is_selected = true;
                    }
                    else if (result == DialogResult.No)
                    {
                        mufta_is_selected = false;
                    }
                }
                catch (Exception)
                {
                    //throw new Exception("В ГОСТ 20761 нет муфт, подходящих по данным параметрам.");
                }
            }

            ///////если не нашли или не удовлетворяет муфта из ГОСТ, выполняем расчет собственной
            if (mufta_is_selected == false)
            {
                mufta.Calculate_Param_of_Coupling(T, w, Diam1, Diam2, l_v1, l_v2, ispolnenie_v1, ispolnenie_v2);
            }

            //в конце меняем переменные в сборке.
            set_newValues_all(mufta);
        }