Добавьте файлы проекта.

This commit is contained in:
palex
2026-01-06 02:07:18 +03:00
parent 153b9675e3
commit 8e4b375e80
109 changed files with 10817 additions and 0 deletions

168
BL/IGE.cs Normal file
View File

@@ -0,0 +1,168 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GroundOrganizer
{
[Serializable]
public class IGE
{
private string groundType;
public int Number { get; set; }
/// <summary>
/// Номер иженерно-геологического элемента
/// </summary>
public string NumIGE { get; set; }
/// <summary>
/// Тип грунта согласно таблицы 5.4 СП 22.13330.2011
/// </summary>
public string GroundType { get => groundType; set { groundType = value; ChangeTypeGroundIdx(); } }
/// <summary>
/// Плотность грунта для расчетов по 2-й группе предельных сосотояний
/// </summary>
public double RoII { get; set; }
/// <summary>
/// Угол внутреннего трения грунта в градусах для расчетов по 2-й группе предельных сосотояний
/// </summary>
public double FiII { get; set; }
/// <summary>
/// Удельное сцепление для расчетов по 2-й группе предельных сосотояний
/// </summary>
public double CII { get; set; }
/// <summary>
/// Модуль деформации грунта
/// </summary>
public double E { get; set; }
/// <summary>
/// Удельный вес частиц (минеральной части) грунта
/// </summary>
public double Ys { get; set; }
/// <summary>
/// Коэффициент пористости
/// </summary>
public double Ke { get; set; }
/// <summary>
///Показатель текучести
/// </summary>
public double IL { get; set; }
/// <summary>
/// Наличие водонасыщения
/// </summary>
public bool W { get; set; }
/// <summary>
/// Описание слоя грунта
/// </summary>
public string Description { get; set; }
public int GroundTypeIdx { get; private set; }
/// <summary>
/// Типы грунтов согласно таблицы 5.4 СП 22.13330.2011
/// </summary>
private readonly string[] groundTypes = new string[]
{
"Крупнообломочные с песчаным заполнителем и пески кроме мелких и пылеватых",
"Пески мелкие",
"Пески пылеватые маловлажные",
"Пески пылеватые влажные насыщенные водой",
"Пески рыхлые",
"Глинистые, а также крупнообломочные с глинистым заполнителем при IL<=0.25",
"Глинистые, а также крупнообломочные с глинистым заполнителем при 0.25<IL<=0.5",
"Глинистые, а также крупнообломочные с глинистым заполнителем при 0.5<IL"
};
public IGE Clone()
{
return new IGE()
{
Number=Number,
NumIGE=NumIGE,
GroundType = GroundType,
RoII = RoII,
FiII = FiII,
CII = CII,
E = E,
Ys = Ys,
Ke = Ke,
IL = IL,
W = W,
Description = Description
};
}
void ChangeTypeGroundIdx()
{
int i = 1;
foreach (string item in groundTypes)
{
if (item == groundType)
{
GroundTypeIdx = i;
break;
}
i++;
}
}
internal string PropsToString()
{
string s = ";";
return Number.ToString() + s + NumIGE + s + Description + s + RoII.ToString() + s + FiII.ToString() + s + CII.ToString() + s + E.ToString() +
s + Ys.ToString() + s + Ke.ToString() + s + IL.ToString() + s + W.ToString() + s + GroundType + s + GroundTypeIdx.ToString();
}
internal List<object> PropsToList()
{
return new List<object> { Number, NumIGE, Description, RoII, FiII, CII, E, Ys, Ke, IL, W, GroundType, GroundTypeIdx };
}
internal void StringToProps(string line, char separator = ';')
{
string[] src = line.Split(separator);
try
{
Number = Int32.Parse(src[0]);
NumIGE = src[1];
Description = src[2];
RoII = double.Parse(src[3]);
FiII = double.Parse(src[4]);
CII = double.Parse(src[5]);
E = double.Parse(src[6]);
Ys = double.Parse(src[7]);
Ke = double.Parse(src[8]);
IL = double.Parse(src[9]);
W = bool.Parse(src[10]);
GroundType = src[11];
}
catch
{
return;
}
}
internal void ListToProps(List<object> src)
{
try
{
Number = (int)(double)src[0];
NumIGE = (string)src[1];
Description = (string)src[2];
RoII = (double)src[3];
FiII = (double)src[4];
CII = (double)src[5];
E = (double)src[6];
Ys = (double)src[7];
Ke = (double)src[8];
IL = (double)src[9];
W = (bool)src[10];
GroundType = (string)src[11];
}
catch
{
return;
}
}
}
}