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