Материал: Проектирование механизмов радиоэлектронных средств. учебное пособие. Андреев А.И., Андреев И.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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