trunc(d1[1]/2));
circle(x_center[2],trunc(getmaxy/2),
trunc(d1[2]/2));
outtextxy(180,50,'Это-окружность выступов');
repeat until keypressed;
key:=readkey; setcolor(green);
circle(x_center[1],trunc(getmaxy/2),
trunc(d2[1]/2));
circle(x_center[2],trunc(getmaxy/2),
trunc(d2[2]/2));
outtextxy(165,70,'Это-окружность впадин');
repeat until keypressed;
key:=readkey;
setcolor(CYAN);
circle(x_center[1],trunc(getmaxy/2),
trunc(d[1]/2));
circle(x_center[2],trunc(getmaxy/2), trunc(d[2]/2));
outtextxy(135,90,'А это-делительная');
outtextxy(230,110,'окружность');
repeat until keypressed;
key:=readkey;
settextjustify(0,2); setcolor(magenta);
outtextxy(15,270,'Окружности впадин и выступов очерчивают нижнюю');
outtextxy(15,290,'и верхнюю границы зуба.
Делительная окружность');
outtextxy(15,310,'разделяет зуб на две части - головку и ножку. Очевидно,');
outtextxy(15,330,'что высота зуба равна сумме высот ножки и головки.');
repeat until keypressed;
key:=readkey;
clearviewport;
end;
procedure point_2;
label 4;
var
p,d,m,h,aw,b1,ha,hf,ha1,c,pci,i,u,re,rm,me,dl1,dl2,
de1,de2,he,dae1,dae2,b,q,d1,da1,df1,d2,da2,df2,hf1,
dn,kn,b2,ham:real;
z,z1,z2,n,n1,rec,otv1:integer;
a,da,df:array[1..18] of real;
w:array[1..17] of real;
procedure pryam;
begin clrscr;
write('Введите шаг[мм] зубчатого колеса - ');
readln(p);
m:=p/pi; clrscr;
writeln('ряд 1: 0.1; 0.12; 0.15; 0.2; 0.25; 0.3; 0.4; 0.5;');
writeln(' 0.6; 0.8 ; 1.0 ; 1.25; 1.5; 2.0; 2.5; 3.0;');
writeln(' 4.0; 5.0');writeln;
writeln('ряд 2: 0.14; 0.18; 0.22; 0.28; 0.35; 0.45; 0.55; 0.7;');
writeln(' 0.9 ; 1.125; 1.375; 1.75; 2.25; 2.75; 3.5; 4.5;');
writeln(' 5.5; 6.0');writeln;
writeln('Вычесленное значение модуля m[мм]= ',m:5:3);writeln;
writeln('Выберете стандартный модуль ');
write('используя ряд 1 или ряд 2 -');
readln(m);writeln;
ha1:=1; c:=0.25;
write('Введите число зубчатых колес - ');
readln(n);
n1:=1; i:=1.0; clrscr;
repeat
write('Введите число зубьев ',n1,'-го колеса-');
readln(z);
d:=m*z;
a[n1]:=d;
writeln('Делительный диаметр ',n1,'-го колеса d[мм] = ',d:5:2);
writeln;
if n1>1 then i:=i*a[n1]/a[n1-1]*(-1);
n1:=n1+1;
until n1>n;
writeln('Для продолжения нажмите любую клавишу');
repeat until keypressed;clrscr;
writeln('Значение передаточного отношения i=',i:6:3);
if i<0 then u:=i*(-1) else u:=i;
ha:=ha1*m;
hf:=(ha1+c)*m;
h:=ha+hf;
writeln('Высота зуба h[мм] = ',h:5:2);
n1:=1;
repeat
da[n1]:=a[n1]+2*ha1*m;
writeln('Значение диаметра вершины зубьев',n1,'-го колеса da[мм] = ',da[n1]:5:2);
df[n1]:=a[n1]-2*(ha1+c)*m;
writeln('Значение диаметра впадин df[мм] = ',df[n1]:5:2);
n1:=n1+1;
until n1>n;
n1:=1;
repeat
aw:=0.5*(a[n1]+a[n1+1]);
write('Значение межосевого расстояния',n1,'-й зубчатой пары ');
writeln('aw[мм]=',aw:6:2);
n1:=n1+1;
until n1=n;
writeln('Определение ширины зубчатого венца--');
writeln('! Выбор коффициента pciba !');
writeln('--------------------------------------------------');
writeln('! 0.01-0.1 ! Кинематические и легконагруженные передачи !');
writeln('--------------------------------------------------');
writeln('! 0.1-0.25 ! Легко и средненагруженные передачи !');
writeln('--------------------------------------------------');
writeln('! 0.25-0.40 ! Зубчатые педачи при повышенной жесткости валов !');
writeln('--------------------------------------------------');
write('Выберите значение коэффициента pciba= ');
readln(pci);
b1:=aw*pci;
writeln('Ширина венца зубчатого колеса b[мм]=',b1:5:2);
end;
procedure kosoz;
begin
write('Введите шаг[мм] зубчатого колеса - ');
readln(p);
write('Введите число зубьев 1-го колеса-');
readln(z1);
write('Введите число зубьев 2-го колеса-');
readln(z2);
clrscr;
me:=p/pi;
re:=0.5*me*sqrt(sqr(z1)+sqr(z2));
writeln('Значение внешнего конусного расстояния re[мм] = ',re:7:4);
writeln;
b:=0.3*re;
rm:=re-0.5*b;
writeln('Значение среднего конусного расстояния rm[мм] = ',rm:7:4);
writeln;
dl1:=arctan(z1/z2);
dl2:=pi/2-dl1;
writeln('Углы делительных конусов:');
writeln(' dl1[рад] = ',dl1:7:4);
writeln(' dl2[рад] = ',dl2:7:4);writeln;
de1:=me*z1;
de2:=me*z2;
writeln('Внешний делительный диаметр :');
writeln(' de1[мм] = ',de1:7:4);
writeln(' de2[мм] = ',de2:7:4);
writeln;
ha1:=1;
ha:=ha1*me;
dae1:=de1+2*ha*cos(dl1);
dae2:=de2+2*ha*cos(dl2);
writeln('Внешний диаметр вершин :');
writeln(' dae1[мм] = ',dae1:7:4);
writeln(' dae2[мм] = ',dae2:7:4);
writeln;
c:=0.2;
he:=(2*ha1+c)*me;
writeln('Внешняя высота зуба he[мм] = ',he:7:4);writeln;
b:=sqrt(re*re-sqr(de1/2));
writeln('Расчетное расстояние b[мм] = ',b:7:4);writeln;
u:=z2/z1;
writeln('Передаточное число в конической передаче u = ',u:7:4);
end;
procedure cherv;
begin
clrscr;
write('Введите шаг[мм] = ');
readln(p);clrscr;
m:=p/pi;
writeln('Значение модуля зацепления в осевом сечении червяка m =',m:6:3);
writeln('ряд 1: 0.10; 0.125; 0.16; 0.2; 0.25; 0.315; 0.4; 0.5;');
writeln(' 0.63; 0.8 ; 1.0 ; 1.25; 1.6; 2.0; 2.5; 3.15;');
writeln(' 4.0; 5.0');writeln;
writeln('ряд 2: 0.12; 0.15; 0.3; 0.6;1.5;3.0;3.5;4.0;5.0;');writeln;
writeln('Вычесленное значение модуля m[мм]= ',m:5:3);writeln;
writeln('Выберете стандартный модуль ');
write('используя ряд 1 или ряд 2 -');
readln(m);
write('Введите число зубьев колеса =');
readln(z2);
write('Введите число витков червяка =');
readln(z1);
writeln(' Табл.1 ');
writeln('------------------------------------------------------');
writeln('! m ! q ! z1 !');
writeln('------------------------------------------------------');
writeln('! 1.0 ! 16 ! 1 !');
writeln('! ! 20 ! 1;2;4 !');
writeln('------------------------------------------------------');
writeln('! 1.25 ! 12.5;16;20 ! 1;2;4 !');
writeln('------------------------------------------------------');
writeln('! 1.6 ! 10;12.5;16;20 ! 1;2;4 !');
writeln('------------------------------------------------------');
writeln('! 2.0;2.5;3.15 ! 8;10;12.5;16 ! 1;2;4 !');
writeln('! ! 20 ! !');
writeln('------------------------------------------------------');
writeln('Выберете коэффициенты диаметра червяка q из табл.1');
writeln('в соответствии с модулем m и z1 ');
write('q = ');
readln(q);clrscr;
ha1:=1.0; c:=0.2;
hf1:=ha1+c;
d1:=m*q;
da1:=d1+2*ha1*m;
df1:=d1-2*(ha1+c)*m;
writeln('Значение делительного диаметра червяка d1[мм] = ',d1:8:3);
writeln('Значение диаметра вершин червяка da1[мм] = ',da1:8:3);
writeln('Значение диаметра впадин червяка 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,yf1,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;
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);