- UID
- 421737
- 好友
注册时间2015-4-8
威望值 点
最后登录1970-1-1
激情值 点
积分84
认证分 分
齿轮币 枚
回帖0
|
本帖子中包含更多资源。
您需要 登录 才可以下载或查看,没有账号?注册
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
|
|