1

Pythonスクリプトを使用して要素または要素ノードのストレス値(平均化されていない)を読み取る方法を知っています。

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

しかし、節点での平均応力値が必要です。参考までに、ODB にはストレスのノード位置データが含まれていません (つまり、position=NODAL)。

4

1 に答える 1

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 応力コンポーネントを示します。スクリプトでデータを利用するには、文字列を作成するか、辞書をループしてpositionDescriptionfor each オブジェクトを解析する必要があります。

編集:ノードの平均が必要な場合は、ほとんど同じです。あなたがやる:

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

辞書オブジェクトは次のようにキー付けされます。

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

session.xyDataListFromField複数の呼び出しを発行でき、すべてのデータが入ることに注意してくださいxyDataObjects(たとえば、ストレスと緊張が必要な​​場合は、両方を一度に処理できます。)

完全を期すために、特定のコンポーネントのみが必要な場合は、次のようにリクエストできます。

 variable=(( 'S', INTEGRATION_POINT,((COMPONENT, 'S11'),)), )
于 2016-09-22T20:05:52.480 に答える