2017-05-26 88 views
0

我有一個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=...) 

當它被調用時。

任何幫助深表謝意。

此致, 我。

回答

2

你混合兩個不同的名字,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

1

根本不能使用字符串名稱。早在腳本中定義:

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

再比如做:

model.ConstrainedSketch.. 

如果您正在使用多個模型的工作,然後同樣創建模型對象的列表。

+0

謝謝你的幫助。我在六月的第一週解決了它。 – gama

相關問題