📄 untitled.m
字号:
clear
%蜗轮蜗杆的参数
z1=1; %蜗杆的头数
z2=63; %蜗轮的齿数
db=100;
da2=278;
ha=0.75*da2/(z2+1.5); %齿顶高
hf=0.95*da2/(z2+1.5); %齿根高
d2=da2-2*ha; %蜗轮的分度圆直径
alpha=asin(db/d2) ; %蜗杆的压力角
a=160; %中心距
r1=48.46/2; %取整后蜗杆的喉部半径
m=d2/z2; %蜗杆的模数
r2=d2/2;
Rb=r2*sin(alpha); %成形圆半径
circlenum=6; %蜗杆的圈数
dividenum=30; %一个圆周面分成的份数
steplength=0.8; %u的步长
i12=63;
%蜗杆模型的程序
u1=m*z2*cos(alpha)/2; %切分度圆时刀具的长度
alpha1=atan(Rb/u1);
keyphi0=alpha1-asin(-m*pi/(4*(Rb^2+u1^2)^0.5));
keyphi1=i12*keyphi0;
%xx=Rb*cos(keyphi0)-u1*sin(keyphi0);
%yy=(Rb*sin(keyphi0)+u1*cos(keyphi0)-a).*cos(keyphi1);
%zz=-(Rb*sin(keyphi0)+u1*cos(keyphi0)-a).*sin(keyphi1);
B=u1*cos(keyphi0)-Rb*sin(keyphi0)-a;
M=u1*sin(keyphi0)+Rb*cos(keyphi0);
xx=B*cos(keyphi1);
yy=-B*sin(keyphi1);
zz=M;
angle=atan(yy/zz);
u=(r2-hf)*cos(alpha):steplength:(r2+ha)*cos(alpha);
sizeu=size(u);
sizeuc=sizeu(1,2); %u的列数
phi=keyphi0-pi*circlenum/i12:2*pi/(i12*dividenum):keyphi0+pi*circlenum/i12;
[u,phi]=meshgrid(u,phi);
phi1=i12*phi;
sizephi=size(phi);
sizephia=sizephi(1,1);
B1=u.*cos(phi)+Rb*sin(phi)-a;
M1=u.*sin(phi)-Rb*cos(phi); %phi的行数
x1=B1.*cos(phi1);
y1=-B1.*sin(phi1);
z1=M1;
surf(x1,y1,z1);
%x1=Rb*cos(phi)-u.*sin(phi);
%y1=(Rb*sin(phi)+u.*cos(phi)-a).*cos(phi1);
%z1=-(Rb*sin(phi)+u.*cos(phi)-a).*sin(phi1);
hold on;
xx1=x1.*cos(angle)+z1.*sin(angle);
yy1=y1;
zz1=-y1.*sin(angle)+z1.*cos(angle);
face1=surf(xx1,yy1,zz1);
xlabel('x');ylabel('y');zlabel('z')
set(face1,'LineStyle','none');
hold on;
%face2=surf(-xx1,yy1,-zz1);
xlabel('x');ylabel('y');zlabel('z');title('蜗杆的齿根连线图')
%set(face2,'LineStyle','none')
%蜗杆齿顶连线
ra1=[xx1(:,1),flipud(-xx1(:,1))];
ra2=[yy1(:,1),flipud(yy1(:,1))];
ra3=[zz1(:,1),flipud(-zz1(:,1))];
%surf(ra1,ra2,ra3);
% 蜗杆齿根连线
hold on;
rf1=[xx1(1:sizephia-dividenum,sizeuc),flipud(-xx1(1:sizephia-dividenum,sizeuc))];
rf2=[yy1(1:sizephia-dividenum,sizeuc),flipud(yy1(1:sizephia-dividenum,sizeuc))];
rf3=[zz1(1:sizephia-dividenum,sizeuc),flipud(-zz1(1:sizephia-dividenum,sizeuc))];
%surf(rf1,rf2,rf3);
rf11=[xx1(:,sizeuc),flipud(-xx1(:,sizeuc))];
rf22=[yy1(:,sizeuc),flipud(yy1(:,sizeuc))];
rf33=[zz1(:,sizeuc),flipud(-zz1(:,sizeuc))];
%surf(rf11,rf22,rf33);
axis equal;grid on;colormap copper
xlabel('x');ylabel('y');zlabel('z');%title('蜗杆全齿面图');
hold on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -