2017-05-26 103 views
0

私はABAQUSモデルを作成し、ジョブを実行するためのPythonスクリプトを持っています。ABAQUSのPythonスクリプト

は、私は、変数

インデックスの上にループを作成したい= 1:1:4、

4種類のモデルを作成し、各モデルのための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'asは、以下の「言ってエラーを与える:

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

    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 
##------------------------------------------------------------------------- 

私はVALUの文字列のモデル名を(使用したいですPythonスクリプトで 'Model-1'を書くのではなく、

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

と呼ばれています。

ご協力いただきありがとうございます。

よろしくお願いいたします。 私。

答えて

2

あなたは、2人の異なる名前、あなたのループの作成でModel-1Model1

を混合modelname-が含まれています。それはあなたに余分な引用符なしの文字列を与えるので、あなたが

modelname='Model-' + index 

を使用する必要があり、また

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

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

:あなたはこのような何かを行うことができます。

+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

ありがとうございます。私は6月初めにそれを解決しました。 – gama

関連する問題