我可以将命令行参数传递给Abaqus python吗?

cle*_*ine 5 python

我有一个abaqus python脚本,我一直用于参数研究.每次我想运行不同的选项时,进入代码并编辑它是很累的.我希望能够传递脚本参数,以便我可以运行不同的选项而无需更改代码.

我想做这样的事......

abaqus cae script='Script.py --verbose --data=someData.dat'
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上述内容,我也尝试过

abaqus python Script.py --verbose --data=someData.dat
Run Code Online (Sandbox Code Playgroud)

没有成功.这是可能吗?

小智 5

从Abaqus Scripting用户手册:

通过在命令行上输入 - 后跟由一个或多个空格分隔的参数,可以将参数传递到脚本中.这些参数将被Abaqus/CAE执行过程忽略,但它们可以在脚本中访问.有关详细信息,请参阅"Abaqus/CAE执行",Abaqus分析用户手册的第3.2.5节和"Abaqus/Viewer执行",Abaqus分析用户手册的第3.2.6节.


nag*_*don 5

很好找到Schickmeister.我不清楚如何实现,所以这是一个例子

在cmd.exe中启动abaqus python

abaqus cae noGUI
Run Code Online (Sandbox Code Playgroud)

输入一些python代码

>>>import sys
>>>print sys.argv
['C:\\ABAQUS\\6.13-2SE\\code\\bin\\ABQcaeK.exe', '-cae', '-noGUI', '-lmlog',     'ON', '-tmpdir', 'C:\\Windows\\TEMP']
>>>quit()
Run Code Online (Sandbox Code Playgroud)

看看有多少参数出现了?这就是为什么我们需要抓住最后一个现在使用参数"test.odb"启动你的python脚本

abaqus cae noGUI=odb_to_video.py -- test.odb
Run Code Online (Sandbox Code Playgroud)

并使用.检索脚本中的最后一个参数

odbname = sys.argv[-1]
myOdb = visualization.openOdb(path=odbname)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!