[英]How to export field output data and coordinates of a node using Abaqus/Scripting?
使用 Abaqus,我試圖在我的影響 model 的每個節點處導出節點坐標和 CSDMG 值,以使用 Python 重建它。 但是,我的程序似乎沒有提取所考慮節點的 CSDMG 值。 從我的 Python 程序中提取的值與從 Abaqus/Viewer 中導出的值不同。 來自 Abaqus/Viewer來自 Python 程序
我的程序:
for node in instance.nodes:
inc.append(i)
Noeud.append(node.label)
CoordX.append(node.coordinates[0])
CoordY.append(node.coordinates[1])
CoordZ.append(node.coordinates[2])
CSDMG.append(lastFrame.fieldOutputs['CSDMG General_Contact_Domain'].values[node.label].data)
i=i+1
我想倒數第二行在“node.label”之外的另一個節點讀取 CSDMG 值。 你有什么建議來改進我的代碼?
當您訪問字段 output 的值時,屬性values
充當FieldValue
對象的列表。 由於屬性values
像列表一樣工作,因此索引是從 0 開始的常規列表索引。索引不是節點標簽。
Abaqus 存儲字段 output 結果按標簽升序排序。 如果您只有一個實例,則字段 output 結果的順序與實例內的節點順序相匹配。 在這種情況下,您可以使用順序索引一一訪問這些值:
for i, node in enumerate(instance.nodes):
inc.append(i)
Noeud.append(node.label)
CoordX.append(node.coordinates[0])
CoordY.append(node.coordinates[1])
CoordZ.append(node.coordinates[2])
CSDMG.append(lastFrame.fieldOutputs['CSDMG General_Contact_Domain'].values[i].data)
另請注意,我使用內置的 function enumerate
替換了您對i
的手動增量。
如果您有多個實例,那么您首先必須檢索該特定實例的結果子集。 在獲得字段輸出的子集后,您可以按照與以前相同的方式進行操作。
field_output = lastFrame.fieldOutputs['CSDMG General_Contact_Domain'].getSubset(region=instance)
for i, node in enumerate(instance.nodes):
inc.append(i)
Noeud.append(node.label)
CoordX.append(node.coordinates[0])
CoordY.append(node.coordinates[1])
CoordZ.append(node.coordinates[2])
CSDMG.append(field_output .values[i].data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.