OutTextXY(20,460,'Выход из программы - Esc'); j := i + 330; if j >= 360 then j := j - 360; fi1 := j*pi/180;
bx := l1*cos(fi1); by := l1*sin(fi1); {vbx := - l1*sin(fi1); vby := l1*cos(fi1); abx := - l1*cos(fi1); aby := - l1*sin(fi1);} vbx := - by; vby := bx; abx := - bx; aby := - by;
Diada3v(bx,by,vbx,vby,abx,aby,cx,cy,0,0,0,0,l2,fi3,om3,epsi3,lcb,v3,a3);
dx := cx + lcd*cos(fi3); dy := cy + lcd*sin(fi3); vdx := - lcd*sin(fi3)*om3; vdy := lcd*cos(fi3)*om3; adx := -lcd*(cos(fi3)*sqr(om3) + sin(fi3)*epsi3); ady := lcd*(- sin(fi3)*sqr(om3) + cos(fi3)*epsi3); Diada2v(dx,dy,vdx,vdy,adx,ady,cx,cy,0,0,0,0,fi5,0,0,l4,l5, fi4,om4,epsi4,ecx,v5,a5); {circle(cmx,cmy,3);} CoordXY(cmx,cmy);
Opora(cmx,cmy); OutTextXY(cmx - 10,cmy - 15,'A'); x1 := cmx + round(kl*bx); y1 := cmy - round(kl*by); x3 := x1; y3 := y1;
moveto(cmx,cmy); lineto(x1,y1); circle(x1,y1,3); OutTextXY(x1 - 10,y1 - 15,'B');
x1 := cmx + round(kl*cx); y1 := cmy - round(kl*cy);
Opora(x1,y1);
OutTextXY(x1 - 10,y1 - 15,'C'); moveto(x1,y1);
x2 := x1 + round(kl*l3*cos(fi3)); y2 := y1 - round(kl*l3*sin(fi3)); lineto(x2,y2);
x2 := x1 + round(kl*lcb*cos(fi3)); y2 := y1 - round(kl*lcb*sin(fi3));
PostPara(x2,y2,fi3); line(cmx,cmy,x3,y3); circle(x3,y3,3); x1 := x1 + round(kl*lcd*cos(fi3)); y1 := y1 - round(kl*lcd*sin(fi3)); OutTextXY(x1 - 10,y1 - 15,'D'); circle(x1,y1,3); moveto(x1,y1); x2 := x1 + round(kl*l4*cos(fi4)); y2 := y1 - round(kl*l4*sin(fi4)); PostPara(x2,y2,fi5); Circle(x2,y2,3); line(x1,y1,x2,y2); circle(x2,y2,3); OutTextXY(x2 + 10,y2 - 15,'E'); line(cmx + 50,y2,cmx + 150,y2); if ((i >= 12) and (i < 228)) then
begin
SetColor(red); Fc := 1000; alfafc := 0.0; x1 := x2 + round(kf*Fc); Line(x2,y2,x1,y2);
OutTextXY(x1 - 10,y2 - 15,'Fc');
Moveto(x1,y2); Lineto(x1 - 10,y2 + 5);
Moveto(x1,y2); Lineto(x1 - 10,y2 - 5);
SetColor(white); end else Fc := 0;
x1 := cmx + round(kl*cx); y1 := cmy - round(kl*cy); x2 := x1 + round(kl*lcs3*cos(fi3)); y2 := y1 - round(kl*lcs3*sin(fi3)); OutTextXY(x2 - 15,y2 - 15,'S3'); setcolor(red); line(x2,y2,x2,y2 + round(kf*G3)); x1 := x2; y1 := y2 + round(kf*G3); OutTextXY(x1,y1 + 15,'G3'); moveto(x1,y1); lineto(x1 - 3,y1 - 5); moveto(x1,y1); lineto(x1 + 3,y1 - 5); x1 := cmx + round(kl*cx); y1 := cmy - round(kl*cy); x2 := x1 + round(kl*lcd*cos(fi3)); y2 := y1 - round(kl*lcd*sin(fi3)); x1 := x2 + round(kl*lds4*cos(fi4)); y1 := y2 - round(kl*lds4*sin(fi4)); SetColor(white);
OutTextXY(x1 - 5,y1 - 15,'S4');
SetColor(red);
moveto(x1,y1); lineto(x1,y1 + round(kf*G4)); x2 := x1; y2 := y1 + round(kf*G4); OutTextXY(x2,y2 + 15,'G4'); moveto(x2,y2); lineto(x2 + 3,y2 - 5); moveto(x2,y2); lineto(x2 - 3,y2 - 5); x1 := cmx + round(kl*cx); y1 := cmy - round(kl*cy); x2 := x1 + round(kl*lcd*cos(fi3)); y2 := y1 - round(kl*lcd*sin(fi3)); x2 := x2 + round(kl*l4*cos(fi4)); y2 := y2 - round(kl*l4*sin(fi4)); moveto(x2,y2); lineto(x2,y2 + round(kf*G5)); x1 := x2; y1 := y2 + round(kf*G5); OutTextXY(x1,y1 + 15,'G5'); moveto(x1,y1); lineto(x1 + 3,y1 - 5); moveto(x1,y1); lineto(x1 - 3,y1 - 5); setcolor(white);
{ Определение сил инерции }
{ Сила инерции Fin3 }
as3x := - lcs3*(cos(fi3)*sqr(om3) + sin(fi3)*epsi3); as3y := lcs3*(- sin(fi3)*sqr(om3) + cos(fi3)*epsi3); alfafin3 := Atan2(as3x,as3y) + pi;
if alfafin3 >= 2*pi then alfafin3 := alfafin3 - 2*pi; Fin3 := sqr(om1)*m3*sqrt(sqr(as3x) + sqr(as3y)); x1 := cmx + round(kl*(cx + lcs3*cos(fi3))); y1 := cmy - round(kl*(cy + lcs3*sin(fi3))); moveto(x1,y1);
x2 := x1 + round(kf*Fin3*cos(alfafin3)); y2 := y1 - round(kf*Fin3*sin(alfafin3));
SetColor(blue); lineto(x2,y2); x3 := x2; y3 := y2; { Рисование стрелки }
Row(alfafin3);
{}
Vs3x := - lcs3*om3*sin(fi3); Vs3y := lcs3*om3*cos(fi3);
Vs3 := sqrt(sqr(Vs3x) + sqr(Vs3y)); alfavs3 := Atan2(Vs3x,Vs3y);
if alfavs3 > 2*pi then alfavs3 := alfavs3 - 2*pi;
{}
{ Сила инерции Fin4 }
as4x := adx - lds4*(cos(fi4)*sqr(om4) + sin(fi4)*epsi4); as4y := ady - lds4*(sin(fi4)*sqr(om4) - cos(fi4)*epsi4); Fin4 := sqr(om1)*m4*sqrt(sqr(as4x) + sqr(as4y)); alfafin4 := Atan2(as4x,as4y) + pi;
if alfafin4 >= 2*pi then alfafin4 := alfafin4 - 2*pi; x1 := cmx + round(kl*(cx + lcd*cos(fi3) + lds4*cos(fi4))); y1 := cmy - round(kl*(cy + lcd*sin(fi3) + lds4*sin(fi4))); moveto(x1,y1);
x2 := x1 + round(kf*Fin4*cos(alfafin4)); y2 := y1 - round(kf*Fin4*sin(alfafin4)); lineto(x2,y2); x3 := x2; y3 := y2; { Рисование стрелки }
Row(alfafin4);
{}
Vs4x := Vdx - lds4*om4*sin(fi4); Vs4y := Vdy + lds4*om4*cos(fi4);
Vs4 := sqrt(sqr(Vs4x) + sqr(Vs4y)); alfavs4 := Atan2(Vs4x,Vs4y);
if alfavs4 > 2*pi then alfavs4 := alfavs4 - 2*pi;
{ Сила инерции Fin5 } Fin5 := abs(sqr(om1)*m5*a5); alfafin5 := Atan2(a5,0) + pi;
if alfafin5 >= 2*pi then alfafin5 := alfafin5 - 2*pi; x1 := cmx + round(kl*(cx + ecx)); y1 := cmy - round(kl*cy); x2 := x1 + round(kf*Fin5*cos(alfafin5)); y2 := y1 - round(kf*Fin5*sin(alfafin5)); x3 := x2; y3 := y2;
moveto(x1,y1); lineto(x2,y2); { Рисование стрелки }
Row(alfafin5);
{ Определение моментов от сил инерции }
Momin3 := - sqr(om1)*Is3*epsi3;
Momin4 := - sqr(om1)*Is4*epsi4;
{Procedure Diada2f(l2,fi2,s2x,s2y,p2x,p2y,G2,Fin2,alfafin2,F2,alfaf2,M2,Min2, l3,fi3,s3x,s3y,p3x,p3y,G3,Fin3,alfafin3,F3,alfaf3,M3,Min3: real; var F21, alfaf21,F23,alfaf23,F34,hx: real);}
Diada2f(l4,fi4,lds4,0,0,0,G4,Fin4,alfafin4,0,0,0,Momin4, 0,0,0,0,0,0,G5,Fin5,alfafin5,Fc,0,0,0,F43,alfaf43,F45,alfaf45,F50, alfaf50,hx5);
F34 := F43; alfaf34 := alfaf43 + pi;
if F34 < 0 then begin F34 := abs(F34); alfaf34 := alfaf34 + pi end; if alfaf34 >= 2*pi then alfaf34 := alfaf34 - 2*pi;
{Procedure Diada3f(l2,s2x,s2y,p2x,p2y,G2,Fin2,alfafin2,F2,alfaf2,M2,Min2, l3,fi3,s3x,s3y,p3x,p3y,G3,Fin3,alfafin3,F3,alfaf3,M3,Min3: real; var F34, alfaf34,F32,hx,F21,alfaf21: real);}
Diada3f(0,0,0,0,0,0,0,0,0,0,0,0,lcb,fi3,lcs3,0,lcd,0,G3,Fin3,alfafin3,F34, alfaf34,0,Momin3,F30,alfaf30,F32,alfaf32,hx3,F21,alfaf21); F23 := F32; alfaf23 := alfaf32 + pi;
if alfaf23 >= 2*pi then alfaf23 := alfaf23 - 2*pi; F12 := F21; alfaf12 := alfaf21 + pi;
if F12 < 0 then begin F12 := abs(F12); alfaf12 := alfaf12 + pi end; if alfaf12 >= 2*pi then alfaf12 := alfaf12 - 2*pi; if alfaf30 >= 2*pi then alfaf30 := alfaf30 - 2*pi;
{Procedure InitLink(l1,fi1,F12,alfaf12: real; var Fur,F10,alfaf10: real);} InitLink(l1,fi1,F12,alfaf12,Fur,alfafur,F10,alfaf10);
SetColor(green);
x1 := cmx; y1 := cmy; x2 := x1 + round(kf*F10*cos(alfaf10)); y2 := y1 - round(kf*F10*sin(alfaf10));
x3 := x2; y3 := y2;
moveto(x1,y1); lineto(x3,y3); Row(alfaf10); x1 := cmx + round(kl*cx); y1 := cmy - round(kl*cy); x2 := x1 + round(kf*F30*cos(alfaf30)); x3 := x2; y2 := y1 - round(kf*F30*sin(alfaf30)); y3 := y2; moveto(x1,y1); Lineto(x3,y3); Row(alfaf30); if alfaf50 >= 2*pi then alfaf50 := alfaf50 - 2*pi; x1 := cmx + round(kl*(ecx + hx5)); y1 := cmy - round(kl*cy); x2 := x1 + round(kf*F50*cos(alfaf50)); x3 := x2; y2 := y1 - round(kf*F50*sin(alfaf50)); y3 := y2; moveto(x1,y1); Lineto(x3,y3); Row(alfaf50); x1 := cmx + round(kl*ecx); y1 := cmy - round(kl*cy); x2 := x1 + round(kf*F45*cos(alfaf45)); x3 := x2; y2 := y1 - round(kf*F45*sin(alfaf45)); y3 := y2; moveto(x1,y1); lineto(x3,y3); Row(alfaf45); x1 := cmx + round(kl*lcd*cos(fi3)); y1 := cmy - round(kl*(cy + lcd*sin(fi3))); x2 := x1 + round(kf*F43*cos(alfaf43)); x3 := x2; y2 := y1 - round(kf*F43*sin(alfaf43)); y3 := y2; moveto(x1,y1); lineto(x3,y3); Row(alfaf43); x1 := cmx + round(kl*lcd*cos(fi3)); y1 := cmy - round(kl*(cy + lcd*sin(fi3))); x2 := x1 + round(kf*F34*cos(alfaf34)); x3 := x2; y2 := y1 - round(kf*F34*sin(alfaf34)); y3 := y2; Setcolor(9);
moveto(x1,y1); lineto(x3,y3); Row(alfaf34); Setcolor(green);
x1 := cmx + round(kl*(lcb + hx3)*cos(fi3)); y1 := cmy - round
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.