从命令行(noGui)执行python脚本时如何显示abaqus作业消息

时间:2019-04-30 09:40:04

标签: python cmd abaqus

在Abaqus CAE中执行python脚本时,错误,警告和其他消息会打印在专用的消息窗口中,并且回调函数可以进一步自定义消息行为。

在执行noGui脚本期间,所有消息都会被抑制,即使是那些真正有帮助的消息也是如此,例如“不支持关键字导入。”或“作业退出并出现错误。”

Job对象没有返回值可检查完成。 如果作业或作业导入足够早地失败,则不会生成任何文件来检查警告消息。

不支持回调功能:

  

仅当使用GUI交互式运行Abaqus / CAE时,消息传递命令才可用。

仅调用abaqus job=input的“通常”方式的主要问题是,我需要在模型生成结果时对其进行迭代,并试图将所有内容保留在一个python实例中(或更确切地说,是abaqus) 'python),这样我就可以轻松地移动对象并轻松更新模型,而无需重新读取30000行的输入文件。

按原样,我的主循环如下:

import os
import sys
import abaqus
import abaqusConstants as abqc

my_db = abaqus.Mdb(pathname='models.cae')
my_model = my_db.ModelFromInputFile('Model-1','./inpfiles/import_me.inp')

# do some checks on the model to see if all the keywords were imported
# manually read them in if not.

for i in [1]: # Future iteration loop

    my_job = my_db.Job(name='Job-1', model='Model-1', scratch='./work')
    my_job.submit()
    my_job.waitForCompletion()

    #check results, update model

有什么方法可以访问通常降级到消息对话框的abaqus消息?

更新

经过一番尝试后,只需说明sys.stdout = sys.__stdout__就能完成一层代码,即ModelFromInputFile函数传递的警告消息。但是,实际提交的作业的输出流仍未打印到屏幕上……部分成功?

使用this anser on redirected output也没有使果实结实,因为定义的abaqus中的sys.stdout没有fileno属性。

0 个答案:

没有答案