近期,收到了一些与python脚本相关的问题。脚本是自动执行重复工作的好方法。在这里,我想提供一些有助于您学习abaqus python脚本的技巧。
Abaqus会自动将Abaqus/CAE中完成的操作作为python命令存储在.rpy文件中。此文件是学习Python脚本的良好起点。
要快速测试Abaqus命令,可以使用命令行界面。它位于CAE界面,与消息区域位于同一位置。单击带有>>>的图标
您可以直接输入代码,然后按Enter。它还允许使用TAB键自动补充完成命令:如果您开始键入命令,然后按TAB键,将提供命令的选项,再次按TAB键将给出另一个选项,循环选择所有选项,直至最开始输入的命令。
Abaqus脚本接口(ASI)是使我们能够与Abaqus模型和数据进行交互的python代码。它在结构中包括许多数据类型,并带有修改数据的方法。为了处理Abaqus,我们需要使用此结构。例如,如果要使用某个输出,则需要知道在哪里找到它。有几种方法可以帮助我们解决这个问题。
.rpy文件:对.rpy文件中某些内容的引用显示了访问它的路径。例如,.rpy文件中的
a = mdb.models ['Model-1'].rootAssembly
行显示了访问装配体的路径。
手册:在《Abaqus脚本参考指南》中,给出了ASI的概述。这包括有关访问的信息,方法和成员的列表。
方法是对象上可用的功能。对于rootAssembly,这是一个很长的列表,包括deleteFeatures,getDistance,makeDependent,重新生成,翻译,锁定等。
成员是对象的属性,对于rootAssembly,这包括isOutOfDate,实例,曲面等。
使用命令行界面:命令行界面中的自动完成功能可以帮助确定对象的访问路径。对于Abaqus对象,可以分别使用__members__和__methods__查找该对象的成员和方法。输入mdb.models [name] .rootAssembly .__ members__将给出成员列表,就像在手册中找到的那样。
从脚本提交作业时,脚本将在作业运行时继续。如果作业是循环的一部分,则通常在第一个作业仍在运行时提交第二个作业,这会占用其他令牌和系统资源。这通常是不希望发生。.rpy文件不会告诉您如何解决此问题。
幸运的是,有专门用于解决此问题的方法:waitForCompletion。用法示例:
job.submit()
job.waitForCompletion()
如果脚本发出错误消息,请仔细阅读。它通常提供有关发生错误的行号以及错误类型的信息。例如上图,问题出现在第10行中,并且是KeyError。显然,未定义XYPlot-1。然后,我们可以检查该脚本语句,可能是拼写错误(标识符区分大小写);它可以在函数内部定义,而不能在函数外部使用;该脚本可以基于宏,而该宏已在此预先定义;否则我们可能会忘记一些东西。
要确定发生了什么,打印语句可能很有用。通过打印对象的值可以更清楚地了解正在发生的事情。一个简单的打印语句可以定义为:
print“string with what is being printed”, identifier
注释也很有价值。除了可以帮助理解机器代码外,它们还可以用于有效删除脚本的一部分,而无需完全删除。