
1 文件-----新建
2 工具----程序----编辑设计 输入以下程序
INPUT
TOOTH_NUMBER NUMBER
"enter the number of tooth:"
MODULE NUMBER
"enter the module:"
PRESSURE_ANGLE NUMBER
"enter the pressure_angle:"
FACE_WIDTH NUMBER
"enter the tooth width:"
RAD_FILLET NUMBER
"enter the fillet:"
END INPUT
RELATIONS
R=0.5*MODULE*TOOTH_NUMBER
RB=R*COS(PRESSURE_ANGLE)
P=PI*MODULE
S=P/2
RA=R+MODULE
RF=R-1.25*MODULE
INV_A=TAN(PRESSURE_ANGLE)-PRESSURE_ANGLE*PI/180
SB=2*RB*(S/2/R+INV_A)
ANGLE_TOOTH_THICK=SB/RB*180/PI
ANGLE_TOOTH_SPACE=360/TOOTH_NUMBER-ANGLE_TOOTH_THICK
END RELATIONS
文件----保存 文件----退出
3要将所做的修改体现在模型中 是
得到输入----------------当前值
创建齿轮毛胚基础实体特征
1 插入------拉伸
随便画一个圆柱 (从中向两侧拉伸)
2 工具-----关系----特征 输入以下程序
d0=face_width
d1=2*ra
3 编辑-----再生------当前值
创建基准平面 DTM1
1 插入-----模型基准----平面
按住 CTRL 选中中心线和RIGHT面
2 工具------关系-----特征
选中 DTM1
输入 d2=360/tooth_number
3 编辑-------再生------当前值
4 草绘 以下图中的上表面为基准面
画一条 如下图所视的红色弧线(尺寸任意)
5 工具------关系------特征
选中红色弧线
输入以下程序 d12=angle_tooth_space/2
d13=angle_tooth_thick
d14=rb
画一条线 尺寸任意 ,如图所视
不打 钩
9 工具----关系 选中红色 直线
输入 todeg=180/pi
roll_angle=0
solve
roll_angle*todeg-atan(roll_angle)=trajpar*angle_tooth_thick
for roll_angle
sd7=rb*(1+roll_angle^2)^0.5
得到如图所视的一个面
10 镜像 以 DTM1 面为镜像面
创建第一个齿槽
1 插入-------拉伸
以 中心面 TOP 面为基准平面, DTM1 面为参考面
2 草绘--------边------使用
选择刚画的两个面
工具-------关系------特征
输入 d37=rf 拉伸长度为 face_width
4 编辑-------再生------当前值
5 隐藏多余的曲面
选中两曲面和两曲线
视图--------可见性-------隐藏
效果如图
6 插入-----倒圆角
选中四条边
7 工具-------关系--------特征
选中四条边
输入d44=rad_fillet
8 编辑------再生-------当前值
创建阵列特征
1 编辑-----特征 *** 作------组-------创建-------局部组
名称为 gear_tooth
把模型树中的DTM1以下的所有特征都选中
2 编辑-----阵列 选中 DTM1 的角度参数18度
打钩
3 工具----关系-----特征
选中刚生成的 DTM2
输入 d45=360/tooth_number
p46=tooth_number
注意一定要与图中的参数对应
4 编辑----再生-----当前值
下图是最后的效果
如果以后想画齿轮,只需要打开这个齿轮,然后
编辑------再生------输入值
输入不同的参数就可以得到自己想画的效果
这个代码有点错误,可能是你的代码少复制了一句。按我的理解解释了一下,希望对你有所帮助。function varargout = jkx(varargin) %该界面的主函数,通过此函数调用matlab的gui主函数
gui_Singleton = 1
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @jkx_OpeningFcn, ...
'gui_OutputFcn', @jkx_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', [])
if nargin &isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1})
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:})
else
gui_mainfcn(gui_State, varargin{:})
end
function jkx_OpeningFcn(hObject, eventdata, handles, varargin) %界面窗口的设置
handles.output = hObject
guidata(hObject, handles)
set(gcf,'name','标准直齿圆柱齿轮渐开线参数输入窗口')%设置界面窗口的名字。
function varargout = jkx_OutputFcn(hObject, eventdata, handles)%打开界面窗口时的一些初始设置,比如可以加入javaFrame = get(gcf,'JavaFrame') set(javaFrame,'Maximized',1)使界面运行时就最大化。
varargout{1} = handles.output
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white')
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
end
function edit1_Callback(hObject, eventdata, handles)%添加可编辑文本框,可以通过set(handles.edit1,'属性名','属性值'……)设置其属性,包括显示的东西
function edit2_CreateFcn(hObject, eventdata, handles)%同上
set(hObject,'BackgroundColor','white')%设置edit2的背景色
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))%获得默认控件的背景色给当前控件
end
function edit2_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white')
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
end
function edit3_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white')
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'))
end
function edit4_Callback(hObject, eventdata, handles)
function pushbutton1_Callback(hObject, eventdata, handles)%添加按钮,在下面可以给出他的响应函数
figure%点击按钮新建一个figure.
set(gcf,'name','渐开线齿廓')%设置当前界面的名字
m=str2num(get(handles.edit1,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量m,
z=str2num(get(handles.edit2,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量z,
a=str2num(get(handles.edit3,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量a,
ha=str2num(get(handles.edit6,'string'))%将用户输入edit1的字符转换成数字型,并赋值给变量ha,
ra=m*(0.5*z+ha)%计算出ra
%齿顶圆半径
rb=0.5*m*z*cos(a*pi/180)
%基圆半径
rk=rb:0.01:ra
%向径范围
aa=atan(sqrt((ra.^2/rb.^2)-1))
%齿顶圆上的压力角
wk=tan(aa)-aa
%齿顶圆上的展角
w=0:pi/180:pi/3
x=rb*(cos(w)+w.*sin(w))
y=rb*(sin(w)-w.*cos(w))
plot(x,y,rb*cos(0:0.01:2*pi),rb*sin(0:0.01:2*pi),ra*cos(0:0.01:2*pi),ra*sin(0:0.01:2*pi))%画出图像
xlabel('x 轴 单位:mm','fontsize',9)%设置坐标轴属性,名称,字符大小为9
ylabel('y 轴 单位:mm','fontsize',9)%设置坐标轴属性,名称,字符大小为9
axis equal%调节图形的纵横比,和axis('square')功能一样使屏幕上的x和y的比例尺相同。
title('标准直齿轮渐开线轮廓(基圆与齿顶圆之间的部分为该齿轮的渐开线)','fontsize',11)%图形标注,图形名称,字体大小 为11
text(ra*cos(pi/4),ra*sin(pi/4),'\leftarrow齿顶圆','fontsize',10)%添加静态文本框,显示计算结果+‘\leftarrow齿顶圆’,文本框的字体大小为10。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)