1 直接上菜
一个零件的有限元模型如下图所示,采用壳单元建模,重量几百克左右,采用mm、tonne单位制。要读取模型每个单元的质量。
读取所有单元质量的Python脚本xxxx.py如下图所示。注意下图中with open()语句,一句是Python 3的格式,一句是Python 2的格式。由于Abaqus使用Python2.7,所以采用第2种格式。使用这两种格式向CSV文件写入数据行时,不会间隔插入空行。
在Abaqus中运行上图脚本文件。
打开文件看一下读取的单元质量数据。每个单元质量0.11克左右。
2 收人之鱼
向CSV写入输入无空行的格式,是向别人学来的。《python2/python3中关于写入csv文件时会空一行以及中文编码问题的解决办法总结》一文作了详细说明。从该文截图三张,以表感谢!(下面第二图注错,应为Python3)
3 授人以渔
在帮助文件中查看一下getMassProperties()的介绍,如下所示。该方法可以返回part和region的质量特性。要读取单元质量,用part是不行了,只能用region试试。
继续往下翻帮助文件,一行代码,柳暗花明,如下图所示。下图中将e[1:100]共计99个单元作为一个region,那么,一个单元就可以表示为e[i:i 1](Python列表切片操作)。
再翻翻看,要导入regionToolset包,如下图所示。
4 再尝试一个神器
想看看在软件界面中读取单元质量,会是什么效果。打开ABAQUS_PythonReader神器,查询一个单元的质量,竟然无脚本记录!
奇怪的事情发生了,框选一个单元,Done(或中键),出现下图消息提示区前9行数据。单击选取一个单元,Done(或中键),出现下图后面3行数据。