尝试使用subprocess但没有 os.call 选项。您可以使用此方法在后台运行 Abaqus:
import subprocess
path = location of file in any directory
abaqusCall = 'abaqus job=file_name cpus=2'
runCommand = 'cmd.exe /c ' + abaqusCall
process = subprocess.Popen(runCommand, cwd=path)
Abaqus 的问题是运行分析需要很长时间,因此如果您尝试运行“python_name.py”文件以获得结果,程序可能会出错,因为 *.odb 文件要么没有尚未创建,或不包含需要提取的数据。
您可以使用以下命令:
process.wait()
告诉 Python 在执行“python_name.py”之前等待 Abaqus 完成分析,但这会挂起你的 python 命令(或 GUI),直到 Abaqus 完成,这需要很长时间。
我使用的一种方法是从 Abaqus 中读取 *.sta 文件,其中包含求解时间和进度。因此,您可以编写一个序列,例如每 5 秒读取一次文件,并在执行结果提取文件之前监控作业何时结束。
数据提取的另一个技巧是,只要不使用 CAE 模块中的(导入)类,就可以使用以下命令运行 Python 脚本:
#get results and write them to myresults.txt
os.system('abaqus python python_name.py')