今日起,木木将陆续推出几篇界面设计的推文,记录学习Matlab界面设计的过程,方便以后复盘。
学习界面设计的最终目的,是想将自己对于有限元编程的一些见解全部集中于一款小软件中,暂且命名为MFEA
,即mumu的FEA~(目前正在开发调试中)
主打一个免费!内部函数代码多参考于之前木木给大家推荐的课程:计算不收敛?接触问题有限元Matlab编程求解攻略(下)
若要获取有限元核心求解代码,可购买上述课程进行获取。
功能将陆续包含线弹性范围内的各种实体单元的编程、几何非线性、接触非线性、材料非线性、动力学、传热学、XFEM功能等。
为便于处理各种复杂情况下的模型,MFEA
不包含前处理设置(能力有限),线性方程组求解前期使用Matalb最直接的\
,迭代法求解将在后续的版本中更新,后处理将采用matlab强大的绘图功能,我们拭目以待!
目的在于引导刚接触有限元或者对有限元编程感兴趣的小白,使之在一步步的演绎下,对之产生热爱之情,可用于自己日常的有限元学习过程中。
来到我们今天推文的重点:Appdesigner的使用。
本次所演示的界面如下图所示:
当我们点击About
按钮时,会弹出如下的消息框:
其回调函数为:
function AboutButtonPushed(app, event)
msgbox('This is my first finite element analysis program, thanks for the support!','对话框','help')
end
msgbox的使用方法为:msgbox('显示内容','标题','系统图标')
其中系统图标可选:none、error、help、warn
示例:
退出按钮的回调函数为:
function ExitButtonPushed(app, event)
choice = questdlg("确定关闭吗?","关闭","YES","NO","NO");
switch choice
case "YES"
delete(app.MFEAV10UIFigure); %关闭所有窗口
return;
case "NO"
return;
end
end
点击Exit
后效果如下:
questdlg的使用方法可通过上述回调函数,简单猜出,这里不做重复叙述。
重点来啦!!!如何调出文件选择框?这是我界面的最开始部分,因为我在程序里将有限元的数据:单元节点、约束、荷载、材料属性等信息,均以关键词的形式罗列在文本文件中,就像是Abaqus的inp文件类似,所以,界面中必须要有文件选择这个功能。
其回调函数为:
function SelectFileButtonPushed(app, event)
[filename, filepath] = uigetfile('*.*', '请选择文件');
app.FilenameEditField.Value = filename;
end
效果如下:
即刻显示文件名字,但是现在问题来了,此时的文件仍处在function
,也就是说还是局部变量,别的按钮不能调用它,这就很不方便了,需要用到全局变量这一概念,Appdesigner的全局变量如何定义,且看下节展示。
上节学会了消息框、退出程序按钮及文件选择的功能,本节对文件选择功能来一个补充(全局变量)。
在设计器中可以选择添加私有属性:
代码视图将会多出这样几行代码:
properties (Access = private)
Property % Description
end
我们可以在里面添加全局变量,如:file
,在后续回调函数调用的过程中,需要将file
变量改为app.file
,即:
这样以来,才能在别的按钮中调用之前的文件,如:
本次分享就先这么多,对于新手并不友好,只是拿来作为自己的学习笔记记录。