2016-09-22 104 views
0

私はpythonスクリプトを使用して要素または要素のノードのストレス値(unavaged)を読み取る方法を知っています。pythonスクリプトを使用してabaqus odbファイルから平均節点応力を読み取るにはどうすればよいですか?

field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4') 

しかし、私はノードで平均ストレス値を求めています。参考までに、私のodbにはストレスのノード位置データが含まれていません(つまり、position = NODAL)。

+0

'position = NODAL'を指定すると、AbaqusはINTEGRATION_POINTの値を補間する必要があります。 – hgazibara

+0

こんにちは@hgazibara、ご返信ありがとうございます。それは動作しません。私はposition = NODALを使用すると空の配列を取得します。 –

+0

どのように 'region'を定義しましたか?それは要素セット、ノードセット、...ですか? – hgazibara

答えて

0

これは、そうしなければならないよりも厄介なことの1つです。 あなたはxydataを作成する必要があります。

session.xyDataListFromField(odb=odb, 
     outputPosition=ELEMENT_NODAL, 
     variable=(('S', INTEGRATION_POINT),), 
     elementSets=('PART-1-1.SETNAME',)) 

これは、すべての要素のすべてのノードとすべての応力成分(すなわち、巨大な)のためのオブジェクトを持つ辞書を作成します。

session.xyDataObjects['S:S11 PI:PART-1-1 E: 15 N:2'].data 

はあなたがいずれかの文字列を構築する必要があるスクリプトでデータを利用するために素子15に関連付けられているノード2の11の応力成分を与える、または:残念ながら辞書は、例えば、面倒な記述文字列をキーとされます辞書の上をループし、各オブジェクトのpositionDescriptionを解析します。

編集:節点の平均がほぼ同じになるようにする場合は、編集します。

session.xyDataListFromField(odb=odb, 
     outputPosition=NODAL, 
     variable=(('S', INTEGRATION_POINT),), 
     nodeSets=('PART-1-1.SETNAME',)) 

と辞書オブジェクトは次のようにキーが付いています:あなたは何あなたが複数のsession.xyDataListFromFieldコールを発行することができます

session.xyDataObjects['S:S11 (Avg: 75%) PI:PART-1-1 N:2'].data 

ノートとあなたがストレスをしたいとあなたを痛めている場合、すべてのデータは、例えば、(xyDataObjectsに入ります一度に両方の処理が可能)

を完全にするために、あなただけのように要求することができ、特定の構成要素(複数可)したい場合:。

+0

ありがとう@agentp、しかし、私はユニークな節点の値が必要です。 odb表示オブジェクトから一意の節点値を得ることは可能ですか? –

+0

gotcha、編集を参照してください。 – agentp

関連する問題