首页/文章/ 详情

Matlab APP/PyQt开发:把自己的算法可视化

8月前浏览534
静界有限元工作室提供算法类软件界面开发服务和教学,联系方式在文末,欢迎交流。


为什么要开发自己的小软件

我读研究生承担的第一个项目,是用MATLAB GUI开发了一种织物复合材料的力学性能预测软件。


     

用现在的眼光看,那个软件实在是简陋无比。但就是这个小小的东西,让我和软件结了缘。尽管我从事工业软件开发是在这很多年以后了,但是第一次开发出界面,能够点几下计算出结果的兴奋感我至今仍记得。


     

因为这个契机,我毕业后坚持开发了很多自己的算法并且界面化,也逐渐转到了工业软件方向。


     

这几年了解下来,我发现很多课题组都有不少自己的实用算法,但是因为专业限制,这些算法普遍没有一个好用的交互界面和渲染窗口。


     

玉不琢,不成器。一个界面,可以大大提升我们科研成果的展示度,方便传承和持续升级,也有利于保护我们的代码。


     

现在很多纵横向项目交账的时候都要求交付软件或者硬件样机,靠几篇论文或者报告结题的时代已经过去了。


     

对于课题组来说,大部分的情况下,也不需要用到多么高深复杂的软件技术。Matlab APP Designer或者PyQt足够了,这两个东西上手也比较容易。


算法类小软件的界面的工作无非就是三条:

  • 用户通过界面输入参数或者文件;

  • 点击按钮调用算法完成计算;

  • 界面展示结果。


     

尤其是Matlab APP Designer,简直是广大MATLAB用户的福音,它和QT十分相似,尤其是新的容器和网格布局的引入,大大提升了实用性。  


静界有限元工作室案例


我们在《(二)自己也能开发ABAQUS复合材料层合板自动建模工具?》一文中,阐述了使用Matlab APP Designer开发自己的建模工具的案例。      

   

   

在《一分钟上手的ABAQUS结果二次处理工具》一文中,又给出了基于Matlab APP Designer开发的后处理工具:


     

   

   

下面这个是同事请我帮忙做的一个PyQt界面案例,他提供基础算法,我给他做了界面和软件封装,分分钟提升了展示度:


     

    

来源:静界有限元
Abaqus复合材料二次开发MATLAB材料渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-05
最近编辑:8月前
静界有限元
博士 签名征集中
获赞 27粉丝 4文章 58课程 0
点赞
收藏
作者推荐

(二)自己也能开发ABAQUS复合材料层合板自动建模工具?

前文我们介绍了基于“厚度”推进策略生成网格,并自动定义铺层、材料的层合板建模算法。为了提高展示度,同时也是方便给别人使用。我们可以开发一个界面,并封装成一个软件。作为一个小的案例,同样采用MATLAB实现。很多人都用过MATLAB的GUI模块,然而这个东西适合做一些小的工具,稍微复杂一点的功能,就完全无法开展。GUI模块一个最简单的例子,就是选项卡,通过选项切换不同的页面。在以前的GUI中,你只能再画一个界面,然后在两个界面之间传递变量。使用的时候,当切换页面时候会弹出预设的界面,体验很差。如果有了选项卡,就不存在界面跳转的问题了,都在一个页面就完成了。为了解决这个痛点,MATLAB推出了APPdesigner,它和QT十分相似,尤其是新的容器和网格布局的引入,大大提升了实用性。而经典的GUI模块在以后的版本中,将被删除。APPdesigner我现在遇到的一些不大不小的开发需求,就会采用APPdesigner。当然,更复杂的需求的话,还是用QT更加方便。本期我们就大致介绍一下基于APPdesigner实现工具开发的基本路线。网格布局QT中提供了多种多样的自动对齐、填充方式。而在MATLAB中,这个是通过“网格布局”实现。众所周知,MATLAB是基于矩阵思想开发的平台,这个“网格布局”就是这个路子。通过定义纵横分块和尺寸,实现界面分区,组件放进去以后它们就会自动对齐、适应分区大小,保证了界面的美观性。本次界面整体设计为左右布局,左侧放置参数定义和二维绘图区,右侧为三维绘图区。组件填充几何参数和材料参数,用表格组件。铺层数据,考虑到铺层可能很多,我们直接通过导入指定路径的txt文件实现。两个绘图窗口还是基础的AXIS。组件填充后效果如下:代码嵌入将之前开发好的算法嵌入到界面中。APPdesigner通过点击右上角的视图,可以方便的切换界面视图和代码视图,这个切实提升了开发效率,也是我个人认为远胜于QT的地方。嵌入代码后,运行效果如下:至此我们完成了一个小工具的开发。这个案例虽然简单,如果我们更换为更复杂的结构,再加入调用ABAQUS自动计算、后处理的部分,它就进化成了一个软件平台。很多项目包装得很花哨,从逻辑上来讲,借助商用求解器,自己开发前后处理模块,本质上就是上面的路子。麻雀虽小五脏俱全,如果能嵌入自己的求解器,那么它就是一个专用的有限元软件了。来源:静界有限元

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈