Планетарный редуктор (прога подбора зубьев).

Посмотреть архив целиком
#include "stdafx.h"
#include "conio.h"
#include"math.h"
#include"stdio.h"
using namespace System;
int Assemb(int z1, int z2, int z3, int z4) //Условие сборки
{
double P=0;
double U1h=1-((double)z3*(double)z4)/((double)z1*(double)z2);
double k=3;
double B=0.1;
int Pr=B*10000;
while ((Pr % 10000 != 0)&&(P<1000))
{
P++;
B=(1+P*k)*(double)z1*U1h/k;
Pr=B*10000;
}
if (Pr%10000==0)
return 0;
else return 1;
}
int Coax(int z1, int z2, int z3, int z4) //Условие соосности
{
double rw1=(double)z1/2, rw2=(double)z2/2, rw3=(double)z3/2, rw4=(double)z4/2;
double a=rw1+rw3, b=rw4+rw2;
if((a==b)&&(z1>17)&&(z3>17))
return 0;
else return 1;
}
int Neigh(int z1, int z2, int z3) //Условие соседства
{
double k=3;
if(sin(3.1415926/k)>(((double)z2+2)/((double)z1+(double)z3)))
return 0;
else return 1;
}
int Precis(int z1, int z2, int z3, int z4) //Условие точности
{
double U1h=1-((double)z3*(double)z4)/((double)z1*(double)z2);
if((17*0.95 return 0;
else return 1;
}

int main(array ^args)
{
int z1=17, z2=18, z3=18, z4=18;
int Z1=0,Z2=0,Z3=0,Z4=800;
int fl=0,proc=0;
printf("\rIn progress, %d%%", proc);
while(z4<100)
{
while(Assemb(z1,z2,z3,z4)||Coax(z1,z2,z3,z4)||Neigh(z1,z2,z3)||Precis(z1,z2,z3,z4)||fl)
{
fl=0;
if(z1<100)
{
z1++;
continue;
}
if(z2<100)
{
z1=17;
z2++;
continue;
}
if(z3<100)
{
z1=17;
z2=20;
z3++;
continue;
}
if(z4<100)
{
z1=17;
z2=20;
z3=17;
z4++;
proc++;
printf("\rIn progress, %d%%", proc);
continue;
}
break;
}
if(z4+z2+z3 {
Z1=z1; Z2=z2; Z3=z3; Z4=z4;
}
fl=1;
}
double U1h=1-((double)Z3*(double)Z4)/((double)Z1*(double)Z2);
printf("\nNumbers of teeth: \n z1 = %u; \n z2 = %u; \n z3 = %u; \n z4 = %u; \n U1h = %f;", Z1,Z2,Z3,Z4,U1h);
getch();
return 0;
}





Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.