Разработка программного обеспечения для расчёта режимов резания при токарной обработке с использованием различных типов резцов и материала обрабатываемой детали
Выбор режима резания при токарной обработке с использованием различных типов резцов и материала обрабатываемой детали. Математическая модель и необходимые для расчетов таблицы. Функциональная схема автоматизации процесса расчета режима резания.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 29.07.2016 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
(MaterialDescMemo.text = 'МНЦ15-20') or (MaterialDescMemo.text = 'МН06') or
(MaterialDescMemo.text = 'МН16') or (MaterialDescMemo.text = 'БР.А5') or
(MaterialDescMemo.text = 'БР.А7') or
(MaterialDescMemo.text = 'БР.ОЦСН3-7-5-1') or
(MaterialDescMemo.text = 'БР.ОЦСН3-12-5') or
(MaterialDescMemo.text = 'БР.С30') or (MaterialDescMemo.text = 'БРОФ4-3') or
(MaterialDescMemo.text = 'БРА5') or (MaterialDescMemo.text = 'БРА7') or
(MaterialDescMemo.text = 'ЛН65') or (MaterialDescMemo.text = 'Л60') or
(MaterialDescMemo.text = 'ЛС63-3') or (MaterialDescMemo.text = 'ЛС59-1') or
(MaterialDescMemo.text = 'ЛН65-5') or (MaterialDescMemo.text = 'ЛК80-3') or
(MaterialDescMemo.text = 'Л63') or (MaterialDescMemo.text = 'Л68') or
(MaterialDescMemo.text = 'Л85') or (MaterialDescMemo.text = 'Л80') or
(MaterialDescMemo.text = 'Л90') or (MaterialDescMemo.text = 'Л96') then
begin
Label28.Caption := 'N';
Panel5.ParentBackground := false;
Panel5.Color := clMoneyGreen;
MaterialTypeCB.ItemIndex := 15;
BrinelTextBox.Caption := '100';
RokvellTextBox.Caption := '<20';
end;
if (MaterialDescMemo.text = '16М') or (MaterialDescMemo.text = '12МХ') or
(MaterialDescMemo.text = '18Х3МВ') or (MaterialDescMemo.text = 'ЭИ654') or
(MaterialDescMemo.text = '4Х14Н14В2М') or
(MaterialDescMemo.text = '25Х18Н8В2') or
(MaterialDescMemo.text = 'Х21Г7АН5Б') or (MaterialDescMemo.text = 'ХН60В')
or (MaterialDescMemo.text = 'ХН77ТЮ') or (MaterialDescMemo.text = 'ВНЛ-5')
or (MaterialDescMemo.text = 'ВЖЛ-10') or (MaterialDescMemo.text = 'Х18Н9Т')
then
begin
Label28.Caption := 'S';
Panel5.ParentBackground := false;
Panel5.Color := clFuchsia;
MaterialTypeCB.ItemIndex := 16;
BrinelTextBox.Caption := '240';
RokvellTextBox.Caption := '23';
end;
if (MaterialDescMemo.text = 'ХН60В') or (MaterialDescMemo.text = 'НХ9.5') or
(MaterialDescMemo.text = 'ЖС6-12') or (MaterialDescMemo.text = 'ВЖ36-172')
or (MaterialDescMemo.text = 'ВЖЛ-14') or (MaterialDescMemo.text = 'ХН77ТЮ')
or (MaterialDescMemo.text = 'ХН80ТБЮ') then
begin
Label28.Caption := 'S';
Panel5.ParentBackground := false;
Panel5.Color := clFuchsia;
MaterialTypeCB.ItemIndex := 17;
BrinelTextBox.Caption := '300';
RokvellTextBox.Caption := '30';
end;
if (MaterialDescMemo.text = 'ВТ1') or (MaterialDescMemo.text = 'ВТ1-1') or
(MaterialDescMemo.text = 'ВТ') or (MaterialDescMemo.text = 'В') or
(MaterialDescMemo.text = 'ВТ3-1') or (MaterialDescMemo.text = 'ВТ4') or
(MaterialDescMemo.text = 'ВТ5-1') or (MaterialDescMemo.text = 'ВТ6') or
(MaterialDescMemo.text = 'ВТ8') or (MaterialDescMemo.text = 'ВТ4-1') or
(MaterialDescMemo.text = 'ВТ15') or (MaterialDescMemo.text = 'ВТ16') then
begin
Label28.Caption := 'S';
Panel5.ParentBackground := false;
Panel5.Color := clFuchsia;
MaterialTypeCB.ItemIndex := 18;
BrinelTextBox.Caption := '220';
RokvellTextBox.Caption := '<20';
end;
if (MaterialDescMemo.text = '30ХГСНА') or (MaterialDescMemo.text = 'ЭИ643') or
(MaterialDescMemo.text = 'ВЛ-1') or (MaterialDescMemo.text = '30ХГСА') then
begin
Label28.Caption := 'H';
Panel5.ParentBackground := false;
Panel5.Color := clGray;
MaterialTypeCB.ItemIndex := 19;
BrinelTextBox.Caption := '600';
RokvellTextBox.Caption := '57';
end;
if (MaterialDescMemo.text = 'Х28') or (MaterialDescMemo.text = 'Х34') then
begin
Label28.Caption := 'H';
Panel5.ParentBackground := false;
Panel5.Color := clGray;
MaterialTypeCB.ItemIndex := 20;
BrinelTextBox.Caption := '400';
RokvellTextBox.Caption := '43';
end;
if (MaterialDescMemo.text = 'Пластмассы') or
(MaterialDescMemo.text = 'Оргстекло') or
(MaterialDescMemo.text = 'Полимеры') or (MaterialDescMemo.text = 'Композиты')
then
begin
Label28.Caption := 'N';
Panel5.ParentBackground := false;
Panel5.Color := clMoneyGreen;
MaterialTypeCB.ItemIndex := 22;
BrinelTextBox.Caption := '0';
RokvellTextBox.Caption := '0';
end;
BrinelCuringEdit.Text:=BrinelTextBox.Caption;
CuringCB.ItemIndex:=0;
Recalculate;
end;
procedure TForm1.ManufacturerCBChange(Sender: TObject);
begin
Recalculate;
end;
/// Выбор стали для обработки и подбор основных характеристик/////
procedure TForm1.MaterialTypeCBChange(Sender: TObject);
begin
if MaterialTypeCB.ItemIndex = 0 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('Ст.0, Ст.1, Ст.08, Ст.08КП, Ст.10, Ст.10КП, Ст.15К, Ст.20');
BrinelTextBox.Caption := '125';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 1 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add('Ст.3, Ст.25, Ст.30, Ст.35');
BrinelTextBox.Caption := '190';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 2 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add('Ст.40, Ст.45, Ст.50, Ст.55, Ст.5');
BrinelTextBox.Caption := '250';
RokvellTextBox.Caption := '25';
end;
if MaterialTypeCB.ItemIndex = 3 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add('Ст.60, Ст65, Ст.70, Ст.75, Ст.80, Ст.6, Ст.7');
BrinelTextBox.Caption := '300';
RokvellTextBox.Caption := '32';
end;
if MaterialTypeCB.ItemIndex = 4 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('15ГС, 18Г2С, 35ГС, 10Г2СД, 14ХГС, 30ХГ2С, 14ХГСН, 10ХГ2С, 12ХГН, 10ХГ2Н, 15ХГН, 14ХГ2Н, 14Г, 19Г, 24Г, 09Г2, 09Г2С, 14Г2, 10ГНД, 10ХНДП, 10ХСНД');
BrinelTextBox.Caption := '275';
RokvellTextBox.Caption := '28,5';
end;
if MaterialTypeCB.ItemIndex = 5 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('15Х, 15ХА, 20Х, 30Х, 35Х, 38ХС, 15ХФ, 20ХН, 20ХГ, 20ХГСА, 12ХН3А, 30ХГС, 40ХЛ, 70ХЛ, 25ГС, 25ГСЛ, 12МХЛ, 25НЛ, 35ФАЛ, Х5МЛ, 12Х2НВФА');
BrinelTextBox.Caption := '200';
RokvellTextBox.Caption := '<=20';
end;
if MaterialTypeCB.ItemIndex = 6 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('У7, У8, У9, У10, У11, У12, У13, Р18, Р9, Р18М, Р9М, Р2МА, Р9К10');
BrinelTextBox.Caption := '300';
RokvellTextBox.Caption := '32';
end;
if MaterialTypeCB.ItemIndex = 7 then
begin
Label28.Caption := 'P';
Panel5.ParentBackground := false;
Panel5.Color := clSkyBlue;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('15Л, 20Л, 25Л, 30Л, 35Л, 40Л, 45Л, 55Л, 70Л, 25ГЛ, 35ГЛ, 40ГЛ, 45ГЛ');
BrinelTextBox.Caption := '250';
RokvellTextBox.Caption := '25';
end;
if MaterialTypeCB.ItemIndex = 8 then
begin
Panel5.ParentBackground := false;
Panel5.Color := clYellow;
Label28.Caption := 'M';
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('1Х13, 1Х13Ш, 2Х13Л, 2Х13, 2Х13Ш, 13Х14НВФРА(ЭИ736), Х16Н6(ЭП288), 4Х13, Х17, Х17Н2, Х17Н2Ш, Х16Н6, 9Х18');
BrinelTextBox.Caption := '200';
RokvellTextBox.Caption := '<=20';
end;
if MaterialTypeCB.ItemIndex = 9 then
begin
Panel5.ParentBackground := false;
Panel5.Color := clYellow;
Label28.Caption := 'M';
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('Х6СМ, 20Х3МВФ, 1Х13, 1Х13Ш, 2Х13Л, 2Х13, 2Х13Ш, 13Х14НВФРА(ЭИ736), Х16Н6(ЭП288), 4Х13, Х17, Х17Н2, Х17Н2Ш, Х16Н6');
BrinelTextBox.Caption := '240';
RokvellTextBox.Caption := '23';
end;
if MaterialTypeCB.ItemIndex = 10 then
begin
Label28.Caption := 'M';
Panel5.ParentBackground := false;
Panel5.Color := clYellow;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('0Х18Н9, 08Х18Н10Т, 12Х18Н10Т, Х18Н9М, Х18Н9Л, 18Н10М, 2Х18Н9, Х23Н18, 1Х21Н5Т, Х15Н9Ю, Х17Н5М3');
BrinelTextBox.Caption := '180';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 11 then
begin
Label28.Caption := 'K';
Panel5.ParentBackground := false;
Panel5.Color := clRed;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('ВЧ40, ВЧ42-12, ВЧ80, ВЧ100, ВЧ35, ВЧ45, ВЧ50, ВЧ60, ВЧ70');
BrinelTextBox.Caption := '220';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 12 then
begin
Label28.Caption := 'K';
Panel5.ParentBackground := false;
Panel5.Color := clRed;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('СЧ15, СЧ24, СЧ25, СЧ18, СЧ21, СЧ28, СЧ36, СЧ32, СЧ44');
BrinelTextBox.Caption := '200';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 13 then
begin
Label28.Caption := 'K';
Panel5.ParentBackground := false;
Panel5.Color := clRed;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('КЧ30, КЧ33, КЧ35, КЧ37, КЧ45, КЧ50, КЧ56, КЧ60');
BrinelTextBox.Caption := '180';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 14 then
begin
Label28.Caption := 'N';
Panel5.ParentBackground := false;
Panel5.Color := clMoneyGreen;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('А0, А1, А2, А3, АД1, АМц, АМГ2, АМГ6, АМГ3, АМГ5, АК4, АК6, АК8');
BrinelTextBox.Caption := '80';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 15 then
begin
Label28.Caption := 'N';
Panel5.ParentBackground := false;
Panel5.Color := clMoneyGreen;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('М0, М1, М2, М3, МН19, МНЦ15-20, МНА13-3, МН06, МН16, БР.А5, БР.А7, БР.ОЦСН3-7-5-1, БР.ОЦСН3-12-5, БР.С30, БРОФ4-3, БРА5, БРА7, БРМц5, Л96, Л90, Л85, Л80, Л70, Л68, Л63, Л60, ЛН65, ЛС63-3, ЛС59-1, ЛК80-3, ЛН65-5');
BrinelTextBox.Caption := '100';
RokvellTextBox.Caption := '<20';
end;
if MaterialTypeCB.ItemIndex = 16 then
begin
Label28.Caption := 'S';
Panel5.ParentBackground := false;
Panel5.Color := clFuchsia;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('16М, 12МХ, 18Х3МВ, ЭИ654, 4Х14Н14В2М, 25Х18Н8В2, Х21Г7АН5Б, 36НХТЮ, ХН60В, ХН77ТЮ, ВНЛ-5, ВЖЛ-10, Х18Н9Т');
BrinelTextBox.Caption := '240';
RokvellTextBox.Caption := '23';
end;
if MaterialTypeCB.ItemIndex = 17 then
begin
Label28.Caption := 'S';
Panel5.ParentBackground := false;
Panel5.Color := clFuchsia;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('ХН60В, ХН80ТБЮ, ХН77ТЮ, ВНЛ5, ВЖЛ-10, ВЖЛ-14, ВЖ36-172, ЖС6-12, НХ9.5');
BrinelTextBox.Caption := '300';
RokvellTextBox.Caption := '30';
end;
if MaterialTypeCB.ItemIndex = 18 then
begin
Label28.Caption := 'S';
Panel5.ParentBackground := false;
Panel5.Color := clFuchsia;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('ВТ1, ВТ1-1, ВТ3-1, ВТ4, ВТ5-1, ВТ6, ВТ8, ОТ4-1, ВТ15, ВТ16');
BrinelTextBox.Caption := '220';
RokvellTextBox.Caption := '<=20';
end;
if MaterialTypeCB.ItemIndex = 19 then
begin
Label28.Caption := 'H';
Panel5.ParentBackground := false;
Panel5.Color := clGray;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add
('Сталь 45(закаленная), Сталь 40Х(закаленная),30ХГСНА, ЭИ643, ВЛ-1, 30ХГСА');
BrinelTextBox.Caption := '600';
RokvellTextBox.Caption := '57';
end;
if MaterialTypeCB.ItemIndex = 20 then
begin
Label28.Caption := 'H';
Panel5.ParentBackground := false;
Panel5.Color := clGray;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add('Х28, Х34');
BrinelTextBox.Caption := '400';
RokvellTextBox.Caption := '43';
end;
if MaterialTypeCB.ItemIndex = 21 then
begin
Label28.Caption := 'H';
Panel5.ParentBackground := false;
Panel5.Color := clGray;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add('Обычныйчугунпрошедшийтермообработку');
BrinelTextBox.Caption := '600';
RokvellTextBox.Caption := '57';
end;
if MaterialTypeCB.ItemIndex = 22 then
begin
Label28.Caption := 'N';
Panel5.ParentBackground := false;
Panel5.Color := clMoneyGreen;
MaterialDescMemo.Lines.clear;
MaterialDescMemo.Lines.Add('Пластмассы, Оргстекло, Полимеры, Композиты');
BrinelTextBox.Caption := '0';
RokvellTextBox.Caption := '0';
end;
BrinelCuringEdit.Text:=BrinelTextBox.Caption;
CuringCB.ItemIndex:=0;
Recalculate;
end;
// Функцияподстроки Substr встроке MainStr///
function CheckSubStr(Substr, MainStr: string): Boolean;
begin
Result := false;
if (Pos(Substr, MainStr) = 0) = false then
Result := true;
end;
procedure TForm1.Serve();
begin
/// ПОДАЧА///
/// резец проходной(тв.сплав)///
if ToolMaterialCB.ItemIndex = 0 then
begin
case ToolTypeCB.ItemIndex of
0:
podacha := 'CProhodRezTvspl';
1:
podacha := 'CKryglRezTvspl';
2:
podacha := 'CTrehgrRezTvspl';
3:
podacha := 'CRezbRezTvspl';
4:
podacha := 'CProrezRezTvspl';
end;
end
else
begin
case ToolTypeCB.ItemIndex of
0:
podacha := 'CProhodRezAlmaz';
1:
podacha := 'CKryglRezAlmaz';
2:
podacha := 'CTrehgrRezAlmaz';
3:
podacha := 'CRezbRezAlmaz';
4:
podacha := 'CProrezRezAlmaz';
end;
end;
end;
/// /Работа Подменю/////
/// /Проверка на вводимые символы////
procedure TForm1.BrinelCuringEditKeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in [#8, '0' .. '9', FormatSettings.DecimalSeparator]) then
begin
showmessage('Недопустимыйсимвол: ' + '(' + Key + ').' +
' Вводите: (0..9) или ( , ).');
Key := #0;
end;
end;
procedure TForm1.DiameterEditKeyPress(Sender: TObject; var Key: Char);
begin
if not(Key in [#8, '0' .. '9', FormatSettings.DecimalSeparator]) then
begin
showmessage('Недопустимыйсимвол: ' + '(' + Key + ').' +
' Вводите: (0..9) или ( , ).');
Key := #0;
end;
end;
/// загрузкакартинки///
procedure TForm1.ToolTypeCBChange(Sender: TObject);
begin
/// /длятокарки////
case ToolTypeCB.ItemIndex of
0:
Image1.Picture.LoadFromFile('Image/Diamond insert.bmp');
1:
Image1.Picture.LoadFromFile('Image/Round insert.bmp');
2:
Image1.Picture.LoadFromFile('Image/Triangularinsert.bmp');
3:
Image1.Picture.LoadFromFile('Image/Threading insert.bmp');
4:
Image1.Picture.LoadFromFile('Image/Groove.bmp');
end;
Serve; Recalculate;
end;
/// Дополнительная информация о материале резца///
procedure TForm1.ToolMaterialCBChange(Sender: TObject);
begin
Serve;
Recalculate;
end;
procedure TForm1.SpindleSpeed();
var
roundSpeed: Integer;
begin
SpindleSpeedEdit.Caption := floattostr(1000 * strtofloat(Label58.Caption) /
(3.14159265 * strtofloat(DiameterEdit.text)));
/// оборотышпинделя
roundSpeed := round(strtofloat(SpindleSpeedEdit.Caption));
/// округлениеоборотов
if roundSpeed >= strtofloat(oborotmax) then
SpindleSpeedEdit.Caption := oborotmax;
if roundSpeed < strtofloat(oborotmax) then
SpindleSpeedEdit.Caption := floattostr(roundSpeed);
end;
/// /Выбор дополнительных параметров/////
/// /назначение параметров твердости в зависимости от термообработки ////
procedure TForm1.Curing();
begin
if (MaterialTypeCB.ItemIndex <= 18) then
Case CuringCB.ItemIndex of
0:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 1);
1:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 1.8);
2:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 2.2);
3:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 2);
4:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 0.8);
5:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 1.5);
6:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 1.6);
7:
BrinelCuringEdit.text :=
floattostr(strtoint(BrinelTextBox.Caption) * 1.8);
End;
end;
procedure TForm1.CuringCBChange(Sender: TObject);
begin
Recalculate;
end;
/// Типобработки///
procedure TForm1.ProcessingType();
begin
if RadioButton1.Checked then
begin
Label58.Caption :=
floattostr(RoundTo(strtofloat(Label58.Caption) / 0.8, -2));
Label59.Caption :=
floattostr(RoundTo(strtofloat(Label59.Caption) * 0.8, -2));
end;
if RadioButton3.Checked then
begin
Label58.Caption :=
floattostr(RoundTo(strtofloat(Label58.Caption) * 0.8, -2));
Label59.Caption :=
floattostr(RoundTo(strtofloat(Label59.Caption) / 0.8, -2));
end;
/// для скорости и твердости в edit и поправочного коэффициента
V := strtofloat(Label58.Caption);
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
Recalculate;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
Recalculate;
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
Recalculate;
end;
/// СОЖ
procedure TForm1.Cooling();
begin
if CheckBox1.Checked = true then
Label58.Caption :=
floattostr(RoundTo(strtofloat(Label58.Caption) / 0.8, -2));
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Recalculate;
end;
/// Наличие корки у поковки и отливки///
procedure TForm1.Crust();
begin
if CheckBox2.Checked = true then
Label58.Caption :=
floattostr(RoundTo(strtofloat(Label58.Caption) * 0.8, -2));
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
Recalculate;
end;
/// /Термообработка(твердость после нее)////
procedure TForm1.BrinelCuring();
begin
/// Проверяем не пусто ли поле с твердостью и если пусто, то принимаем 1
if (BrinelCuringEdit.text = '') or (BrinelCuringEdit.text = ' ') then
BrinelCuringEdit.text := '1';
if strtofloat(BrinelCuringEdit.text) <> strtofloat(BrinelTextBox.Caption) then
begin
Label58.Caption := floattostr(V / strtofloat(BrinelCuringEdit.text) *
strtofloat(BrinelTextBox.Caption));
end;
Label58.Caption := floattostr(RoundTo(strtofloat(Label58.Caption), -2));
// расчетоборотов
SpindleSpeed;
end;
procedure TForm1.BrinelCuringEditChange(Sender: TObject);
begin
Recalculate;
end;
/// износстанка//
procedure TForm1.DegreeOfWear();
begin
if DegreeOfWearCB.ItemIndex = 1 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) * 0.9);
if DegreeOfWearCB.ItemIndex = 2 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) * sqr(0.9));
V := strtofloat(Label58.Caption);
/// флаг для то, чтобы работала твердость (обязательно нужен)
Label58.Caption := floattostr(RoundTo(strtofloat(Label58.Caption), -2));
end;
procedure TForm1.DegreeOfWearCBChange(Sender: TObject);
begin
Recalculate;
end;
/// периодстойкости///
procedure TForm1.ResistancePeriod();
begin
if ResistancePeriodCB.ItemIndex = 1 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) * 0.918);
if ResistancePeriodCB.ItemIndex = 2 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) / 1.23);
if ResistancePeriodCB.ItemIndex = 3 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) * 0.723);
if ResistancePeriodCB.ItemIndex = 4 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) * 0.658);
if ResistancePeriodCB.ItemIndex = 5 then
Label58.Caption := floattostr(strtofloat(Label58.Caption) * 0.585);
V := strtofloat(Label58.Caption);
/// флаг для то, чтобы работала твердость (обязательно нужен)
Label58.Caption := floattostr(RoundTo(strtofloat(Label58.Caption), -2));
end;
procedure TForm1.ResistancePeriodCBChange(Sender: TObject);
begin
Recalculate;
end;
/// /изменение диаметра вляиющее на изменение оборотов///
procedure TForm1.DiameterEditChange(Sender: TObject);
begin
if DiameterEdit.text = '' then
DiameterEdit.text := '1';
if strtofloat(DiameterEdit.text) < 1 then
DiameterEdit.text := '1';
Recalculate;
end;
/// при активации формы(необходимо в связи с упрощением кода....можно было обойтись и без этого)
procedure TForm1.FormShow(Sender: TObject);
begin
Serve;
/// Начальныеусловия///
MaterialTypeCB.ItemIndex := 0;
ManufacturerCB.ItemIndex := 0;
ToolTypeCB.ItemIndex := 0;
ToolMaterialCB.ItemIndex := 0;
Recalculate;
end;
procedure TForm1.CuttingSpeed(n: Integer);
begin
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
if MaterialTypeCB.text = DBGrid1.DataSource.DataSet.Fields[0].value then
Label58.Caption := floattostr(DBGrid1.DataSource.DataSet.Fields[n].value);
DBGrid1.DataSource.DataSet.next;
end;
end;
/// основнойтекстпрограммы///
//procedure TForm1.Timer1Timer(Sender: TObject);
procedure TForm1.Recalculate();
begin
Panel5.ParentBackground := false;
/// для отображения буквы стали
Panel2.ParentBackground := false;
/// для отображения полосок разделителей
Panel1.ParentBackground := false;
/// для отображения полосок разделителей
/// Определение фирмы производителя///
case ManufacturerCB.ItemIndex of
0:
DBGrid1.DataSource.DataSet := ADOTable2;
1:
DBGrid1.DataSource.DataSet := ADOTable3;
2:
DBGrid1.DataSource.DataSet := ADOTable4;
end;
/// /СКОРОСТЬ РЕЗАНИЯ PRAMIT,SANDVIK,ISKAR ИНСТРУМЕНТ/////
if ToolMaterialCB.ItemIndex = 0 then
CuttingSpeed(ToolTypeCB.ItemIndex + 1)
else
CuttingSpeed(ToolTypeCB.ItemIndex + 6);
V := strtofloat(Label58.Caption);
/// для расчета оборотов///
SpindleSpeed;
/// /обнулить для того, чтобы при следующем заходе исправить на вновь изменившееся
/// /ПОДАЧА////
ADOTable5.Active := false;
ADOTable5.TableName := podacha;
ADOTable5.Active := false;
DataSource6.DataSet.Active := true;
DBGrid6.DataSource.DataSet.First;
if DBGrid6.DataSource.DataSet.Fields[2].value = 'Линейнаяфункция' then
Label61.Caption := floattostr(strtofloat(DiameterEdit.text) *
DBGrid6.DataSource.DataSet.Fields[3].value +
DBGrid6.DataSource.DataSet.Fields[4].value);
if DBGrid6.DataSource.DataSet.Fields[2].value = 'Степеннаяфункция' then
Label61.Caption := floattostr(Power(strtofloat(DiameterEdit.text),
DBGrid6.DataSource.DataSet.Fields[4].value) *
DBGrid6.DataSource.DataSet.Fields[3].value);
if DBGrid6.DataSource.DataSet.Fields[2].value = 'Показательнаяфункция' then
Label61.Caption :=
floattostr(EXP(strtofloat(DiameterEdit.text) *
ln(DBGrid6.DataSource.DataSet.Fields[4].value) +
ln(DBGrid6.DataSource.DataSet.Fields[3].value)));
/// дляокругленияподачинаоборот
Label61.Caption := floattostr(RoundTo(strtofloat(Label61.Caption), -4));
Label59.Caption := floattostr(strtofloat(Label61.Caption) *
strtofloat(SpindleSpeedEdit.Caption));
/// дляокругленияминутнойподачи
Label59.Caption := floattostr(round(strtofloat(Label59.Caption)));
Calculate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ini := TiniFile.Create(extractfilepath(paramstr(0)) + 'inf.ini');
oborotmax := ini.ReadString('Максимальное число оборотов шпинделя', 'n',
Edit6.text);
MaterialTypeCB.ItemIndex := 0;
ManufacturerCB.ItemIndex := 0;
ToolTypeCB.ItemIndex := 0;
ToolMaterialCB.ItemIndex := 0;
end;
/// /Нажатие кнопки OK после выбора максимальных оборотов шпинделя///
procedure TForm1.Button23Click(Sender: TObject);
begin
Panel14.Visible := false;
Panel14.left := 1312;
Panel14.top := 400;
ini := TiniFile.Create(extractfilepath(paramstr(0)) + 'inf.ini');
ini.WriteString('Максимальное число оборотов шпинделя', 'n', Edit6.text);
oborotmax := Edit6.text;
TabSheet1.Enabled := true;
TabSheet2.Enabled := true;
end;
/// /НажатиеменюМаксимальныеоборотышпинделя//
procedure TForm1.N24Click(Sender: TObject);
begin
Panel14.left := 352;
Panel14.top := 136;
Panel14.Visible := true;
Edit6.text := oborotmax;
TabSheet1.Enabled := false;
TabSheet2.Enabled := false;
end;
/// Открытие окна смены зависимости величины подачи от скорости ///
procedure TForm1.N22Click(Sender: TObject);
begin
PageControl1.ActivePage := TabSheet1;
Panel15.Visible := true;
Panel15.top := -3;
Panel15.left := 475;
Timer3.Enabled := true;
Panel19.Visible := false;
end;
/// Кнопка ОК после внесения изменения в зависимость подачи от скорости///
procedure TForm1.Button24Click(Sender: TObject);
begin
Panel15.Visible := false;
Panel15.top := 500;
Panel15.left := 305;
Timer3.Enabled := false;
end;
/// РЕГРЕССИОННЫЙАНАЛИЗ///
procedure TForm1.N25Click(Sender: TObject);
begin
Button26.Enabled := false;
Edit13.Enabled := false;
Label86.Enabled := false;
Label91.Enabled := false;
Label87.Enabled := false;
Label88.Enabled := false;
Label89.Enabled := false;
Edit14.Enabled := false;
Edit15.Enabled := false;
Edit16.Enabled := false;
Label99.Enabled := true;
Edit18.Enabled := true;
PageControl1.ActivePage := TabSheet1;
if podacha <> 'pysto' then
begin
Label99.Caption := 'Текущаямодель';
Panel19.Visible := true;
Panel19.top := -3;
Panel19.left := 475;
Timer3.Enabled := true;
Panel15.Visible := false;
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT * FROM ' + podacha;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
DBGrid5.DataSource.DataSet.First;
while not DBGrid5.DataSource.DataSet.Eof do
begin
DBGrid5.DataSource.DataSet.Edit;
if DBGrid5.DataSource.DataSet.Fields[2].AsString <> '' then
Edit18.text := DBGrid5.DataSource.DataSet.Fields[2].value;
DBGrid5.DataSource.DataSet.Post;
DBGrid5.DataSource.DataSet.Last;
end;
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT Подача, Диаметр FROM ' + podacha;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
If Edit18.text = '' then
Edit18.text := 'Нетрасчета';
end
else
showmessage
('Этой таблицы нет в базе данный подача-диаметр, обратитесь к разработчикам для ее добавления.');
end;
/// Кнопка Расчет после регрессионного анализа///
procedure TForm1.Button25Click(Sender: TObject);
var
a: string; // подача
b: string; // диаметр
Line: real; // линейная модель
Step: real; // степенная модель
Pokaz: real; // показательная модель
chetchik: Integer; // счетчик
begin
/// начальныеусловия///
Button26.Enabled := true;
chetchik := 2;
Edit13.Enabled := true;
Label86.Enabled := true;
Label91.Enabled := true;
Label87.Enabled := true;
Label88.Enabled := true;
Label89.Enabled := true;
Edit14.Enabled := true;
Edit15.Enabled := true;
Edit16.Enabled := true;
Edit13.text := '';
Edit14.text := '';
Edit15.text := '';
Edit16.text := '';
Excel := CreateOleObject('Excel.Application');
Excel.Workbooks.Open[extractfilepath(paramstr(0)) +
'Вариант однофакторной регрессии.xls'];
// Excel.Visible := True;
Excel.ActiveWorkBook.Sheets.Item[5].Activate;
DBGrid5.DataSource.DataSet.First;
while not DBGrid5.DataSource.DataSet.Eof do
begin
if DBGrid5.DataSource.DataSet.Fields[1].AsString <> '' then
begin
a := 'D' + inttostr(chetchik);
b := 'B' + inttostr(chetchik);
DBGrid5.DataSource.DataSet.Edit;
Excel.Range[a] := DBGrid5.DataSource.DataSet.Fields[0].value;
Excel.Range[b] := DBGrid5.DataSource.DataSet.Fields[1].value;
DBGrid5.DataSource.DataSet.Post;
inc(chetchik);
end;
DBGrid5.DataSource.DataSet.next;
end;
If chetchik < 4 then
showmessage
('Слишком мало значений в базе данных для того чтобы подобрать модель.')
else
begin
Excel.ActiveWorkBook.Sheets.Item[1].Activate;
Line := Excel.ActiveWorkBook.ActiveSheet.Cells[8, 12].value;
/// сначала указывается номер строки а затем номер столбца
Step := Excel.ActiveWorkBook.ActiveSheet.Cells[9, 12].value;
Pokaz := Excel.ActiveWorkBook.ActiveSheet.Cells[10, 12].value;
if Line > Step then
begin
if Line > Pokaz then
begin
Edit16.text := floattostr(Line * 100);
Edit13.text := 'Линейнаяфункция';
Edit14.text := Excel.ActiveWorkBook.ActiveSheet.Cells[8, 2].value;
Edit15.text := Excel.ActiveWorkBook.ActiveSheet.Cells[8, 3].value;
end
else
begin
Edit16.text := floattostr(Pokaz * 100);
Edit13.text := 'Показательнаяфункция';
Edit14.text := Excel.ActiveWorkBook.ActiveSheet.Cells[10, 2].value;
Edit15.text := Excel.ActiveWorkBook.ActiveSheet.Cells[10, 3].value;
end;
end
else
begin
if Step > Pokaz then
Begin
Edit13.text := 'Степеннаяфункция';
Edit16.text := floattostr(Step * 100);
Edit14.text := Excel.ActiveWorkBook.ActiveSheet.Cells[9, 2].value;
Edit15.text := Excel.ActiveWorkBook.ActiveSheet.Cells[9, 3].value;
end
else
begin
Edit13.text := 'Показательнаяфункция';
Edit16.text := floattostr(Pokaz * 100);
Edit14.text := Excel.ActiveWorkBook.ActiveSheet.Cells[10, 2].value;
Edit15.text := Excel.ActiveWorkBook.ActiveSheet.Cells[10, 3].value;
end;
end;
end;
Excel.DisplayAlerts := false;
Excel.application.Quit;
end;
/// Кнопка Отмена после регрессионного анализа///
procedure TForm1.Button27Click(Sender: TObject);
begin
Panel19.Visible := false;
Panel19.top := 500;
Panel19.left := 305;
Timer3.Enabled := false;
Button26.Enabled := false;
Edit13.text := 'Нажмитекнопку "Расчет"';
Edit14.text := '';
Edit15.text := '';
Edit16.text := '';
end;
procedure TForm1.QueryServe(Serve: String);
begin
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT Подача, Диаметр FROM ' + Serve;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
Edit17.text := Serve;
end;
procedure TForm1.Timer3Timer(Sender: TObject);
begin
if Edit17.text <> podacha then
begin
if ToolMaterialCB.ItemIndex = 0 then
case ToolTypeCB.ItemIndex of
0:
QueryServe('CProhodRezTvspl');
1:
QueryServe('CKryglRezTvspl');
2:
QueryServe('CTrehgrRezTvspl');
3:
QueryServe('CRezbRezTvspl');
4:
QueryServe('CProrezRezTvspl');
end;
if ToolMaterialCB.ItemIndex = 1 then
case ToolTypeCB.ItemIndex of
0:
QueryServe('CProhodRezAlmaz');
1:
QueryServe('CKryglRezAlmaz');
2:
QueryServe('CTrehgrRezAlmaz');
3:
QueryServe('CRezbRezAlmaz');
4:
QueryServe('CProrezRezAlmaz');
end;
end;
if Panel15.Visible = true then
/// Если включена панель зависимость подачи от скорости
begin
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT * FROM ' + Edit17.text;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
DBGrid5.DataSource.DataSet.First;
while not DBGrid5.DataSource.DataSet.Eof do
begin
DBGrid5.DataSource.DataSet.Edit;
tipmodel := DBGrid5.DataSource.DataSet.Fields[2].value;
koeffK := DBGrid5.DataSource.DataSet.Fields[3].value;
koeffC := DBGrid5.DataSource.DataSet.Fields[4].value;
DBGrid5.DataSource.DataSet.Post;
DBGrid5.DataSource.DataSet.Last;
end;
if tipmodel = 'Линейнаяфункция' then
begin
RadioButton4.Enabled := true;
Edit7.Enabled := true;
Edit8.Enabled := true;
Edit7.text := floattostr(koeffK);
Edit8.text := floattostr(koeffC);
RadioButton5.Enabled := false;
RadioButton6.Enabled := false;
Edit9.Enabled := false;
Edit10.Enabled := false;
Edit11.Enabled := false;
Edit12.Enabled := false;
Edit9.text := '';
Edit10.text := '';
Edit11.text := '';
Edit12.text := '';
end;
if tipmodel = 'Степеннаяфункция' then
begin
RadioButton5.Enabled := true;
Edit10.Enabled := true;
Edit9.Enabled := true;
Edit9.text := floattostr(koeffK);
Edit10.text := floattostr(koeffC);
RadioButton4.Enabled := false;
RadioButton6.Enabled := false;
Edit7.Enabled := false;
Edit8.Enabled := false;
Edit11.Enabled := false;
Edit12.Enabled := false;
Edit11.text := '';
Edit12.text := '';
Edit7.text := '';
Edit8.text := '';
end;
if tipmodel = 'Показательнаяфункция' then
begin
RadioButton6.Enabled := true;
Edit11.Enabled := true;
Edit12.Enabled := true;
Edit11.text := floattostr(koeffK);
Edit12.text := floattostr(koeffC);
RadioButton5.Enabled := false;
RadioButton4.Enabled := false;
Edit9.Enabled := false;
Edit10.Enabled := false;
Edit7.Enabled := false;
Edit8.Enabled := false;
Edit9.text := '';
Edit10.text := '';
Edit7.text := '';
Edit8.text := '';
end;
end;
end;
/// Кнопка сохранить изменения (внести изменения в базу данных)///
procedure TForm1.Button26Click(Sender: TObject);
begin
Label99.Enabled := false;
Edit18.Enabled := false;
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT * FROM ' + Edit17.text;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
DBGrid5.DataSource.DataSet.First;
Label99.Caption := 'Предыдущаямодель';
Edit18.text := DBGrid5.DataSource.DataSet.Fields[2].value;
while not DBGrid5.DataSource.DataSet.Eof do
begin
DBGrid5.DataSource.DataSet.Edit;
DBGrid5.DataSource.DataSet.Fields[2].value := Edit13.text;
DBGrid5.DataSource.DataSet.Fields[3].value := strtofloat(Edit14.text);
DBGrid5.DataSource.DataSet.Fields[4].value := strtofloat(Edit15.text);
DBGrid5.DataSource.DataSet.Post;
DBGrid5.DataSource.DataSet.Last;
end;
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT Подача, Диаметр FROM ' + Edit17.text;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
end;
/// Кнопкаизменить///
procedure TForm1.Button29Click(Sender: TObject);
begin
Timer3.Enabled := false;
Button28.Enabled := true;
Edit9.Enabled := true;
Edit10.Enabled := true;
Edit7.Enabled := true;
Edit8.Enabled := true;
Edit11.Enabled := true;
Edit12.Enabled := true;
RadioButton4.Enabled := true;
RadioButton5.Enabled := true;
RadioButton6.Enabled := true;
end;
/// Кнопкасохранить///
procedure TForm1.Button28Click(Sender: TObject);
begin
if RadioButton4.Checked = true then
begin
tipmodel := 'Линейнаяфункция';
koeffK := strtofloat(Edit7.text);
koeffC := strtofloat(Edit8.text);
end;
if RadioButton5.Checked = true then
begin
tipmodel := 'Степеннаяфункция';
koeffK := strtofloat(Edit9.text);
koeffC := strtofloat(Edit10.text);
end;
if RadioButton6.Checked = true then
begin
tipmodel := 'Показательнаяфункция';
koeffK := strtofloat(Edit11.text);
koeffC := strtofloat(Edit12.text);
end;
ADOQuery1.close;
ADOQuery1.SQL.text := 'SELECT * FROM ' + Edit17.text;
ADOQuery1.ExecSQL;
ADOQuery1.Active := true;
DBGrid5.DataSource.DataSet.First;
while not DBGrid5.DataSource.DataSet.Eof do
begin
DBGrid5.DataSource.DataSet.Edit;
DBGrid5.DataSource.DataSet.Fields[2].value := tipmodel;
DBGrid5.DataSource.DataSet.Fields[3].value := koeffK;
DBGrid5.DataSource.DataSet.Fields[4].value := koeffC;
DBGrid5.DataSource.DataSet.Post;
DBGrid5.DataSource.DataSet.Last;
end;
Timer3.Enabled := true;
Button28.Enabled := false;
end;
procedure TForm1.Calculate;
begin
Curing;
ProcessingType;
Cooling;
Crust;
DegreeOfWear;
ResistancePeriod;
/// для скорости и твердости в edit и поправочного коэффициента
V := strtofloat(Label58.Caption);
BrinelCuring;
/// расчет оборотов
SpindleSpeed;
end;
/// Открыть отчет///
procedure TForm1.N12Click(Sender: TObject);
begin
Panel12.left := 144;
Panel12.top := 8;
Panel12.Visible := true;
Panel12.SetFocus;
Panel12.Focused;
Memo3.Lines.clear;
/// Формирование отчета///
Memo3.Lines.Add('///______________ОТЧЕТ______________///');
Memo3.Lines.Add(' ');
Memo3.Lines.Add(' ОСНОВНЫЕ ПАРАМЕТРЫ');
Memo3.Lines.Add('Скорость резания:......................' + Label58.Caption +
' м/мин;');
Memo3.Lines.Add('Минутная подача:.......................' + Label59.Caption +
' мм/мин;');
Memo3.Lines.Add('Оборотышпинделя:...................' + SpindleSpeedEdit.Caption +
' об/мин.');
Memo3.Lines.Add('Подача на один оборот:............' + Label61.Caption +
' мм/об;');
Memo3.Lines.Add(' ');
Memo3.Lines.Add(' СВЕДЕНИЯ О МАТЕРИАЛЕ И ИНСТРУМЕНТЕ');
Memo3.Lines.Add(' ');
Memo3.Lines.Add('Обрабатываемый материал:...' + MaterialTypeCB.text + ';');
Memo3.Lines.Add('Компания производитель:.......' + ManufacturerCB.text + ';');
Memo3.Lines.Add('Режущийинструмент:................' +
ToolTypeCB.text + ';');
Memo3.Lines.Add('Диаметррежущегоинструмента(детали): ' + DiameterEdit.text
+ ' мм;');
Memo3.Lines.Add('Материал инструмента:...........' +
ToolMaterialCB.text + ';');
Memo3.Lines.Add(' ');
Memo3.Lines.Add(' ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ');
Memo3.Lines.Add(' ');
Memo3.Lines.Add('Период стойкости инструмента:...........' +
ResistancePeriodCB.text + ' мин;');
Memo3.Lines.Add('Состояния оборудования:.......................' +
DegreeOfWearCB.text + ';');
Memo3.Lines.Add('Твердость после термообработки:......' +
BrinelCuringEdit.text + ' HB;');
if RadioButton2.Checked = true then
Memo3.Lines.Add('Типобработки:............................................'
+ RadioButton2.Caption + ';');
if RadioButton1.Checked = true then
Memo3.Lines.Add('Типобработки:............................................'
+ RadioButton1.Caption + ';');
if RadioButton3.Checked = true then
Memo3.Lines.Add('Типобработки:............................................'
+ RadioButton3.Caption + ';');
if CheckBox2.Checked = true then
Memo3.Lines.Add('У заготовки присутсвует корка;');
if CheckBox2.Checked = false then
Memo3.Lines.Add('Узаготовкиотсутсвуеткорка;');
if CheckBox1.Checked = true then
Memo3.Lines.Add('ОбработкасприменениемСОЖ;');
if CheckBox1.Checked = false then
Memo3.Lines.Add('ОбработкабезСОЖ;');
end;
procedure TForm1.BitBtn17Click(Sender: TObject);
begin
Panel12.Visible:=False;
end;
end.
Размещено на Allbest.ru
Подобные документы
Разработка программного кода и его формы. Описание типов используемых переменных: силы тока, плотности тока, глубины резания, ширины и диаметра шлифуемого круга. График зависимости доли механического резания при плоском шлифовании периферией круга.
курсовая работа [748,4 K], добавлен 04.11.2013Создание шаблона, проведение операции сортировки и фильтрации. Разработка электронной таблицы, содержащей постоянные значения разных типов; расчеты по формулам и функциям различных типов. Разработка алгоритма и создание макроса для выполнения расчетов.
курсовая работа [589,0 K], добавлен 17.12.2009Техническая характеристика токарного станка с ЧПУ. Выполнение сквозного проектирования обработки детали в системе ADEM, с последующим выходом на станок ЧПУ. Произведение расчета параметров режимов резания. Расчет траектории движения инструмента.
курсовая работа [623,9 K], добавлен 02.06.2017Система контроля и управления доступом на предприятии. Анализ обрабатываемой информации и классификация ИСПДн. Разработка модели угроз безопасности персональных данных при их обработке в информационной системе персональных данных СКУД ОАО "ММЗ".
дипломная работа [84,7 K], добавлен 11.04.2012Сущность элементов режима резания. Анализ эмпирических формул установленных для каждого вида обработки. Характеристика и важность программы Microsoft Access в создании базы данных. Коэффициент изменения периода стойкости при многоинструментной обработке.
курсовая работа [2,0 M], добавлен 25.03.2015Организация рабочего места и создание 2D и 3D чертежей деталей, выполнение статического анализа и выбор материала. Наложение граничных условий и нагружений, оптимизация конструкции детали, ее технологический код и разработка процесса изготовления.
курсовая работа [2,9 M], добавлен 19.09.2010Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.
дипломная работа [1,7 M], добавлен 13.06.2017Построение объемной модели детали в программе "Компас". Порядок расчета твердотельной модели. Подготовка модели к расчету, его параметры и результаты. Работа с деревом прочностного анализа. Проектирование в САМ-системах. Программирование обработки детали.
курсовая работа [4,0 M], добавлен 02.11.2015Методы высшего порядка, применяемые в обработке последовательностей. Функциональная абстракция, трактовка параметров языка. Моделирование обобщенных (generic) типов с помощью абстрактных типов. Повторное использование классов. Автономные компоненты Scala.
курсовая работа [45,6 K], добавлен 24.03.2014Направления развития компьютерного моделирования нормирования труда, уровни укрупнения. Индивидуально-динамическое укрупнённое нормирование. Старение средств автоматизации. Баланс внутреннего и внешнего субъективизма. Жизненные циклы существования модели.
статья [194,2 K], добавлен 29.10.2013