齿轮论坛 www.gearbbs.net

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 5444|回复: 13
收起左侧

求助-matlab画渐开线齿轮

[复制链接]
发表于 2011-4-26 16:02 | 显示全部楼层 |阅读模式

本帖子中包含更多资源。

您需要 登录 才可以下载或查看,没有账号?注册

x
大家好,我是新手
问题如题所述:用matlab画渐开线齿轮,我想CAD画齿轮三视图大家都会的,现在我想通过matlab画齿轮的平面图
希望高手指导。
谢谢了!

这里有个程序代码
function chilunplot(r,N)
a=2/5*2*pi*r/N;b=3/5*2*pi*r/N;
R=((a/2)^2+(r+b)^2)^(1/2);
A=atan(a/2/(r+b));
for n=1:N
    p=2*pi/N*(n-1);q=2*pi/N*n;
    theta=2*pi/N*(n-1)+7/10*2*pi/N;
    tao=2*pi/N*(n-1)+2/5*2*pi/N;
    afa=theta-A;beta=theta+A;
    ma1=linspace(p,tao,20);x1=r*cos(ma1);y1=r*sin(ma1);plot(x1,y1);hold on;
    plot([r*cos(tao),R*cos(afa)],[r*sin(tao),R*sin(afa)]);
    plot([r*cos(q),R*cos(beta)],[r*sin(q),R*sin(beta)]);
    plot([R*cos(afa),R*cos(beta)],[R*sin(afa),R*sin(beta)]);
end
axis equal;
axis([-2*r 2*r -2*r 2*r]);

但是画出来的不理想,求高手指导,我做行星轮系不等分装配用,先谢谢了!
发表于 2011-4-26 19:21 | 显示全部楼层
一般的人哪会编程画齿轮?
 楼主| 发表于 2011-5-9 11:46 | 显示全部楼层
回复 48824305 的帖子

我比一般还要一般啊,可是毕业设计用到。

在想用caxa 能不能代替。
发表于 2011-5-9 19:16 | 显示全部楼层
我尝试着画了一下,有什么不对的大家共同研究
function jiankaixianxiechilun(x)
rb=140.95;%基圆半径
alpha=20*pi/180;%分度圆压力角
r=rb/cos(alpha);%分度圆半径
beta=5*pi/180;%分度圆螺旋角
p=r/tan(beta);%螺旋参数
b=50;%齿宽
Z=60;%工具齿轮齿数
mt=2*r/Z;%端面模数
mn=mt*cos(beta);%法向模数
ra=r+mn;%齿顶圆半径
rf=r-1.25*mn;%齿根圆弧半径
delta=4*pi/180;%齿厚控制参数


%%%%%%%%%%%%%%%左侧齿面%%%%%%%%%%%%
for zz=0:1:Z%齿数循环
    dt=2*zz*pi/Z
for seta=-b/(2*p):0.05*pi/180:b/(2*p)%螺旋循环
x=[];y=[];z=[];
n=1 ;
for u=sqrt(rf^2-rb^2)/rb:1*pi/180:sqrt(ra^2-rb^2)/rb;%渐开线循环
x2=rb*sin(seta+u+dt)-rb*u*cos(seta+u+dt);
y2=rb*cos(seta+u+dt)+rb*u*sin(seta+u+dt);
z2=p*seta;
x(n)=x2;y(n)=y2;z(n)=z2;
n=n+1;
    end;
    plot3(x,y,z);
    hold on;
end;
end

%%%%%%%%%%%%%%%右侧齿面%%%%%%%%%%
for zz=0:1:Z%齿数循环
    dt=2*zz*pi/Z+delta
for seta=-b/(2*p):0.05*pi/180:b/(2*p)%螺旋循环
x=[];y=[];z=[];
n=1 ;
for u=-sqrt(rf^2-rb^2)/rb:-1*pi/180:-sqrt(ra^2-rb^2)/rb;%渐开线循环
x2=rb*sin(seta+u+dt)-rb*u*cos(seta+u+dt);
y2=rb*cos(seta+u+dt)+rb*u*sin(seta+u+dt);
z2=p*seta;
x(n)=x2;y(n)=y2;z(n)=z2;
n=n+1;
    end;
    plot3(x,y,z);
    hold on;
end;
end

%画中心轴线
x=[0 0];
y=[0 0];
z=[-b/2 b/2];
plot3(x,y,z,'r');
hold on;

%画基圆
x=[];y=[];z=[];
n=1;
for s=0:5*pi/180:2*pi;
x(n)=rb*sin(s);
y(n)=rb*cos(s);
z(n)=0;
n=n+1;
end
plot3(x,y,z,'k');
hold on;
   
%画分度圆
  x=[];y=[];z=[];
  n=1;
  for s=0:5*pi/180:2*pi;
x(n)=r*sin(s);
y(n)=r*cos(s);
z(n)=0;
n=n+1;
end
plot3(x,y,z,'r');
hold on;

axis equal
渐开线斜齿轮 Matlab画.jpg
发表于 2011-5-9 19:17 | 显示全部楼层
别的边界条件你自己琢磨琢磨吧
发表于 2011-5-9 19:23 | 显示全部楼层
原来要平面的呀,将程序中“for seta=-b/(2*p):0.05*pi/180:b/(2*p)%螺旋循环”改为“for seta=0”即可
渐开线斜齿轮 平面.jpg
 楼主| 发表于 2011-5-9 21:31 | 显示全部楼层
高手  你太厉害了

可是怎么表达太阳轮 行星轮 内齿轮的啮合情况呢

,还有 可以做出片面图的动画吗
发表于 2011-5-9 23:07 | 显示全部楼层
啮合情况只要理解了其内涵比较简单,要用matlab做啮合动画估计比较困难吧
 楼主| 发表于 2011-5-10 08:05 | 显示全部楼层
回复 jc1984 的帖子

用caxa画渐开线直齿轮的平面图 很方便,不知道 高手对此是否了解

我在想 能否用caxa二次开发,画1个太阳轮,3个行星轮,1个内齿轮的啮合情况,

最好能做出动画来。

用matlab画确实相当繁琐,我那老师画了出来,不过他忙博士论文...没空指导...伤心...

希望高手继续指导下
发表于 2013-2-11 20:31 | 显示全部楼层
你好,我想讨教一下子,您曾经画了一个matlab的斜齿轮的渐开线齿轮,我想要更改一下子这个程序,想把齿轮的渐开线改成锯齿形的,要怎么更改哟?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|齿轮论坛

GMT+8, 2024-6-16 23:35 , Processed in 0.276463 second(s), 12 queries , MemCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表