我需要将在ABAQUS PDE中开发的python脚本转换为可执行文件

时间:2017-07-10 07:30:18

标签: python pde abaqus

我想将python脚本转换为可执行文件。 这个python脚本将调用另一个python脚本,这是要求。

脚本:

from abaqus import *
from abaqusConstants import *
import __main__
import allAbaqusMacros

def Macro1():

import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
import os

execfile('C:\\\\Users\\\\Me\\\\Desktop\\\\Sample.py')""") - This also works

但是,该代码仅适用于ABAQUS PDE(类似于Excel中的VBA编辑器)

为了跟踪几个python脚本的用法,我这样做。我知道我们可以从File-> RunScript或带有Abaqus命令的CLI中运行它。但这不是要求。

我希望它作为一个文件,只需单击即可运行其他所需的脚本。另外,我已经尝试将其作为批处理文件在命令提示符下运行它。

批处理命令:

"C:\SIMULIA\Abaqus\6.14-3\code\bin\abq6143.exe" cae script =C:\Users\Me\Desktop\Sample.py %*

这可行,但它会启动一个新会话。我使用“noGUI”而不是脚本,但是

我收到此错误消息

getInputs cannot be used with the -noGUI option.

另外,我也尝试使用以下命令运行它。

C:\Python27\python.exe C:\Users\Me\Desktop\Sample.py

为此,错误消息是

Traceback <most recent call last>:
  File "C:\Users\Me\Desktop\Sample.py", line 1, in <module>
    from abaqus import *
  File "SMAPyModules\SMAPyaAbqPy.m\src\abaqus.py", line 5 in <module>
  File "SMAPyModules\SMAPyaUtilsPy.m\src\i18n.py", line 1 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uti.py", line 5 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\utiinternal.py", line 52 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uticty.py", line 145 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uticty.py", line 136 in _loadAbaqusDll
Value Error : dll not found : ABQSMABasShared.dll

Press any key to contuinue...

有没有办法将Abaqus PDE或任何插件开发环境中开发的Python脚本转换为可执行文件? 请帮忙

1 个答案:

答案 0 :(得分:4)

Abaqus / Python API可用于各种用途,包括前/后处理任务,GUI构建和创建宏。我可以看到你刚开始并且在一些误解的情况下运作,所以我会轻轻地推动你仔细阅读官方文档,它们回答你所有的问题以及更多,非常完全 1

但是,因为这些文档可能看起来有很多信息需要吸收,所以我会尽量给你一些有用的提示。

  1. 您无法仅使用标准Python安装来访问Abaqus模块,例如您尝试使用命令python file_name.py
  2. 您可以使用与Abaqus捆绑的相同Python使用abaqus python [file_name.py]从系统shell(例如CMD或Bash)运行常规Python脚本。
  3. 如果只键入abaqus python,则可以从系统shell启动交互式Python会话。注意,这不是Abaqus内核进程的一部分 - 这意味着你不能以这种方式导入任何与Abaqus相关的模块,但是Python标准库应该可用。
  4. 如果您想要的对象/功能是通过model数据库(Mdb)提供的,则Abaqus模块需要访问CAE内核(和许可证)。您可以使用abaqus cae file_name.py从系统shell调用这些类型的脚本。此命令启动新的CAE会话并运行您的脚本。
  5. 您可以运行访问CAE内核的脚本,而无需使用备选方案abaqus cae noGUI=file_name.py启动新的CAE会话。
  6. 如果没有图形CAE会话,某些功能无法使用,例如getInputs,因为它需要GUI弹出窗口。
  7. 相反,您可以从系统shell传递命令行参数,例如:abaqus cae noGUI=MyScript.py -- value1。您可以根据需要使用任意数量的命令行参数。或者,将参数放入文件中,然后在脚本中打开/读取文件。
  8. 您需要导入适当的模块。例如,您不再需要import __main__。如果发生错误,Python回溯通常会告诉您错误。
  9. 如果您愿意,可以将Abaqus执行命令放入批处理脚本中,这样您就可以双击它来运行。
  10. 您可以使用execfile语句在其他Python脚本中使用函数/对象,而不是import。例如from File_A import function1from File_B import function2等。这些导入的Python脚本通常称为模块。
  11. 这些提示应该可以帮助你开始,但请记住它只是冰山一角,可以这么说。有关进一步的执行选项和详细信息,请参阅Abaqus分析用户手册&gt; <简介,空间建模和执行>工作执行&gt;执行程序。

    1 具体来说,请参阅Abaqus分析用户手册,了解如何从系统shell调用/执行Python脚本,并参阅Abaqus Scripting用户手册以获取有用的示例和解释。 Python如何与Abaqus一起使用。这应该与Abaqus Scripting Reference Manual一起阅读,其中提供了完整的API详细信息。