齿轮论坛 www.gearbbs.net

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 459|回复: 6
收起左侧

分享一个圆柱齿轮廓形计算程序吧MATLAB

[复制链接]
发表于 2023-10-10 11:18 | 显示全部楼层 |阅读模式

本帖子中包含更多资源。

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

x

外齿,随便写的...

%圆柱齿轮  外齿
function tongyong
clear all;
clc;
global rb mt alfat m z beta ha hc xn
% int_out=1;   %+1为外齿轮 -1为内齿轮
alfa=25/180*pi;  %法向压力角
z=28;   %齿数
m=5;   %模数
beta=5/180*pi;  %螺旋角
B=20; %宽度
B0=-1; %齿宽起始位置
lie=20;  %齿长方向
hang=19;  %齿高方向
xn=0;  %变位系数(内外齿轮有正负之分)
ha=1;  %齿顶高系数
hc=0.25;  %顶系系数


d=m*z/cos(beta); %分度圆直径
mt=m/cos(beta);   %端面模数
alfat=atan(tan(alfa)/cos(beta));%端面压力角
zd=z/(cos(beta)*cos(beta)*cos(beta)); %当量齿数
rb=m*z/cos(beta)*cos(alfat)/2;   %基圆半径
L=pi*m*z/cos(beta)/tan(beta);  %导程
xt=xn*cos(beta);   %端面变位系数
sr=xt*tan(alfat)*mt; %分度圆上单边距标准齿轮的弧长
sit=2*pi/z/4+tan(alfat)-alfat+2*sr/d;%调整两面相对X轴对称的角度
sit_int_out=-2*pi/z;
fitop=fsolve(@topfi,tan(alfa),optimset('fsolve'))+10/180*pi;
% judge=mt*z/2-m*(ha-xn+hc)-rb;
fibot=0;

for tt=1:2
    if tt==1
        facechange=1;
        fid=fopen('XYZ_1.DAT','w');
        M43=[cos(sit_int_out) sin(sit_int_out) 0 0;
            -sin(sit_int_out) cos(sit_int_out) 0 0;
            0 0 1 0;
            0 0 0 1];
    else
        facechange=-1;
        fid=fopen('XYZ_2.DAT','w');
        M43=[1 0 0 0;
            0 1 0 0;
            0 0 1 0;
            0 0 0 1];
    end
    i=1;
    row=1;
    for z_B=B0:B/(lie-1):B+B0
        fprintf(fid,'ROW%d\r\n',row);
        j=1;
        for fi=fibot:(fitop-fibot)/(hang-1):fitop
            x1=rb*(cos(fi)+fi*sin(fi));  % rb 基圆半径
            y1=facechange*rb*(sin(fi)-fi*cos(fi));  % fi 展角
            z1=0;                       % ds 渐开线任一点轴向坐标
            zs=z_B*2*pi/L;
            M21=[cos(sit),facechange*sin(sit),0,0;  % sit
                -facechange*sin(sit),cos(sit),0,0;
                0,0,1,0;
                0,0,0,1];
            M32=[cos(zs),-sin(zs),0,0;
                sin(zs),cos(zs),0,0;
                0,0,1,z_B;
                0,0,0,1];
            xyz1=M43*M32*M21*[x1;y1;z1;1];
            fprintf(fid,'%f     %f     %f\r\n',xyz1(1),xyz1(2),xyz1(3));
            xp(j,i)=xyz1(1);
            yp(j,i)=xyz1(2);
            zp(j,i)=xyz1(3);
            j=j+1;
        end
        row=row+1;
        i=i+1;
    end
    fclose(fid);
    %%%%%绘制齿面%%%%%
    mesh(xp,yp,zp)
    hold on;
end
axis equal
end

function F=topfi(h)
global rb m z beta ha xn
fi=h;
x1=rb*(cos(fi)+fi*sin(fi));  % rb 基圆半径
y1=rb*(sin(fi)-fi*cos(fi));  % fi 展角
F=x1*x1+y1*y1-(m*z/2/cos(beta)+m*(ha+xn))^2;
end























发表于 2023-10-10 19:40 | 显示全部楼层
直齿轮.jpg 斜齿轮.jpg

给大家运行一下,没什么特殊的
发表于 2023-10-10 19:41 | 显示全部楼层
还是感谢分享,绘图还是值得借鉴的
发表于 2024-1-6 10:36 | 显示全部楼层
不错
001.png
发表于 2024-1-8 08:08 | 显示全部楼层
还是感谢分享,绘图还是值得借鉴的
发表于 2024-1-11 08:39 | 显示全部楼层
当量齿数错了,应该有一个除以基圆螺旋角,zd=z/(cos(beta)*cos(beta)*cos(betb))
发表于 2024-1-11 21:26 来自手机 | 显示全部楼层
感谢分享,不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 16:37 , Processed in 0.154931 second(s), 12 queries , MemCache On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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