k2Pzt:array [1..3,1..4] of real=(
(0,-10,0,10),
(100,1.2,1.1,1),
(200,1.1,1,0.9));
Nstank:array [1..22] of real=(12.5,16,20,25,31.5,40,50,63,80,100,125,160,200,250,315,400,500,630,800,1000,1250,1600);
Sstank:array [1..22] of real=(0.05,0.06,0.075,0.09,0.1,0.125,0.15,0.175,0.2,0.25,0.3,0.35,0.4,0.5,0.6,0.7,0.8,1,1.6,2,2.4,2.8);
Type
TipT=array [1..50,1..50] of real;
VAR
Lr,F,TT,Yv,Yp,Lrx,Ts,Ld,So,Sop,Tp,V,Pz,Nrez,nchastp,Too:array[1..20] of real;
Sx:array [1..10] of integer; ipz,jpz,m,i,mats,r,vidt,a,b,c,d,ik,j,k,l,Ni,za,mat,matI,tiptoch,fi,Mmat,vidtoch,gamma,matk1:integer;
Lym,k1,k2,k3,Vtab,t,ToSumm,nchast,dst,HB,k1Pz,k2Pz,d0:real;
Vt2,k2t:TipT;
FUNCTION POISK (rpk:real;Xpk:array of real;ppk:integer):integer;
Var
kpk,lpk:integer;
Begin
for kpk:=0 to ppk-1 do
if rpk<=Xpk[kpk] then
begin
lpk:=kpk;
kpk:=ppk-1;
end;
POISK:=lpk+1;
End;
function PVSto:integer;
var
w:byte;
begin
for w:=3 to 16 do if (Vt[1,w]=mat) and (Vt[2,w]=matI) and (fi<=Vt[3,w]) then
begin
PVSto:=w;
w:=16;
end;
end;
function PVStr:integer;
var
q:byte;
begin
for q:=4 to 21 do if (t<=Vt[q,1]) and (So[i]<=Vt[q,2]) then
begin
PVStr:=q;
q:=21;
end;
end;
function PSto(Mas:TipT;par:real;kst:integer):integer;
var
w:byte;
begin
for w:=3 to kst do if (par<=Mas[1,w]) then
begin
PSto:=w;
w:=kst;
end;
end;
function PStr(Mas:TipT;par1,par2:real;kstr:integer):integer;
var
q:byte;
begin
for q:=2 to kstr do if (par1=Mas[q,1]) and (par2=Mas[q,2]) then
begin
PStr:=q;
q:=kstr;
end;
end;
function k3t:real;
var
d1,d2:real;
prez,vido,otn:byte;
begin
Writeln('введите вид точения:');
Writeln('1 - точение (растачивание), 2 - поперечное точение, 3 - фасонное');
readln(vidtoch);
case vidtoch of
1: begin
write('введите диаметр точения (растачивания), d=');
readln(d0);
if d0>=75 then k3t:=1 else k3t:=0.85;
end;
2: begin
writeln('введите диаметры начального и конечного точения, d2 и d3:');
readln(d2,d1);
if d2<d1 then otn:=round(d2/d1*10) else otn:=round(d1/d2*10);
case otn of
0..4 : k3t:=1.35;
5..7 : k3t:=1.2;
8..10 : k3t:=1.05;
end;
end;
3: begin
writeln('введите вид точения: 1 - предварительное, 2 - чистовое');
readln(vido);
writeln('введите профиль резца:1 - простой, 2 - глубокий и сложный');
Readln(Prez);
k3t:=ft[Prez,vido];
end;
end;
end;
Function k1t:real;
var
s,w,e:integer;
begin
if i=1 then
begin
case mat of
2: matk1:=11;
3: matk1:=12
else If mat<>4 then
begin
Writeln('Введите марку материала:');
writeln('1 - Сталь 10,15,20,25,30,35,40,45,50');
writeln('2 - Сталь 15Х,20Х,30Х,35Х,38Х,40Х');
writeln('3 - Сталь 45Г2,50Г');
writeln('4 - Сталь 12Х2Н3А');
writeln('5 - Сталь 12Х2Н4А');
writeln('6 - Сталь 20ХНМ');
writeln('7 - Сталь 40ХНМА');
writeln('8 - Сталь 35ХГС');
writeln('9 - Сталь 18ХГТ');
writeln('10 - Сталь 30ХГТ,25ХГТ');
Readln(matk1);
end;
end;
writeln('Твердость обрабатываемого материала по Бринелю:');
write('HB=');
readln(HB);
end;
s:=matI;
If (mat=2) or (mat=3) then begin
writeln('Условия обработки:1 - без корки, 2 - по корке');
readln(s);
end;
for w:=2 to 33 do if (k1tc[1,w]=matk1) and (HB<=k1tc[2,w]) and (HB>=k1tc[3,w]) then
begin e:=w; w:=33; end;
k1t:=k1tc[s+3,e];
If mat=4 then k1t:=1.1;
end;
Procedure ViB_V;
Begin
Writeln('Введите марку материал инструмента:');
If (mat=1) or (mat=4) then Writeln('1 - быстрорежущая сталь,');
if (mat=1) then writeln('2 - T15K6, 3 - T14K8,4 - T5K10,');
If (mat=2) or (mat=3) then Writeln('5 - BK3M,BK2 , 6 - BK4,BK6 , 7 - BK8.');
If (mat=4) then Writeln('6 - BK4,BK6.');
readln(Mmat);
case Mmat of
1 : mati:=1;
2..7: mati:=2;
end;
Writeln('Тип точения:');
Writeln('1 - точение проходными, подрезными и расточными резцами,');
Writeln('2 - точение фасонными, прорезными, отрезными и широкими резцами');
Readln(tiptoch);
case tiptoch of
1:Vtab:=Vt[PVStr,PVSto];
2:Vtab:=Vt2[PStr(Vt2,mat,matI,5),PSto(Vt2,So[i],12)];
end;
End;
BEGIN
clrscr;
For i:=1 to 50 do
For j:=1 to 50 do
begin
Vt2[i,j]:=Vt2c[i,j];
k2t[i,j]:=k2tc[i,j];
end;
write('введите материал заготовки: 1 - сталь, 2 - чугун серый, 3 - чугун ковкий и прочный,');
writeln(' 4 - алюминиевые сплавы,5 - силумин');
readln(mat);
case mat of
1: mats:=1;
2: mats:=2;
3: mats:=2;
4: mats:=4;
5: mats:=3;
end;
writeln('введите количество ступеней');
readln(m);
for i:=1 to m do
begin
writeln('введите длину резания ',i,'-ой ступени');
readln(Lr[i]);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.