一键完成有限元前处理和后处理是一件令人兴奋的事情,让自动化解放你的双手。这不,基于Python的ABAQUS参数化建模满足你的小心心。本期带你制作一个一键生成梁的GUI插件。经常使用ABAQUS的伙伴就知道,随着模型运行,结果文件夹中会产生大量我们并不关心的文件,例如.prt、.sim、.sta等等,很是抓狂!别急,在上述插件中将会上线一个文件清理的功能。温馨提示,阅读本文需要稍微有一些ABAQUS基础!
ABAQUS中插件可通过RSG对话框构造器(RSG Dialog Builder)和GUI工具包来制作。RSG是GUI界面的高效辅助工具,但是其控件的种类很少,若要实现复杂的功能界面通常还需要使用GUI工具包来添加。制作插件时先用RSG完成部分控件的布局、设置,然后使用GUI工具包是常用的方法。插件由注册文件plugin,图形界面文件DB和内核函数文件组成。
本文插件如图所示,由四部分组成:第一部分判断是否需要运行模型;第二部分是梁的参数化建模和有限元分析;第三部分为梁的几何模型的图示;第四部分则为文件清理。

第一部分:两个单选按钮来选择是否运行模型;
第二部分:通过输入梁的长、半径、集中力完成参数化建模,使用滑动条来设置提交模型所用的cpu个数;
第三部分:梁的参考图,对输入参数进行了标识;
第四部分:清理多余文件,可在不运行模型的情况下单独使用。

afxCreateIcon(fileName)...前面代码省略icon = afxCreateIcon(os.path.join(thisDir,'label.png'))toolset = getAFXApp().getAFXMainWindow().getPluginToolset()toolset.registerGuiMenuButton(buttonText='BeamAnalysis',object=BeamAnalysis_plugin(toolset),messageId=AFXMode.ID_ACTIVATE,icon=icon,kernelInitString='import ModelFunc',applicableModules=ALL,version='N/A',author='N/A',description='N/A',helpUrl='N/A')
文件清理函数通过deleteFunc函数来定义:
def deleteFunc(foldName):files = os.listdir(foldName)ex1 = []for i in range(1,30):ex1.append('.'+str(i))ex2 = ['.com','.dat','.ipm','.msg','.prt','.sim','.sta','.jnl']file_set = set(ex1+ex2)for item in files:fileSuffix = os.path.splitext(item)[1]filePath = os.path.join(foldName,item)if os.path.isfile(filePath):if fileSuffix in file_set:os.remove(filePath)print('file %s was deleted'%item)else:False
1、Abaqus二次开发|后处理360°视角动态展示模型
2、一张表掌握hypermesh快捷键
3、tcl/tk学习笔记(4)|一个案例带你玩懂主题组件ttk::notebook
4、tcl/tk学习笔记(3)|快速入局菜单menu组件
5、tcl/tk学习笔记(2)|一个简单计算器的GUI教给你的不只是计算
6、tcl/tk学习笔记(1)|8行代码实现列表框和滚动条联动