Разработка технологического процесса механической обработки детали «Корона» автоматической восьмипозиционной головки УГ936 (Исследовательский раздел дипломного проекта), страница 5

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]);