// Проверка сварных швов, табл. 2.2.9 ТП
  int TCheckExecute::CheckWeld(DATA_SECT_SCAD *Sect, double fi_) {


   double krit[30];
   GEOM_PARAM_SECT param_sect;
   double Qfic, tw, Rs;
   double S_ext, T_ext, S_int, T_int;
   int i, rc;
   double Ry_st, Ry_pol;
   double Ey;
   double N_, M_, Q_;
   double kr, kf_min;

   Ry_pol = MaterProp[data_check->index_mater_polka].sa_tens;   // Допускаемое напряжение на растяжение-сжатие
   Ey = MaterProp[data_check->index_mater_polka].E;
   Ry_st = MaterProp[data_check->index_mater_stenka].sa_tens;   // Допускаемое напряжение на растяжение-сжатие
   Rs = 0.58*Ry_st;                                             // Допускаемое напряжение на сдвиг
   if (Ry_st < 200 || Ry_st > 500 ) {
	  #ifdef EMBRAC
	 rc = Application->MessageBox(L"Неверные значения материала стенки (Ry < 200 || Ry > 500 |), установите материал",L"", MB_OK | MB_ICONERROR);
	  #else
	 rc = Application->MessageBox("Неверные значения материала стенки (Ry < 200 || Ry > 500 |), установите материал","", MB_OK | MB_ICONERROR);
	  #endif
	 return 1;
   }
   if (Ry_pol < 200 || Ry_pol > 500 || Ey < 200000) {
	  #ifdef EMBRAC
	 rc = Application->MessageBox(L"Неверные значения материала полок (Ry < 200 || Ry > 500 || Ey < 200000), установите материал",L"", MB_OK | MB_ICONERROR);
	  #else
	 rc = Application->MessageBox("Неверные значения материала полок (Ry < 200 || Ry > 500 || Ey < 200000), установите материал","", MB_OK | MB_ICONERROR);
	  #endif
	 return 1;
   }

   // Приведение к доп. коэфф. условий работы = 1.0
   data_check->gamma_c /= gamma_tr;

  Get_param_sect_comm(Sect->type_sect, &(Sect->com_sect), &param_sect);

  for (i=0; i<CheckListBox_Weld->Items->Count; i++)
     krit[i] = -1;

  for (i=0; i<NRSU; i++) {
    N_ = Elem_RSU[i][0]*1000;
    Q_ = Elem_RSU[i][3]*1000;
    M_ = Elem_RSU[i][2]*1e6;
    Qfic = GetQfic(Ey, Ry_st, N_, fi_);
    tw = Sect->com_sect.dvutavr.b;
   // Статический момент
    S_ext = Sect->com_sect.dvutavr.b1*Sect->com_sect.dvutavr.h1*(param_sect.Zct - Sect->com_sect.dvutavr.h1*0.5);
    T_ext = Q_*S_ext/param_sect.Izz;
    S_int = Sect->com_sect.dvutavr.b2*Sect->com_sect.dvutavr.h2*(param_sect.Hsect - param_sect.Zct - Sect->com_sect.dvutavr.h2*0.5);
    T_int = Q_*S_int/param_sect.Izz;

	if (data_check->index_nf == 2) { // полный провар
      krit[0] = krit[1] = krit[2] = krit[3] = krit[4] = krit[5] = krit[6] = krit[7] =
      (ABS(Q_))/(param_sect.Izz*tw*Rs*data_check->gamma_c);
    }
    else {
   // 1. Внешний пояс по металлу шва стенки
     if (CheckListBox_Weld->Checked[0]) {
        krit[0] = MAX(krit[0],
                  T_ext/((data_check->index_nf+1)*data_check->Weld_param_stenka.beta_f*data_check->kf*
                  data_check->Weld_param_stenka.Rwf*data_check->gamma_c));
      }
   // 2. Внешний пояс по металлу границы сплавления шва стенки
     if (CheckListBox_Weld->Checked[1]) {
        krit[1] = MAX(krit[1],
                  T_ext/((data_check->index_nf+1)*data_check->Weld_param_stenka.beta_z*data_check->kf*
                  data_check->Weld_param_stenka.Rwz*data_check->gamma_c));
      }
   // 3. Внешний пояс по металлу шва полки
     if (CheckListBox_Weld->Checked[2]) {
        krit[2] = MAX(krit[2],
                  T_ext/((data_check->index_nf+1)*data_check->Weld_param_polka.beta_f*data_check->kf*
                  data_check->Weld_param_polka.Rwf*data_check->gamma_c));
      }
   // 4. Внешний пояс по металлу границы сплавления шва полки
     if (CheckListBox_Weld->Checked[3]) {
        krit[3] = MAX(krit[3],
                  T_ext/((data_check->index_nf+1)*data_check->Weld_param_polka.beta_z*data_check->kf*
                  data_check->Weld_param_polka.Rwz*data_check->gamma_c));
      }
   // 5. Внутренний пояс по металлу шва стенки
     if (CheckListBox_Weld->Checked[4]) {
		krit[4] = MAX(krit[4],
                  T_int/((data_check->index_nf+1)*data_check->Weld_param_stenka.beta_f*data_check->kf*
                  data_check->Weld_param_stenka.Rwf*data_check->gamma_c));
      }
   // 6. Внутренний пояс по металлу границы сплавления шва стенки
     if (CheckListBox_Weld->Checked[5]) {
        krit[5] = MAX(krit[5],
                  T_int/((data_check->index_nf+1)*data_check->Weld_param_stenka.beta_z*data_check->kf*
                  data_check->Weld_param_stenka.Rwz*data_check->gamma_c));
      }
   // 7. Внутренний пояс по металлу шва полки
     if (CheckListBox_Weld->Checked[6]) {
        krit[6] = MAX(krit[6],
                  T_int/((data_check->index_nf+1)*data_check->Weld_param_polka.beta_f*data_check->kf*
                  data_check->Weld_param_polka.Rwf*data_check->gamma_c));
      }
   // 8. Внутренний пояс по металлу границы сплавления шва полки
     if (CheckListBox_Weld->Checked[7]) {
        krit[7] = MAX(krit[7],
                  T_int/((data_check->index_nf+1)*data_check->Weld_param_polka.beta_z*data_check->kf*
                  data_check->Weld_param_polka.Rwz*data_check->gamma_c));
      }
    }
    // 9. По металлу шва стенки в соединении стенки с внешней полкой от сил по направлению к центру или от центра сечения п. 14.4.1, табл. 43, ф.(196), (197).",
    if (CheckListBox_Weld->Checked[8]) {
      if (data_check->index_nf == 0 || data_check->index_nf == 1) {
      }
      else {
      }
    }
    // Катет шва не должен превышать 1.2t (t - наименьшпя из толщин свариваимых элементов)
	if (CheckListBox_Weld->Checked[16]) {
      krit[16] = MAX(krit[16], data_check->kf/(1.2*Sect->com_sect.dvutavr.b));
    }
    if (CheckListBox_Weld->Checked[17]) {
      krit[17] = MAX(krit[17], data_check->kf/(1.2*Sect->com_sect.dvutavr.h1));
    }
    if (CheckListBox_Weld->Checked[18]) {
      krit[18] = MAX(krit[18], data_check->kf/(1.2*Sect->com_sect.dvutavr.b));
    }
    if (CheckListBox_Weld->Checked[19]) {
      krit[19] = MAX(krit[19], data_check->kf/(1.2*Sect->com_sect.dvutavr.h2));
    }
    if (CheckListBox_Weld->Checked[20]) {
      kf_min = Get_min_kf_new(data_check->index_nf+1, data_check->index_vid_soedineniya, data_check->index_vid_svarki, Sect->com_sect.dvutavr.b, Sect->com_sect.dvutavr.b, &rc);
      krit[20] = MAX(krit[20], kf_min/data_check->kf);
    }
    if (CheckListBox_Weld->Checked[21]) {
      kf_min = Get_min_kf_new(data_check->index_nf+1, data_check->index_vid_soedineniya, data_check->index_vid_svarki,  Sect->com_sect.dvutavr.h1, Sect->com_sect.dvutavr.h1, &rc);
      krit[21] = MAX(krit[21], kf_min/data_check->kf);
    }
    if (CheckListBox_Weld->Checked[22]) {
      kf_min = Get_min_kf_new(data_check->index_nf+1, data_check->index_vid_soedineniya, data_check->index_vid_svarki,  Sect->com_sect.dvutavr.b, Sect->com_sect.dvutavr.b, &rc);
      krit[22] = MAX(krit[22], kf_min/data_check->kf);
    }
    if (CheckListBox_Weld->Checked[23]) {
      kf_min = Get_min_kf_new(data_check->index_nf+1, data_check->index_vid_soedineniya, data_check->index_vid_svarki,  Sect->com_sect.dvutavr.h2, Sect->com_sect.dvutavr.h2, &rc);
      krit[23] = MAX(krit[23], kf_min/data_check->kf);
    }
  }
  double krit_max = 0;
  for (i=0; i<CheckListBox_Weld->Items->Count; i++) {
	 krit_max = MAX(krit_max, krit[i]);
  }
  RichEdit_Weld->Visible = true;
  CheckListBox_Weld->Left = RichEdit_Weld->Left +
                                           RichEdit_Weld->Width + 4;
  RichEdit_Weld->Clear();
  for (i=0; i<CheckListBox_Weld->Count; i++) {
     if (Round(krit[i], 2) > 1.0)
       RichEdit_Weld->SelAttributes->Color=clRed;
     else
       RichEdit_Weld->SelAttributes->Color=clBlack;
     RichEdit_Weld->Lines->Add(" "+FloatToStr(Round(krit[i], 2)));
  }

  // Восстановление коэфффициента условий работы (сейсмического)
  data_check->gamma_c *= gamma_tr;

  //return krit_max;
  return 0;
  }



