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 @page
@model IndexModel @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> <h2>Модель расчета поковок кольцо раскатное</h2>
<form method="post"> <form method="post">
<p> <p>
@@ -37,4 +49,60 @@
<input type="text" oninput="validateDecimal(this)" step="any" name="onTO" value="0"/> <input type="text" oninput="validateDecimal(this)" step="any" name="onTO" value="0"/>
</p> </p>
<input type="submit" value="Отправить" /> <input type="submit" value="Отправить" />
</form> </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 Q { get; private set; }
public double onTO { get; private set; } public double onTO { get; private set; }
public double h1 { get; private set; } public double H_Billet { get; private set; }
public double h2 { 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) 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; double h1 = H * x + (y * z) + onTO;
h2 = H * x + (y * z) + Q + onTO; double h2 = H * x + (y * z) + Q + onTO;
#region Расчет размеров поковки #region Расчет размеров поковки
// H заготовки = (Н1+б)+-∆/2 // 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 // 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+напуск на ТО // D дет = D+напуск на ТО
double D_Detail = D + onTO; D_Detail = D + onTO;
// D заг = (D+б)+-∆/2+напуск на ТО // D заг = (D+б)+-∆/2+напуск на ТО
double D_Billet = D_Detail + SearchLimit(D, h1).Item1 + onTO; D_Billet = D_Detail + SearchLimit(D, h1).Item1 + onTO;
int limit3 = SearchLimit(D, h1).Item2; limit3 = SearchLimit(D, h1).Item2;
// D заг с пробой= (D+б)+-∆/2+напуск на ТО // D заг с пробой= (D+б)+-∆/2+напуск на ТО
double D_BilletWithBlank = D_Detail + SearchLimit(D, h2).Item1 + onTO; D_BilletWithBlank = D_Detail + SearchLimit(D, h2).Item1 + onTO;
int limit4 = SearchLimit(D, h2).Item2; limit4 = SearchLimit(D, h2).Item2;
// d дет=d-напуск на ТО // d дет=d-напуск на ТО
double d_Detail = dd + onTO; d_Detail = dd + onTO;
// d заг =(dдет-б)+-3б // d заг =(dдет-б)+-3б
double d_Billet = d_Detail - SearchLimit(D, h1).Item1; d_Billet = d_Detail - SearchLimit(D, h1).Item1;
int limit5 = SearchLimit(D, h1).Item2 * 3; limit5 = SearchLimit(D, h1).Item2 * 3;
//d заг с пробой =(dдет-б)+-3б //d заг с пробой =(dдет-б)+-3б
double d_BilletWithBlank = d_Detail - SearchLimit(D, h2).Item1; d_BilletWithBlank = d_Detail - SearchLimit(D, h2).Item1;
int limit6 = SearchLimit(D, h2).Item2 * 3; limit6 = SearchLimit(D, h2).Item2 * 3;
#endregion #endregion
#region Расчет массы поковки без пробы #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 #endregion
#region Расчет массы поковки c пробой #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 #endregion
hasResult = true;
} }
private (int, int) SearchLimit(double D, double H) private (int, int) SearchLimit(double D, double H)

View File

@@ -1,9 +1,9 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.14.36203.30 d17.14 VisualStudioVersion = 17.14.36203.30
MinimumVisualStudioVersion = 10.0.40219.1 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 EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution