我試圖從 .odb 中提取節點的最大主應力和應變(S 和 E)。我模擬了一根承受機械疲勞的梁。我是 Abaqus 腳本的新手,所以我試圖從特定節點列印應力 S11 值。我沒想到的是,在運行腳本后,我發現同一個節點有兩個不同的值。我決定列印坐標,它們匹配。我知道該節點屬于兩個元素,但值不應該相同嗎?我錯過了什么嗎?有人可以解釋為什么會這樣嗎?
# data_extraction.py
from abaqus import *
from odbAccess import *
from abaqusConstants import *
from odbSection import *
import odb
mypath = 'C:/Users/jjb21183/Desktop/Mauro/Abaqus/Exercise-MasterShiWang/T3/'
myodb = 'Job-M4.odb'
odb = openOdb(path = mypath myodb)
lastframe = odb.steps['Step-1'].frames[-1]
stress = lastframe.fieldOutputs['S']
elementAmount = len(stress.values[0].instance.elements)
myinstance = odb.rootAssembly.instances['PART-1-1']
for i in range(0, elementAmount):
element = myinstance.elements[i]
for j in range(0, 8):
nodes = element.connectivity[j]
N = myinstance.nodes[nodes-1]
nodeCoordinateX = N.coordinates[0]
nodeCoordinateY = N.coordinates[1]
nodeCoordinateZ = N.coordinates[2]
# l1 = [nodeCoordinateX, nodeCoordinateY, nodeCoordinateZ]
# print l1
if (nodeCoordinateX == 4.0 and nodeCoordinateY == 10.0 and nodeCoordinateZ == 0.0):
el_stress = stress.getSubset(region = element)
print [nodeCoordinateX, nodeCoordinateY, nodeCoordinateZ]
print el_stress.values[0].data[0]
我的代碼的輸出
非常感謝您的幫助。
uj5u.com熱心網友回復:
實際上,您不是在查看節點值,而是查看集成點的值。Abaqus 計算積分點的結果。并且由于積分點位于不同的位置,因此值不同。
要獲得節點應力或應變結果,您可以使用命令session.writeFieldReport。此命令將螢屏上顯示的物體的欄位輸出資料寫入檔案。
因此,要在螢屏上顯示所需的節點,請創建葉物件并在螢屏上顯示。
import displayGroupOdbToolset as dgo
leaf = dgo.LeafFromNodeSets(nodeSets=('Node_Set', ))
session.viewports['Viewport: 1'].odbDisplay.displayGroup.replace(leaf=leaf)
或者您也可以從節點標簽創建葉物件,
import displayGroupOdbToolset as dgo
leaf = dgo.LeafFromModelNodeLabels(nodeLabels=(('PART-1-1', ('10', '11','12')),))
session.viewports['Viewport: 1'].odbDisplay.displayGroup.replace(leaf=leaf)
其中,'Node_Set'是節點集,'10', '11','12'是節點標簽。現在你可以使用writeFieldReport命令作為
session.writeFieldReport(fileName='outData.dat', append=ON,
sortItem='Node Label', odb=odb, step=0, frame=1, outputPosition=NODAL,
variable=(('S', INTEGRATION_POINT, ((INVARIANT, 'Max. Principal'), )), ))
有關更多詳細資訊,請查看 Abaqus 腳本指南。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334983.html
標籤:Python python-2.7 脚本编写 abaqus
上一篇:決議明文API回應
