渐开线方程

  • 格式:doc
  • 大小:259.50 KB
  • 文档页数:3

渐开线方程
1.渐开线的已知数据,如图3.3所示.
(1)XO、YO—基圆圆心坐标
(2)R—基圆半径
(3)THETA—绘制曲线的张角
(4)N—绘制曲线的分割数
2.计算方法
渐开线上任一点的坐标(x,y)可以用基圆半径的旋转角t为参数的方程来表达,转角增量dt可由下式求得;dt=THETA/FLOAT(N),根据渐开线的性质:切线长=基圆上所对的弧长,即:PC=R*t
动点P的坐标为
X=Xc+PC×sin(t)
Y=Yc-PC×cos(t)
而Xc=X0+R×cos(t)
Yc=Y0+R×sin(t)
所以,渐开线的参数方程为:
X= X0+R(cos(t)+tsin(t))
Y= Y0+R(sin(t)-tcos(t))
参数方程一
r=655.3809/2
x=r*cos(t)+r*t*sin(t)
y=r*sin(t)-r*t*cos(t)
z=0
参数方程二
m =6
Z1 =24
Xn =0.4524
btl=9.25*pi/180
alfa = 20.0*PI/180.0
D1 = m*Z1/cos(btl)
rb1 = D1*cos(alfa)/2.0
X1 = rb1*(cos(u)+u*sin(u))
Y1 = rb1*(sin(u)-u*cos(u))
S1 = PI*m/2.0+2.0*m*Xn*tan(alfa)
Sb1 = cos(alfa)*(S1+m*Z1*(tan(alfa)-alfa))
Thi = Sb1/(2.0*rb1)
X = X1*cos(Thi)+Y1*sin(Thi)
Y =X1*sin(Thi)-Y1*cos(Thi)
Z = 0.0
3.渐开线的子程序
(1)不同位置起始点的处理
在绘制齿形曲线时,渐开线的起始点不一定在X轴上。

此时,只要在子程序设计中增加一个形式参数起始角BFE就可以了。

(2)渐开线子程序取名为INVLUT
(3)选定6个形式参数:X0、Y0、R、BFE、THETA、N
(4)用C语言编写的程序
#include“stdiO.h”
main()
{ double a,sin(),cos();
float b,dt,t,xc,yc,x,y,rad,pi;
int x0,y0,r,bfe,efe,n,xc1,xcr,ycu,ycd;
int i,itx,ity,ix,iy,bx,by;
gdinit(0,0);
gdpen(0,0,0);
charcan();
printf(“inputx0,y0,r,bfe,efe,n \n”);
scanf(“%d,%d,%d,%d,%d,%d\n”,&x0,&y0,&r,&bfe,&efe, &n);
xcl=x0-r-30;
xcr=x0+r+30;
ycu=y0+r+30;
cd =y0-r-30;
gdmove(xc1,y0);
gddraw(xcr,y0,2);
gdmove(x0,ycu);
gddraw(x0,ycd,2);
gdcirc(x0,y0,r);
rad =0.0174532925;
ity=(int)yc;
gdmove(x0,y0);
gddraw(itx,ity,2);
x=xc+t rsin(a);
y=yc-t*r*cos(a);
ix=(int)x;
iy=(int)y;
gddraw(ix,iy,2);}
bx=xc+r*cos(b);
by=yc+r*sin(b);
gdmove(bx,by);
for(i=1,i<=n;i++)
{t=dt*i;
a=b+t;
x=x0+r*cos(a)+t*r*sin(a);
y=y0+r*sin(a)-t*r*cos(a);
ix=x;
iy=y;
gddraw(ix,iy,0);}
gdchar(200,360,3,0,“INTVOLUTE”);}。