ABAQUS中的Python脚本

问题描述:

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

我想对一个变量

指数创建一个循环= 1:1:4,

创建四个不同的模式和运行四个作业每个模型。

模型被称为“模型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 
##------------------------------------------------------------------------- 

我想使用字符串模型名称(与价值e ='Model-1'),而不是在python脚本中写入'Model-1'。

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

当它被调用时。

任何帮助深表谢意。

此致, 我。

你混合两个不同的名字,Model-1Model1

在你的循环创作,包括在modelname-。你可以做这样的事情:

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

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

此外,你应该使用

modelname='Model-' + index 

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

+0

谢谢你的回复。 Modelname可以是'Square','Trapezium-Model'等任何东西......基本的问题是如何对字符串Modelname进行编码,以便python可以读取:mdb.model [modelname] .Constrained ~~~。等等mdb.model ['Square']。约束~~~ – gama

+1

@gama我认为你错过了这一点。你的名字不能是“任何东西”,它必须是一个存在的名字,你需要根据需要拼写完全正确的连字符。 – agentp

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

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

再比如做:

model.ConstrainedSketch.. 

如果您正在使用多个模型的工作,然后同样创建模型对象的列表。

+0

谢谢你的帮助。我在六月的第一周解决了它。 – gama