Upd
This commit is contained in:
@@ -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>
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user