This commit is contained in:
2025-07-09 18:20:49 +04:00
parent dc68787b0b
commit 4a10e465a8
4 changed files with 219 additions and 22 deletions

View File

@@ -1,6 +1,18 @@
@page
@model IndexModel
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
<h2>Модель расчета поковок кольцо раскатное</h2>
<form method="post">
<p>
@@ -38,3 +50,59 @@
</p>
<input type="submit" value="Отправить" />
</form>
@if (Model.hasResult)
{
<table border="1">
<caption>
<h2>Расчет размеров поковки</h2>
</caption>
<thead>
<tr>
<th> - </th>
<th>Размер</th>
<th>Допуск на размер +-</th>
</tr>
</thead>
<tr>
<td>H заготовки = (Н1+б)+-∆/2</td>
<td>@Model.H_Billet</td>
<td>@Model.limit1</td>
</tr>
<tr>
<td>H заготовки с пробой = (Н2+б)+-∆/2</td>
<td>@Model.H_BilletWithBlank</td>
<td>@Model.limit2</td>
</tr>
<tr>
<td>D дет = D+напуск на ТО</td>
<td>@Model.D_Detail</td>
<td> - </td>
</tr>
<tr>
<td>D заг = (D+б)+-∆/2+напуск на ТО</td>
<td>@Model.D_Billet</td>
<td>@Model.limit3</td>
</tr>
<tr>
<td>D заг с пробой= (D+б)+-∆/2+напуск на ТО</td>
<td>@Model.D_BilletWithBlank</td>
<td>@Model.limit4</td>
</tr>
<tr>
<td>d дет=d-напуск на ТО</td>
<td>@Model.d_Detail</td>
<td> - </td>
</tr>
<tr>
<td>d заг =(dдет-б)+-3б</td>
<td>@Model.d_Billet</td>
<td>@Model.limit5</td>
</tr>
<tr>
<td>d заг с пробой =(dдет-б)+-3б</td>
<td>@Model.d_BilletWithBlank</td>
<td>@Model.limit6</td>
</tr>
</table>
}

View File

@@ -11,63 +11,192 @@ public class IndexModel : PageModel
public double Q { get; private set; }
public double onTO { get; private set; }
public double h1 { get; private set; }
public double h2 { get; private set; }
public double H_Billet { get; private set; }
public int limit1 { get; private set; }
public double H_BilletWithBlank { get; private set; }
public int limit2 { get; private set; }
public double D_Detail { get; private set; }
public double D_Billet { get; private set; }
public int limit3 { get; private set; }
public double D_BilletWithBlank { get; private set; }
public int limit4 { get; private set; }
public double d_Detail { get; private set; }
public double d_Billet { get; private set; }
public int limit5 { get; private set; }
public double d_BilletWithBlank { get; private set; }
public int limit6 { get; private set; }
public double D_nom_1 { get; private set; }
public double r_nom_1 { get; private set; }
public double H_nom_1 { get; private set; }
public double V_nom_1 { get; private set; }
public double mDisk_nom_1 { get; private set; }
public double D_max_1 { get; private set; }
public double r_max_1 { get; private set; }
public double H_max_1 { get; private set; }
public double V_max_1 { get; private set; }
public double mDisk_max_1 { get; private set; }
public double D_O_nom_1 { get; private set; }
public double r_O_nom_1 { get; private set; }
public double H_O_nom_1 { get; private set; }
public double V_O_nom_1 { get; private set; }
public double mDisk_O_nom_1 { get; private set; }
public double D_O_max_1 { get; private set; }
public double r_O_max_1 { get; private set; }
public double H_O_max_1 { get; private set; }
public double V_O_max_1 { get; private set; }
public double mDisk_O_max_1 { get; private set; }
public double mDisk_nom_1_O { get; private set; }
public double mDisk_max_1_O { get; private set; }
public double D_nom_2 { get; private set; }
public double r_nom_2 { get; private set; }
public double H_nom_2 { get; private set; }
public double V_nom_2 { get; private set; }
public double mDisk_nom_2 { get; private set; }
public double D_max_2 { get; private set; }
public double r_max_2 { get; private set; }
public double H_max_2 { get; private set; }
public double V_max_2 { get; private set; }
public double mDisk_max_2 { get; private set; }
public double D_O_nom_2 { get; private set; }
public double r_O_nom_2 { get; private set; }
public double H_O_nom_2 { get; private set; }
public double V_O_nom_2 { get; private set; }
public double mDisk_O_nom_2 { get; private set; }
public double D_O_max_2 { get; private set; }
public double r_O_max_2 { get; private set; }
public double H_O_max_2 { get; private set; }
public double V_O_max_2 { get; private set; }
public double mDisk_O_max_2 { get; private set; }
public double mDisk_nom_2_O { get; private set; }
public double mDisk_max_2_O { get; private set; }
public bool hasResult { get; private set; } = false;
public void OnPost(double D, double dd, double H, double x, double y, double z, double Q, double onTO)
{
h1 = H * x + (y * z) + onTO;
h2 = H * x + (y * z) + Q + onTO;
double h1 = H * x + (y * z) + onTO;
double h2 = H * x + (y * z) + Q + onTO;
#region Расчет размеров поковки
// H заготовки = (Н1+б)+-∆/2
// Размер
double H_Billet = h1 + SearchLimit(D, h1).Item1;
H_Billet = h1 + SearchLimit(D, h1).Item1;
// Допуск на размер +-
int limit1 = SearchLimit(D, h1).Item2;
limit1 = SearchLimit(D, h1).Item2;
// H заготовки с пробой = (Н2+б)+-∆/2
double H_BilletWithBlank = h2 + SearchLimit(D, h2).Item1;
H_BilletWithBlank = h2 + SearchLimit(D, h2).Item1;
// Допуск на размер +-
int limit2 = SearchLimit(D, h2).Item2;
limit2 = SearchLimit(D, h2).Item2;
// D дет = D+напуск на ТО
double D_Detail = D + onTO;
D_Detail = D + onTO;
// D заг = (D+б)+-∆/2+напуск на ТО
double D_Billet = D_Detail + SearchLimit(D, h1).Item1 + onTO;
int limit3 = SearchLimit(D, h1).Item2;
D_Billet = D_Detail + SearchLimit(D, h1).Item1 + onTO;
limit3 = SearchLimit(D, h1).Item2;
// D заг с пробой= (D+б)+-∆/2+напуск на ТО
double D_BilletWithBlank = D_Detail + SearchLimit(D, h2).Item1 + onTO;
int limit4 = SearchLimit(D, h2).Item2;
D_BilletWithBlank = D_Detail + SearchLimit(D, h2).Item1 + onTO;
limit4 = SearchLimit(D, h2).Item2;
// d дет=d-напуск на ТО
double d_Detail = dd + onTO;
d_Detail = dd + onTO;
// d заг =(dдет-б)+-3б
double d_Billet = d_Detail - SearchLimit(D, h1).Item1;
int limit5 = SearchLimit(D, h1).Item2 * 3;
d_Billet = d_Detail - SearchLimit(D, h1).Item1;
limit5 = SearchLimit(D, h1).Item2 * 3;
//d заг с пробой =(dдет-б)+-3б
double d_BilletWithBlank = d_Detail - SearchLimit(D, h2).Item1;
int limit6 = SearchLimit(D, h2).Item2 * 3;
d_BilletWithBlank = d_Detail - SearchLimit(D, h2).Item1;
limit6 = SearchLimit(D, h2).Item2 * 3;
#endregion
#region Расчет массы поковки без пробы
// Диск номинал
double D_calc =
D_nom_1 = D_Billet;
r_nom_1 = D_nom_1 / 2;
H_nom_1 = H_Billet;
V_nom_1 = 3.14 * (r_nom_1 * r_nom_1) * H_nom_1;
mDisk_nom_1 = Math.Round(V_nom_1 * 0.78 / 100000000, 3);
// Диск максимал
D_max_1 = D_Billet + limit3;
r_max_1 = D_max_1 / 2;
H_max_1 = H_Billet + limit1;
V_max_1 = 3.14 * (r_max_1 * r_max_1) * H_max_1;
mDisk_max_1 = Math.Round(V_max_1 * 0.78 / 100000000, 3);
// Отверстие номинал
D_O_nom_1 = d_Billet;
r_O_nom_1 = d_Billet / 2;
H_O_nom_1 = H_Billet;
V_O_nom_1 = 3.14 * (r_O_nom_1 * r_O_nom_1) * H_O_nom_1;
mDisk_O_nom_1 = Math.Round(V_O_nom_1 * 0.78 / 100000000, 3);
// Отверстие максимал
D_O_max_1 = d_Billet - limit5;
r_O_max_1 = D_O_max_1 / 2;
H_O_max_1 = H_Billet + limit1;
V_O_max_1 = 3.14 * (r_O_max_1 * r_O_max_1) * H_O_max_1;
mDisk_O_max_1 = Math.Round(V_O_max_1 * 0.78 / 100000000, 3);
// m диск с отв
mDisk_nom_1_O = mDisk_nom_1 - mDisk_O_nom_1;
mDisk_max_1_O = mDisk_max_1 - mDisk_O_max_1;
#endregion
#region Расчет массы поковки c пробой
// Диск номинал
D_nom_2 = D_BilletWithBlank;
r_nom_2 = D_nom_2 / 2;
H_nom_2 = H_BilletWithBlank;
V_nom_2 = 3.14 * (r_nom_2 * r_nom_2) * H_nom_2;
mDisk_nom_2 = Math.Round(V_nom_2 * 0.78 / 100000000, 3);
// Диск максимал
D_max_2 = D_BilletWithBlank + limit4;
r_max_2 = D_max_2 / 2;
H_max_2 = H_BilletWithBlank + limit2;
V_max_2 = 3.14 * (r_max_2 * r_max_2) * H_max_2;
mDisk_max_2 = Math.Round(V_max_2 * 0.78 / 100000000, 3);
// Отверстие номинал
D_O_nom_2 = d_BilletWithBlank;
r_O_nom_2 = D_O_nom_2 / 2;
H_O_nom_2 = H_BilletWithBlank;
V_O_nom_2 = 3.14 * (r_O_nom_2 * r_O_nom_2) * H_O_nom_2;
mDisk_O_nom_2 = Math.Round(V_O_nom_2 * 0.78 / 100000000, 3);
// Отверстие максимал
D_O_max_2 = d_BilletWithBlank - limit6;
r_O_max_2 = D_O_max_2 / 2;
H_O_max_2 = H_BilletWithBlank + limit2;
V_O_max_2 = 3.14 * (r_O_max_2 * r_O_max_2) * H_O_max_2;
mDisk_O_max_2 = Math.Round(V_O_max_2 * 0.78 / 100000000, 3);
// m диск с отв
mDisk_nom_2_O = mDisk_nom_2 - mDisk_O_nom_2;
mDisk_max_2_O = mDisk_max_2 - mDisk_O_max_2;
#endregion
hasResult = true;
}
private (int, int) SearchLimit(double D, double H)

View File

@@ -1,9 +1,9 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36203.30 d17.14
VisualStudioVersion = 17.14.36203.30
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SumCalculator", "SumCalculator.csproj", "{D0BEB4F5-C30C-497E-94A7-88F1D4EDA4D3}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApp", "TestApp.csproj", "{D0BEB4F5-C30C-497E-94A7-88F1D4EDA4D3}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution