一键完成有限元前处理和后处理是一件令人兴奋的事情,让自动化解放你的双手。这不,基于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行代码实现列表框和滚动条联动