ansys下的齿轮绘制
这是我用ansys的apdl语言绘制的渐开线齿轮和渐开线插齿刀包络的渐开线齿轮用ansys做齿轮的加工仿真还是很方便的,只需要画出一个齿轮,然后按照范成加工的过程可能控制这个齿轮运动就能包络出被加工齿轮 这是别的曲线刀具包络的齿轮,当然,他的可用性需要进一步讨论,可以从直观上看这种齿轮是否合理。 还有非圆的:
lz可以深入的、完整的介绍下
我给你加精华
论坛上急需原创帖子 我把我绘制齿轮的代码贴上来,大家可以去研究一下,如果有不明白的地方,可以和我一起探讨。
[ 本帖最后由 cam_1980 于 2008-9-19 17:19 编辑 ]
回复 5楼 cam_1980 的帖子
将上面的txt文件扩展名换成mac,然后将渐开线插齿刀那个文件打开,复制里面的文字运行即可,要不就将汉字名字改成字母直接输入文件名运行也行,记住三个文件都要放在工作目录下[ 本帖最后由 xuruikl 于 2008-9-19 19:53 编辑 ] 上面三个程序一起看可能比较费解,我这里整理了一下,就把ansys下如何绘制齿轮的程序传上来,大家可以修改文件头的参数即可绘制出你所需要的齿轮。简单介绍一下,这个齿轮的绘制不是直接用渐开线公式来绘制,我使用齿条刀加工出来的,一个没有圆角的齿条刀具一段可以分成4小段,先算出刀具坐标系下的点,然后通过坐标变换,将该点变到齿轮坐标系,然后以齿轮坐标系绘制改点,画出一个齿的齿形之后后面就简单了,连接起来然后阵列即可。 只是不知道这个仿真模拟,楼主知不知道怎么做的哦
[ 本帖最后由 xuruikl 于 2009-11-16 19:22 编辑 ] 这种方法确实有意思。
避免了从CAD软件导入ANSYS软件产生的几何模型误差。不错。 为了避免时间长了文件链接失效,后面的人无法下载,我把楼主在7楼发的命令流发出来
/prep7
zc=25 !被加工齿轮的齿数
pi=3.1415926
fai=2*pi
m=4 !模数
rc=m*zc/2 !分度圆半径
!齿条刀具的齿顶高
ha=1.25*m
!齿条刀具的齿根高
hf=m
au=20*pi/180 !齿形角
pm=pi*m/4 !pi*m是一个基节长度
pm3=3*pi*m/4
lm=(hf/cos(au)/sin(au)+pm)/rc !齿条刀上对应的一个几何尺寸
*dim,MM,array,3,3 !坐标变换矩阵,跟着theta变化
n=1
da=m*zc+hf*2 !齿顶圆直径
df=m*zc-ha*2 !齿根圆直径
ra=da/2
!第2段
*do,theta,lm,-lm,-0.015
px=rc*cos(theta+pi/2)
py=rc*sin(theta+pi/2)
s=rc*theta
o1x=px+s*cos(theta)
o1y=py+s*sin(theta)
MM(1,1)=cos(theta)
MM(1,2)=-sin(theta)
MM(1,3)=o1x
MM(2,1)=sin(theta)
MM(2,2)=cos(theta)
MM(2,3)=o1y
MM(3,1)=0
MM(3,2)=0
MM(3,3)=1
*if,s,gt,pm-ha/cos(au)/sin(au)+0.025*rc,and,s,lt,pm+hf/cos(au)/sin(au),then
pp1=-s+(s-pm)*(cos(au))**2
pp2=(s-pm)*cos(au)*sin(au)
pp3=1
ppx=MM(1,1)*pp1+MM(1,2)*pp2+MM(1,3)*pp3
ppy=MM(2,1)*pp1+MM(2,2)*pp2+MM(2,3)*pp3
k,n,ppx,ppy
n=n+1
*endif
*enddo
!左尖点
*do,theta,-lm,lm,0.01
px=rc*cos(theta+pi/2)
py=rc*sin(theta+pi/2)
s=rc*theta
o1x=px+s*cos(theta)
o1y=py+s*sin(theta)
MM(1,1)=cos(theta)
MM(1,2)=-sin(theta)
MM(1,3)=o1x
MM(2,1)=sin(theta)
MM(2,2)=cos(theta)
MM(2,3)=o1y
MM(3,1)=0
MM(3,2)=0
MM(3,3)=1
*if,s,lt,pm-ha*tan(au),and,s,gt,pm-ha/cos(au)/sin(au)+0.007*rc,then
pp1=-pm+ha*tan(au)
pp2=-ha
pp3=1
ppx=MM(1,1)*pp1+MM(1,2)*pp2+MM(1,3)*pp3
ppy=MM(2,1)*pp1+MM(2,2)*pp2+MM(2,3)*pp3
k,n,ppx,ppy
n=n+1
*endif
*enddo
!第3段
*do,theta,lm,-lm,-0.004
px=rc*cos(theta+pi/2)
py=rc*sin(theta+pi/2)
s=rc*theta
o1x=px+s*cos(theta)
o1y=py+s*sin(theta)
MM(1,1)=cos(theta)
MM(1,2)=-sin(theta)
MM(1,3)=o1x
MM(2,1)=sin(theta)
MM(2,2)=cos(theta)
MM(2,3)=o1y
MM(3,1)=0
MM(3,2)=0
MM(3,3)=1
*if,s,gt,-pm+ha*tan(au),and,s,lt,pm-ha*tan(au),then
pp1=-s
pp2=-ha
pp3=1
ppx=MM(1,1)*pp1+MM(1,2)*pp2+MM(1,3)*pp3
ppy=MM(2,1)*pp1+MM(2,2)*pp2+MM(2,3)*pp3
k,n,ppx,ppy
n=n+1
*endif
*enddo
!右尖点
*do,theta,-lm,lm,0.01
px=rc*cos(theta+pi/2)
py=rc*sin(theta+pi/2)
s=rc*theta
o1x=px+s*cos(theta)
o1y=py+s*sin(theta)
MM(1,1)=cos(theta)
MM(1,2)=-sin(theta)
MM(1,3)=o1x
MM(2,1)=sin(theta)
MM(2,2)=cos(theta)
MM(2,3)=o1y
MM(3,1)=0
MM(3,2)=0
MM(3,3)=1
*if,s,gt,-pm+ha*tan(au),and,s,lt,-pm+ha/cos(au)/sin(au),then
pp1=pm-ha*tan(au)
pp2=-ha
pp3=1
ppx=MM(1,1)*pp1+MM(1,2)*pp2+MM(1,3)*pp3
ppy=MM(2,1)*pp1+MM(2,2)*pp2+MM(2,3)*pp3
k,n,ppx,ppy
n=n+1
*endif
*enddo
!第四段
*do,theta,lm,-lm,-0.015
px=rc*cos(theta+pi/2)
py=rc*sin(theta+pi/2)
s=rc*theta
o1x=px+s*cos(theta)
o1y=py+s*sin(theta)
MM(1,1)=cos(theta)
MM(1,2)=-sin(theta)
MM(1,3)=o1x
MM(2,1)=sin(theta)
MM(2,2)=cos(theta)
MM(2,3)=o1y
MM(3,1)=0
MM(3,2)=0
MM(3,3)=1
*if,s,gt,-pm-hf/cos(au)/sin(au),and,s,lt,ha/cos(au)/sin(au)-pm-0.025*rc,then
pp1=pm-(pm+s)*(sin(au))**2
pp2=-(pm+s)*sin(au)*cos(au)
pp3=1
ppx=MM(1,1)*pp1+MM(1,2)*pp2+MM(1,3)*pp3
ppy=MM(2,1)*pp1+MM(2,2)*pp2+MM(2,3)*pp3
k,n,ppx,ppy
n=n+1
*endif
*enddo
!将以上的点用spline连接
FLST,3,n-1,3
*do,theta,1,n-1,1
FITEM,3,theta
*enddo
BSPLIN, ,P51X
!阵列
csys,1
lgen,zc,1,,,,360/zc
csys,0
*get,nn,kp,,count
n=nn+1
!画齿顶圆
*do,theta,0,2*pi,0.04
px=rc*cos(theta+pi/2)
py=rc*sin(theta+pi/2)
s=rc*theta
o1x=px+s*cos(theta)
o1y=py+s*sin(theta)
MM(1,1)=cos(theta)
MM(1,2)=-sin(theta)
MM(1,3)=o1x
MM(2,1)=sin(theta)
MM(2,2)=cos(theta)
MM(2,3)=o1y
MM(3,1)=0
MM(3,2)=0
MM(3,3)=1
pp1=-s
pp2=hf
pp3=1
ppx=MM(1,1)*pp1+MM(1,2)*pp2+MM(1,3)*pp3
ppy=MM(2,1)*pp1+MM(2,2)*pp2+MM(2,3)*pp3
k,n,ppx,ppy
n=n+1
*enddo
!将齿顶圆用spline连接
FLST,3,n-nn,3
*do,theta,nn+1,n-1,1
FITEM,3,theta
*enddo
fitem,3,nn+1
BSPLIN, ,P51X
!删掉齿顶圆以外的线
csys,1
LSEL,U, , , zc+1
cm,_chikuo,line
allsel,all
LSBL,_chikuo,zc+1
LSEL,S,LOC,X,rc,rc+ha
ldele,all
allsel all
csys,0
numcmp,line
numcmp,kp
!连接齿顶
*get,center,kp,,num,max
center=center+1
k,center,0,0
*do,i,1,zc-1,1
lsel,s,,,i
ksll,s
*get,p1,kp,,num,min
allsel,all
lsel,s,,,i+1
ksll,s
*get,p2,kp,,num,max
allsel,all
larc,p1,p2,center,ra
*enddo
lsel,s,,,zc
ksll,s
*get,p1,kp,,num,min
allsel,all
lsel,s,,,1
ksll,s
*get,p2,kp,,num,max
allsel,all
larc,p1,p2,center,ra
回复 楼主 cam_1980 的帖子
支持一下谢谢—— 楼主真是高手啊这么复杂的图形在ANSYS里面光建模就得很长时间
再仿真加工........:handshake 请问如何利用您的这个程序绘制两个相互啮合的齿轮?(两齿轮的模数不同)谢谢回答! 回复 14 # rui 的帖子
模数不同的两个齿轮不能相互啮合。
好好学习基础。 高手,形象而专业