Методическое пособие 527
.pdfwriteln('Значение диаметра впадин червяка df1[мм] = ',df1:8:3);
writeln;
if (z1=1)or(z1=2) then b1:=(11+0.06*z2)*m else
b1:=(12.5+0.09*z2)*m;
writeln('Значение длины нарезанной части червяка b1[мм] = ',b1:8:3);
writeln('Угол обхвата червяка колесом
2*delta=70...120');
writeln('Угол зацепления aw=20');writeln; d2:=m*z2;
da2:=m*(z2+2); df2:=m*(z2-2.4);
if z1=1 then kn:=2*m; if z1=2 then kn:=1.5*m
else kn:=m; dn:=da2+kn;
writeln('Значение делительного диаметра колеса d2[мм] = ',d2:8:3);
writeln('Значение диаметра вершин колеса da2[мм] = ',da2:8:3);
writeln('Значение диаметра впадин колеса df2[мм] = ',df2:8:3);
writeln('Значение начального диаметра колеса dn[мм] = ',dn:8:3);
b2:=0.75*da1;
writeln('Ширина венца зубчатого колеса b[мм]=',b2:5:2);
ham:=arctan(m*z1/d1); writeln('Значение делительного угла
подъема винтовой линии gamma[рад] =
',ham:5:3);
aw:=0.5*m*(z2+q);
writeln('Значение межосевого расстояния aw = ',aw:8:3);
i:=z2/z1;
writeln('Значение передаточного отношения i=',i:6:3);
end; begin
closegraph;
4:clrscr;
writeln('Выберете тип передачи (1- прямозубая;2-косозубая;3-червячная)');
read(rec); case rec of 1:pryam; 2:kosoz; 3:cherv;
end;
writeln('Для продолжения нажмите любую клавишу');
repeat until keypressed;clrscr; writeln('Желаете ли продолжить работу с
программой ? [1=да/2=нет]'); read(otv1);
if otv1=1 then goto 4; initgraph(gd,gm,'c:\tp\bgi');
exit end;
procedure point_3; label 1;
var i,z1,z2,x,z:integer;
g,c,s,d,u,t,e1,e2,f,f1,x1,amod2,amod3,zs,
kfs,kfl,yf,signfs,
signfa,signf0,sf,b1,b2,sh,sh1,aw,signh,yf
1,yf2,s1,s2,sn,
l,kb1,kb2,ep,sg,a1,a,amod,amod1:real;
ff:text;
w:array[1..35] of real; w1:array[1..11] of real;
q,kb,nh,siga,sign,sigb,sig:array[1..2] of
real;
procedure delw; var i:integer;
begin
for i:=1 to 35 do w[i]:=0; end;
begin closegraph;
1:clrscr;textbackground(1);clrscr; write('Введите тип материала колеса (1-
сталь;2-бронза;3-латунь) '); readln(x);
write('Введите коэффициент динамической нагрузки g = ');
readln(g);
write('Введите коэффициент динамичности внешней нагрузки c = ');
readln(c);
write('Введите коэффициент неравномерности нагрузки по длине зуба s = ');
readln(s);
write('Введите коэффициент длины зуба pciba = ');
readln(d);
write('Введите передаточное число u =
');
readln(u);
write('Введите крутящий момент на шестерне t = ');
readln(t);
write('Введите модуль упругости материала шестерни e1 = ');
readln(e1);
write('Введите модуль упругости материала колеса e2 = ');
readln(e2);
writeln('Введите число оборотов зубчатых колес q1,q2 ');
readln(q[1]);
readln(q[2]);
write('Введите срок службы зацепления l
= ');
readln(l);
write('Введите значение твердости шестерни kb1 = ');
readln(kb[1]);
write('Введите значение твердости колеса kb2 = ');
readln(kb[2]);
write('Введите допускаемый коэффициент безопасности sh = ');
readln(sh);
write('Введите допускаемый коэффициент безопасности для изгиба sh1 = ');
readln(sh1);
for i:=1 to 2 do begin nh[i]:=60*l*q[i]; sigb[i]:=(2*kb[i]+70)/sh;
if x=1 then x1:=2 else x1:=1.2; siga[i]:=x1*sigb[i]; f:=0.0012*sqr(sqr(kb[i]))/nh[i];
if x=1 then f1:=1/6;
if (x=2)or(x=3) then f1:=1/8; sign[i]:=sigb[i]*exp(f1*ln(f)); sig[i]:=sign[i];
if siga[i]<sign[i] then sig[i]:=siga[i];
if sigb[i]>sign[i] then sig[i]:=sigb[i];
end;
sg:=sig[1];
if sig[2]<sig[1] then sg:=sig[2]; ep:=2.0*e1*e2/(e1+e2); f1:=(t*g*c*s*ep)/(sqr(sg)*d*u); a1:=0.82*(u+1.0)*exp((1/3)*ln(f1)); assign(ff,'mechan3.dat'); reset(ff);
i:=1;
while not eoln(ff) do begin read(ff,w[i]);
i:=i+1;
end;close(ff);i:=1; repeat
i:=i+1;
aw:=w[i];
until w[i]>=a1;delw; sf:=1.75;kfs:=1;kfl:=1;
if kb[1]>kb[2] then signf0:=1.8*kb[2] else signf0:=1.8*kb[1];
signfa:=(signf0/sf)*kfs*kfl;
b2:=d*aw;b1:=1.12*b2;
amod2:=6.8*t*(u+1)/(u*a1*b1*signfa);
assign(ff,'mechan.dat');
reset(ff);
i:=1;
while not eoln(ff) do
begin read(ff,w[i]); i:=i+1; end;close(ff);
i:=0; repeat
i:=i+1;
amod:=w[i];
until w[i]>=trunc(amod2*10)/10;delw; writeln;
zs:=2*aw/amod;
z1:=trunc(zs/(u+1)); z2:=trunc(zs-z1);
signh:=310/(aw*u)*sqrt(t*1.2*(u+1)*sqr(u+1)/b2
);
writeln('siga1[МПа] = ',siga[1]:6:1); writeln('siga2[МПа] = ',siga[2]:6:1); writeln('sigb1[МПа] = ',sigb[1]:6:1); writeln('sigb2[МПа] = ',sigb[2]:6:1); writeln('signfa[МПа] = ',signfa:6:1); writeln('Стандартное значение модуля
amod = ',amod:5:3); writeln('Приблеженное межосевое
расстояние a1 = ',a1:8:4);
writeln('Точное межосевое расстояние a =
',aw:8:4);
writeln('Расчетное контактное напряжение signh = ',signh:6:1);
assign(ff,'mechan1.dat');
reset(ff);
i:=1;
while not eoln(ff) do begin
read(ff,w[i]);
i:=i+1;
end;close(ff);
assign(ff,'mechan2.dat');
reset(ff);
i:=1;
while not eoln(ff) do begin
read(ff,w1[i]);
i:=i+1;
end;close(ff);
i:=0; repeat
i:=i+1;if i<>11 then begin
if z1=w[i] then yf1:=w1[i];
if z2=w[i] then yf2:=w1[i];end;
if (z1>w[i])and(z1<w[i+1])and(i<=10) then yf1:=(w1[i]+w1[i+1])/2;
if (z2>w[i])and(z2<w[i+1])and(i<=10) then yf2:=(w1[i]+w1[i+1])/2;
if z1>100 then yf1:=3.6; if z2>100 then yf2:=3.6;
until i>10; s1:=1.8*kb[1]/1.75/yf1; s2:=1.8*kb[2]/1.75/yf2; sn:=s1;
yf:=yf2;
if s1>s2 then begin sn:=s2;yf:=yf1;end; if z1>z2 then z:=z2 else z:=z1; signfs:=yf*(2*t/(amod*z)/(b2*amod))*1.4; writeln('Прочность зубьев на изгиб
signf2[МПа] = ' ,signfs:6:1);textbackground(black);
repeat until keypressed; initgraph(gm,gd,'c:\tp\bgi'); end;
procedure point_4_1;
var f_n,f_tr,z1,z2,n:real; begin
closegraph;
clrscr;
writeln('Введите нормальную нагрузку в зацеплении зубчатых колес Fn[H]=');
gotoxy(63,1); read(f_n);
writeln('Введите коэффициент трения скольжения в зацеплении fтр=');
gotoxy(56,2); read(f_tr);
writeln('Введите число зубьев первого колеса z1=');
gotoxy(40,3);
readln(z1);
writeln('Введите число зубьев второго колеса z2=');
gotoxy(40,4);
readln(z2);
writeln;
writeln('Дай подумать...'); delay(20);
writeln('Так вот оно что...'); delay(20);
writeln; n:=1-
(f_n+3)*f_tr*3.14*(1/z1+1/z2)/(f_n+0.18); writeln('КПД механизма равен ',n); repeat until keypressed; initgraph(gd,gm,'c:\tp\bgi');
end;
procedure point_4_2; var b,ro,n:real; begin
closegraph;
clrscr;
writeln('Введите угол наклона зубьев ведомого колеса бета2=');
gotoxy(51,1);
read(b);
b:=b*3.14/180;
writeln('Введите приведенный угол трения в зацеплении ro=');
gotoxy(50,2);
read(ro);
ro:=ro*3.14/180;
writeln;
n:=0.95*sin(b)*cos(b+ro)/(cos(b)*sin(b+ro)); writeln('КПД механизма равен ',n);
repeat until keypressed; initgraph(gd,gm,'c:\tp\bgi'); end;
procedure point_4_3;
var z,d,m,ro,tangent,ang,n:real; begin
closegraph;
clrscr;
writeln('Введите число витков червяка z='); gotoxy(32,1);
read(z);
writeln('Введите диаметр червяка d='); gotoxy(28,2);
read(d);
writeln('Введите модуль передачи m=');
gotoxy(28,3);
read(m);
writeln('Введите приведенный угол трения в зацеплении ro=');
gotoxy(49,4);
read(ro);
ro:=ro*3.14/180;
tangent:=z*m/d;
ang:=arctan(tangent);
n:=0.95*tangent*cos(ang+ro)/sin(ang+ro); writeln('КПД механизма равен ',n); repeat until keypressed; initgraph(gd,gm,'c:\tp\bgi');
end;
procedure point_4; label 1;
begin
1:clearviewport;
settextjustify(1,1);
setbkcolor(darkgray);
setcolor(white);
box(163,28,470,75,magenta);
settextstyle(1,0,1); outtextxy(320,50,'Выбор типа передачи'); box(180,140,460,230,cyan); settextjustify(0,1); outtextxy(200,160,'1. Прямозубая'); outtextxy(200,180,'2. Косозубая'); outtextxy(200,200,'3. Червячная'); repeat until keypressed;
key:=readkey; case key of '1':point_4_1; '2':point_4_2;