Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРИЛОЖЕНИЕ ГОТОВОЕ (ПРАВЛЕННОЕ)#1.doc
Скачиваний:
33
Добавлен:
29.03.2015
Размер:
26.99 Mб
Скачать

Алгоритм расчета эвольвентного зубчатого соединения

Пуск

Ввод искомых данных

Вариант, z1,z2,m,,,h*a,c*, aw

Выбор варианта расчета

Если awзадано, тоCALLSS11;

awне задано, тоCALLSS10

Вычисление m1, a1, p1, h, , S0

P1, P2, r1, r2, rb1, rb2, zmin, Xmin1, Xmin2

I=1

Организация цикла по X1, X1H, , Nx

Вычисление размеров передачи и колес aw, y, y, rw, ra, rf, S1, S2, Sa

Вычисление показателей качества зацепления a, , ,,

Печать исходных данных и результатов вычислений

Нет Да

Остановка

Расчет эвольвентного зубчатого зацепления на эвм

(SM 10024,0,65360)

Program zubya;

uses graph, crt, dos;

{Sl tabl2.dll}

{Sl tabl3.dll}

{Sl tabl7.dll}

type zap=record

x1:double;

x2:double;

end;

tab=array [11..48,11..24] of zap;

var

tab4;tab;

zmint,I,zl,z2:integer;

m,beta,alf,ha,c,alf,mt,hat,ct,rl,r2,rbl,rb2,xtminl,

xtmln2:double;

aa,N,h,x1,x2,Y.dy,rw1,rw2,aw,ra1,ra2,alftw,p,rf1,rf2,s1,s2,

alfa1,alfa2,ea,eb,eg:double;

rab1,rab2,rab3,rab4:double;

ch:char;

sr1,sr2:integer;

str(x:20:3,s);

while pos(‘ ‘,s)<>0 do

delete(s,pos(‘ ‘,s),1);

while(s[length(s)]=’O’) do

delete(s,length(s),1);

if s[length(s)]=’.’ Then delete(s,length(s),1);

str2:=s;

end;

begin

zast;

zagr(tab4);

textattr:=14+16;

clrscr;

(Sl-)

textcolor(14);

writeln;

writeln(‘ Расчет зубчатой передачи’);

writeln;

texlcolor(15);

writeln(‘ Ввод исходных данных:’);

writeln;

textcolor(7);

write(‘ Введите число зубьев первого колеса Z1=’); textcolor(12);

textcolor(12); window(44,6,50,6);

repeat

readln(z1);

if(ioresult<>0)or(z1<10)or(z1>25)then begin write(#7);z1:=0; end;

until (z1<>0);

write(z1);

textcolor(7);window(1,7,80,24);

write(‘ Введите число зубьев второго колеса Z2=’);

textcolor(12);window(44,7,50,7);

repeat

readl(z2);

if (ioresult<>0)or(z2>160)then begin write(#7);z2:=0; end;

until z2<>0;

write(z2);

if z2<z1 then

begin

z1:=z1+z2;

z2:=z1-z2;

z1:=z1-z2;

end;

textcolor(7);window(1,8,80,24);

write(‘ Введите модуль m= ‘);

textcolor(12);window(44,8,50,8);

repeat

readln(m);

if (ioresult<>0)or(m<=0)or(m>100)then begin write (#7);m:=0;end;

until m<>0;

write (str2(m) );

textcolor(7);window(1,9,80,24);

beta:=-1;

write(‘ Введите угол наклона зубьев beta= ‘);

textcolor(12);windiw(44,9,50,9);

repeat

readln(beta);

if(ioresult<>0)or(beta>90)or(beta>90)then begin write(#7);beta:=-1;end;

until beta<>-1;

write(str2(beta));

textcolor (7),window(1,9,80,24);

(S1+) (---константы---)

alf:=20;

ha:=1;

c:=0.25;

beta:=beta*3.14/180;

alf:=alf*3.14/180;

alft:=arctan((sin(alf)/cos(alf))/cos(beta));

mt:=m/cos(beta);

hat:=ha*cos(beta);

ct:=c*cos(beta);

zmint:=round(2*hat/sqr(sin(alft)));

if z2/z1>2 then

begin

x2:=tab7[z2 div 5,z1];

x1:=tab2[z1];

end else

begin

x1:=tab4[z2,z1].x1;

x2:=tab4[z2,z1].x2;

end;

r1:=(mt*z2)/2;

r2:=(mt*z2)/2;

rb1:=r1*cos(alft);

rb2:=r2*cos(alft);

rabl:=(x1+x2)*1000/(z1+z2);

rab2:=int(rabl);

rab3:=frac(rabl);

if (rab3<=0.25)then begin rab3:=0;rab4:=0;end

else if (rab3<0.75)then begin rab3:=0.5;rab4:=0;end

else begin rab3:=0;rab4:=1;end;

p:=mt*3.14;

alftw:=tab3[round(2*(rab2+rab3+rab4))]*3.14/180;

Y:=(z1+z2)*((cos(alft)/cos(alftw))-1)/2; {Коэфф. Воспринимаемого смещения}

dY:=(x1+x2)-Y; {Коэфф. Уравнительного смещения}

rwl:=m*z1/2*cos(alft)/cos(alftw); {Радиусы начальных окружностей}

rw2:=m*z2/2* cos(alft)/cos(alftw);

aw:=rw1+rw2; {Межосевое расстояние}

ra1:=mt*(z1/2+hat+x1-dY); {Радиусы окружностей вершин}

ra2:=mt*(z2/2+hat+x2-dY);

rf1:=r1-mt*(hat+ct-x1); {Радиусы окружностей впадин}

rf2:=r2-mt*(hat+ct-x2);

h:=mt*(2*hat+ct-dY); {Высота зуба}

s1:=mt*(3.14/2+2*x1*(sin(alft)/cos(alft))); {Толщина зубьев по делит. окр.}

s2:=mt*(3.14/2+2*x2*(sin(alft)/cos(alft)));

alfa1:=arctan(sqrt(1-sqr(rb1/ra1))/(rb1/ra1));

alfa2:= arctan(sqrt(1-sqr(rb2/ra2))/(rb2/ra2));

{Коэффициенты перекрытия зубчатой передачи}

ea:=(z1*(sin(alfa1)/cos(alfa1)-

sin(alftw)/cos(alftw))+z2*(sin(alfa2)/cos(alfa2)-

sin(alfaw)/cos(alftw)))/2*3.14;

eb:=0.25*aw*(sin(bea)/cos(beta))/(3.14*mt);

eg:=ea+eb;

alftw:=alftw*180/3.14;

beta:=round(beta*180/3.14);

sr2:=registerbgifont(addr(littdrv));

ingrahp;

settextjustify(1,1);

exec(‘pcxshow.exe’,’zubya.dat /g /k /q’);

SetTextStyle(sr2,0,4); {2}

setcolor(1);

settextjustify(0,1);

outtextxy(450,70,’Число зубьев первого’);

outtextxy(517,80,’колеса Z1=’+str1(z1));

outtextxy(450,100,’Число зубьев второго’);

outtextxy(517,110,’колеса Z2=’+str1(z2));

outtextxy(450,130,’Модуль m=’+str1(m));

outtextxy(450,150,’Угол наклона зубьев beta=’+str1(beta));

outtextxy(350,040,’Z2’);

outtextxy(350,440,’Z1’);

settextjustify(1,1);

outtextxy(255,340,’R1=’+str1(r1));

settextjustify(0,1);

outtextxy(140,150,’R2=’+str1(r2));

outtextxy(325,380,’Rw1=’+str1(rw1));

outtextxy(295,130,’Rw2=’+str1(rw2));

settextjustify(3,1);

outtextxy(275,357,’Ra1=’+str1(ra1));

outtextxy(245,150,’Ra2=’+str1(ra2));

settextjustify(1,1);

outtextxy(040,240,’Aw=’+str1(aw));

outtextxy(155,350,’Rf1=’+str1(rf1));

settextjustify(0,1);

outtextxy(090,100,’Rf2=’+str1(rf2));

settextjustify(3,1);

outtextxy(190,285,’S1=’+str1(s1));

outtextxy(220,175,’S2=’+str1(s2));

settextjustify(0,1);

outtextxy(127,305,’Alftw=’+str1(Alftw));

outtextxy(385,240,’H=’+str1(h));

SetTextStyle(sr2,0,4); {2}

setcolor(1);

settextjustify(0,1);

outtextxy(450,220,’Торцевой модуль mt=’+str1(mt));

outtextxy(450,240,’Шаг зацепления P=’+str1(p));

outtextxy(450,300,’Минимальное количество’);

outtextxy(450,310,’ зубьев Zmin=’+str1(zmint));

outtextxy(450,330,’Коэффициент воспринимаемого’);

outtextxy(450,340,’ смещения dY=’+str1(dY));

outtextxy(450,390,’Коэффициенты перекрытия’);

outtextxy(517,400,’зубчатой передачи:’);

outtextxy(520,420,’Ealf=’+str1(Ea));

outtextxy(520,435,’Ebeta=’+str1(Eb));

outtextxy(520,450,’Egamma=’+str1(Eg));

outtextxy(450,260,’Коэффициент смещения X1=’+str2(X1));

outtextxy {450,280, ‘Коэффициент смещения X2=’+str2(X2)};

SetTextStyle(6,0,1);

setcolor(5);

outtextxy (430,195, ‘Результаты вычислений:’);

outtextxy (430,40, ‘Исходные данные:’);

outtextxy (200,470, ‘Для выхода нажмите любую клавишу’);

while keypressed do ch:=readkey;

i:=3;

repeat

setcolor(i);

line(458,474,465,474);

delay(2000);

if i=3 then i:=0

else i:=3;

until keypressed;

ch:=readkey;

closegraph;

end.