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-1
和Model1
在你的循环创作,包括在modelname
-
。你可以做这样的事情:
##-----------------------------------------------------------------------
index='1'
modelname='\''+'Model-' + index+ '\''
# Square Part is created
mdb.models[modelname].ConstrainedSketch(name='__profile__', sheetSize=sqrlen)
##-------------------------------------------------------------------------
此外,你应该使用
modelname='Model-' + index
因为这会给你一个字符串,没有额外的引号。
答
根本不能使用字符串名称。早在脚本中定义:
model=mdb.models['Model-1']
再比如做:
model.ConstrainedSketch..
如果您正在使用多个模型的工作,然后同样创建模型对象的列表。
+0
谢谢你的帮助。我在六月的第一周解决了它。 – gama
谢谢你的回复。 Modelname可以是'Square','Trapezium-Model'等任何东西......基本的问题是如何对字符串Modelname进行编码,以便python可以读取:mdb.model [modelname] .Constrained ~~~。等等mdb.model ['Square']。约束~~~ – gama
@gama我认为你错过了这一点。你的名字不能是“任何东西”,它必须是一个存在的名字,你需要根据需要拼写完全正确的连字符。 – agentp