自己编的渐开线齿廓程序段 望大家帮忙指点错在哪里谢谢
浏览:175981
FINISH
/CLEAR,START
z=20
m=5
ha=1
c=0.25
k=5
ang=360/z
ang1=ang/2
r=m*z/2
rf=(z-2*ha-2*c)*m/2
ra=(z+2*ha)*m/2
pi=3.1415926
s=pi*m/2
inva=0.014904
*AFUN,DEG
rb=r*COS(20)
a=m*z*SIN(20)
*AFUN,RAD
*DIM,x,,20
*DIM,y,,20
aa=ACOS(rb/ra)
rk=SQRT (rb**2+(a-ra*SIN(aa))**2)
ak=ACOS(rb/rk)
beta=s/r+2*((TAN(ak)-ak)-(TAN(pi/9)-pi/9))
x(k)=rk*SIN(beta/2)
y(k)=rk*COS(beta/2)
b=rk*COS(beta/2)-(z-2*ha-2*c)*m/2
sita=pi/2-ak-beta/2
*IF,x(k),GT,y(k),THEN
ro=b/(1-COS(sita))
xo=x(k)-ro*SIN(sita)
x(1)=xo
y(1)=rf
*DO,i,2,k-1
x(i)=xo+SIN(sita*(i-1)/(k-1))
y(i)=ro-ro*COS(sita*(i-1)/(k-1))+rf
*ENDDO
*DO,i,k+1,20
ri=rk+(ra-rk)*(i-k)/(20-k)
ai=ACOS(rb/ri)
invai=TAN(ai)-ai
phi=s/r+2*(invai-inva)
x(i)=ri*SIN(phi/2)
y(i)=ri*COS(phi/2)
*ENDDO
*ELSE
ro=(x(k)-b/TAN(sita))/TAN(sita/2)
x(1)=0
y(1)=rf
*DO,i,2,k-1
x(i)=SIN(sita*(i-1)/(k-1))
y(i)=ro-ro*COS(sita*(i-1)/(k-1))+rf
*ENDDO
*DO,i,k+1,20
ri=rk+(ra-rk)*(i-k)/(20-k)
ai=ACOS(rb/ri)
invai=TAN(ai)-ai
phi=s/r+2*(invai-inva)
x(i)=ri*SIN(phi/2)
y(i)=ri*COS(phi/2)
*ENDDO
*ENDIF
/TITLE,'The Process of creating Gear Parametric Modeling'
/PREP7
ET,1,PLANE42
ET,2,SOLID45
*DO,i,1,20
K,i,x(i),y(i)
*ENDDO
K,21,ra*SIN(s/r),ra*COS(s/r)
LSTR,21,20
BSPLIN,20,19,18,17,16,15
BSPLIN,15,14,13,12,11,10
BSPLIN,10,9,8,7,6,5
BSPLIN,5,4,3,2,1
LCOMB,2,3,0
LCOMB,2,4,0
LCOMB,2,5,0
CYL4,,,38.45,0,rf,ang1
SAVE
/CLEAR,START
z=20
m=5
ha=1
c=0.25
k=5
ang=360/z
ang1=ang/2
r=m*z/2
rf=(z-2*ha-2*c)*m/2
ra=(z+2*ha)*m/2
pi=3.1415926
s=pi*m/2
inva=0.014904
*AFUN,DEG
rb=r*COS(20)
a=m*z*SIN(20)
*AFUN,RAD
*DIM,x,,20
*DIM,y,,20
aa=ACOS(rb/ra)
rk=SQRT (rb**2+(a-ra*SIN(aa))**2)
ak=ACOS(rb/rk)
beta=s/r+2*((TAN(ak)-ak)-(TAN(pi/9)-pi/9))
x(k)=rk*SIN(beta/2)
y(k)=rk*COS(beta/2)
b=rk*COS(beta/2)-(z-2*ha-2*c)*m/2
sita=pi/2-ak-beta/2
*IF,x(k),GT,y(k),THEN
ro=b/(1-COS(sita))
xo=x(k)-ro*SIN(sita)
x(1)=xo
y(1)=rf
*DO,i,2,k-1
x(i)=xo+SIN(sita*(i-1)/(k-1))
y(i)=ro-ro*COS(sita*(i-1)/(k-1))+rf
*ENDDO
*DO,i,k+1,20
ri=rk+(ra-rk)*(i-k)/(20-k)
ai=ACOS(rb/ri)
invai=TAN(ai)-ai
phi=s/r+2*(invai-inva)
x(i)=ri*SIN(phi/2)
y(i)=ri*COS(phi/2)
*ENDDO
*ELSE
ro=(x(k)-b/TAN(sita))/TAN(sita/2)
x(1)=0
y(1)=rf
*DO,i,2,k-1
x(i)=SIN(sita*(i-1)/(k-1))
y(i)=ro-ro*COS(sita*(i-1)/(k-1))+rf
*ENDDO
*DO,i,k+1,20
ri=rk+(ra-rk)*(i-k)/(20-k)
ai=ACOS(rb/ri)
invai=TAN(ai)-ai
phi=s/r+2*(invai-inva)
x(i)=ri*SIN(phi/2)
y(i)=ri*COS(phi/2)
*ENDDO
*ENDIF
/TITLE,'The Process of creating Gear Parametric Modeling'
/PREP7
ET,1,PLANE42
ET,2,SOLID45
*DO,i,1,20
K,i,x(i),y(i)
*ENDDO
K,21,ra*SIN(s/r),ra*COS(s/r)
LSTR,21,20
BSPLIN,20,19,18,17,16,15
BSPLIN,15,14,13,12,11,10
BSPLIN,10,9,8,7,6,5
BSPLIN,5,4,3,2,1
LCOMB,2,3,0
LCOMB,2,4,0
LCOMB,2,5,0
CYL4,,,38.45,0,rf,ang1
SAVE