0

我有一个 python 脚本来创建 ABAQUS 模型并运行作业。

我想在一个变量上创建一个循环

指数=1:1:4,

创建四个不同的模型并为每个模型运行四个作业。

例如,在以下行中,模型被命名为“Model-1”:

##-----------------------------------------------------------------------
mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=sqrlen) 
##-----------------------------------------------------------------------

在创建循环时,我创建了一个字符串,如下所示:

##-----------------------------------------------------------------------
index='1'
modelname='\''+'Model' + index+ '\'' 

# Square Part is created
mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)
##------------------------------------------------------------------------- 

当我在 ABAQUS 中运行脚本时,它会给出错误提示“Model1”,如下所示:

##------------------------------------------------------------------------- 

  File "d:/abaqus_working_directory/scripting_example/simulation/scripting_loop.py", line 22, in <module>
    mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)  #### sqrlen
KeyError: 'Model1'
Exit from main file  [Kernel]: d:/abaqus_working_directory/scripting_example/simulation/scripting_loop.py
##------------------------------------------------------------------------- 

我想使用字符串 modelname( with value ='Model-1') 而不是在 python 脚本中写 'Model-1'

mdb.models['Model-1'].ConstrainedSketch(name=....)
mdb.models[modelname].ConstrainedSketch(name=...)

当它被调用时。

任何帮助都深表感谢。

真诚的,我。

4

2 回答 2

2

您正在混合两个不同的名称,Model-1并且Model1

在您的循环创建中,包括-modelname. 你可以这样做:

##-----------------------------------------------------------------------
index='1'
modelname='\''+'Model-' + index+ '\'' 

# Square Part is created
mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)
##------------------------------------------------------------------------- 

此外,您应该使用

modelname='Model-' + index

因为这会给你一个没有额外引号的字符串。

于 2017-05-26T04:20:09.357 回答
1

根本不使用字符串名称。在脚本的早期定义:

 model=mdb.models['Model-1']

然后例如:

 model.ConstrainedSketch..

如果您正在使用多个模型,那么类似地创建一个模型对象列表。

于 2017-05-26T12:25:55.357 回答