|
ug渐开线直齿轮C方程序如下:
/* HELLO.C -- Hello, world */
#include "stdio.h" #include "math.h" struct jkx_type { float x; float y; float zz; } jkx[6];
/*x=r(cos(theta)+theta*sin(theta))
y=r(sin(theta)-theta*cos(theta))
x=r(cost+tsint),y=r(sint-tcost) */
main() { FILE *fp; int i; float j=0,z,m,rb,u,a; char * filename; printf("%s\n","filename"); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("error!"); exit(0); } printf("%s\n","m="); scanf("%f",&m);
printf("%s\n","z="); scanf("%f",&z);
printf("%s\n","a="); scanf("%f",&a);
a=(a/180)*3.1415926; rb=0.5*m*z*cos(a);
for(i=0;i<6;i++) { u=(j/180)*3.1415926;
jkx[i].x=rb*(sin(u)-u*cos(u)); jkx[i].y=rb*(cos(u)+u*sin(u)); jkx[i].zz=0; fprintf(fp,"%f %f %f ",jkx[i].x,jkx[i].y,jkx[i].zz); fprintf(fp,"\n"); printf("%f %f %f \n",jkx[i].x,jkx[i].y,jkx[i].zz); j=j+10; } fclose(fp);
getch(); }
/* a=0 b=360 m=0.7 r=m*z*cos(20)/2 s=(1-t)*a+t*b t=1 xt=r*cos(s)+r*rad(s)*sin(s) yt=r*sin(s)-r*rad(s)*cos(s) z=15 zt=0 */
|