cam_1980 发表于 2008-9-18 22:36

ansys下的齿轮绘制

这是我用ansys的apdl语言绘制的渐开线齿轮和渐开线插齿刀包络的渐开线齿轮


用ansys做齿轮的加工仿真还是很方便的,只需要画出一个齿轮,然后按照范成加工的过程可能控制这个齿轮运动就能包络出被加工齿轮

cam_1980 发表于 2008-9-18 22:38

这是别的曲线刀具包络的齿轮,当然,他的可用性需要进一步讨论,可以从直观上看这种齿轮是否合理。

cam_1980 发表于 2008-9-18 22:40

还有非圆的:

xuruikl 发表于 2008-9-19 15:19

lz可以深入的、完整的介绍下
我给你加精华
论坛上急需原创帖子

cam_1980 发表于 2008-9-19 16:42

我把我绘制齿轮的代码贴上来,大家可以去研究一下,如果有不明白的地方,可以和我一起探讨。



[ 本帖最后由 cam_1980 于 2008-9-19 17:19 编辑 ]

cam_1980 发表于 2008-9-19 17:22

回复 5楼 cam_1980 的帖子

将上面的txt文件扩展名换成mac,然后将渐开线插齿刀那个文件打开,复制里面的文字运行即可,要不就将汉字名字改成字母直接输入文件名运行也行,记住三个文件都要放在工作目录下

[ 本帖最后由 xuruikl 于 2008-9-19 19:53 编辑 ]

cam_1980 发表于 2008-9-19 17:55

上面三个程序一起看可能比较费解,我这里整理了一下,就把ansys下如何绘制齿轮的程序传上来,大家可以修改文件头的参数即可绘制出你所需要的齿轮。简单介绍一下,这个齿轮的绘制不是直接用渐开线公式来绘制,我使用齿条刀加工出来的,一个没有圆角的齿条刀具一段可以分成4小段,先算出刀具坐标系下的点,然后通过坐标变换,将该点变到齿轮坐标系,然后以齿轮坐标系绘制改点,画出一个齿的齿形之后后面就简单了,连接起来然后阵列即可。

fmg410155503 发表于 2009-9-15 18:56

只是不知道这个仿真模拟,楼主知不知道怎么做的哦

[ 本帖最后由 xuruikl 于 2009-11-16 19:22 编辑 ]

octopussheng 发表于 2009-10-28 21:02

这种方法确实有意思。
避免了从CAD软件导入ANSYS软件产生的几何模型误差。不错。

xuruikl 发表于 2009-11-16 19:24

为了避免时间长了文件链接失效,后面的人无法下载,我把楼主在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

lzhh18 发表于 2010-4-15 13:42

回复 楼主 cam_1980 的帖子

支持一下谢谢——

375828889 发表于 2010-5-24 22:09

楼主真是高手啊
这么复杂的图形在ANSYS里面光建模就得很长时间
再仿真加工........:handshake

rui 发表于 2011-3-4 17:34

请问如何利用您的这个程序绘制两个相互啮合的齿轮?(两齿轮的模数不同)谢谢回答!

jxxansys 发表于 2011-3-4 17:57

回复 14 # rui 的帖子

模数不同的两个齿轮不能相互啮合。
好好学习基础。

lc_lau 发表于 2011-3-8 12:53

高手,形象而专业
页: [1] 2 3
查看完整版本: ansys下的齿轮绘制