簡體   English   中英

如何使用 Abaqus/Scripting 導出字段 output 數據和節點坐標?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM