“ 工作中经常需要处理这样的问题: 相同的模型需要分析30多种工况, 并且每一种工况均需要使用非线性求解以评估其性能. 由于ABAQUS standard general 分析步默认继承其上一个standard general分析部的应力应变结果, 所以该问题不可以采用一个inp文件解决, 本文中提供了根据载荷工况表自动生成各自独立的inp求解文件的解决办法.”
该类型问题生成的inp数量较多, 所以在求解分析时, 推荐采用使用python进行ABAQUS批处理-总体思路中的插件进行批量计算.
01
—
插件GUI设计
使用ABAQUS RSG插件制作工具搭建如下插件GUI:
该GUI的搭建全部可以在RSG中完成.
02
—
kernel文件思路
首先我们应该确保step是空的, 或者除了initial分析步之外其余的分析步均处于suppressed状态, 由于ABAQUS的Step对象不可迭代, 所以需要获取其所有键值进行手动迭代:
然后需要判断输入的step是Initial Step, 这一步的判断应该可以不加.
在读入工况原数据的时候, 应该支持Excel和csv两种格式, 为两种格式的文件分别设计读取函数, 使其读取后数据格式相同, 以便于后期的统一开发, 该处理思路会在以后的类似插件的开发中经常使用, 因为.xls与.csv都是常见的数据格式:
使用ABAQUS录制宏命令, 录制: 建立分析步A--->建立载荷A--->导出inpA--->suppress A
整理录制好的命令, 将其整合到kernel中进行循环.
进行Job 和 Step的名称标准化, 使用ABAQUS名称标准化工具, 因为无论是.xls还是.csv, 均有可能出现不符合ABAQUS命名规则的字符串出现.
03
—
补充说明
读取Excel/csv进行批量生产inp, 最难的部分在于力的作用逻辑, 因为涉及力与扭矩的判断, 并且有的点只受力的作用而不受扭矩的作用.
这需要进行判别(目前程序无法判别只受扭矩作用的情况, 当然这种作用方式在实际工作中也没有遇见过), 因为只受力的作用时该点有三个方向的载荷而普通的作用点是有六个方向的载荷的.
这部分的逻辑是我刚开始接触python的时候设计的, 属于陈年旧货, 现在拿来使用虽然没有逻辑问题, 但是还是有很大的优化空间, 只不过....以后再说吧.