使用 python 脚本在 ABAQUS 中进行节点位移
Nodal displacement in ABAQUS using python script
我想使用 python 脚本获取特定节点的 U2 位移:
dy = odb.steps['LoadingStep'].frames[-1].fieldOutputs['U'].values[node_no].data[1]
问题是 [value index]
与节点号不匹配。这意味着无法使用 values[10]
.
找到第 10 个节点的输出
如何获取特定节点的位移?
您的索引值可能存在一些错误(例如,标签为“10”的节点可通过索引“9”访问)。
首先,尝试检查 Abaqus 查看器 python 解释器是否使用 node_no
:
获得正确的节点
nd = odb.rootAssembly.instaces['MY_INSTANCE'].nodes[node_no]
highlight(nd)
Note that it will be much easier if, during the generation of your model, you define a Set
with your node(s) of interest: after you can access them as easy as:
for nd in odb.rootAssembly.nodeSets['MY_NODE_SET']:
print(nd.label)
当您确定节点时,您可以获得 FieldOutput 的子集,因此您不会被 FieldValueArray 中元素的顺序所困扰 values
:
fieldU = frame.fieldOutputs['U']
ndFieldU = fieldU.getSubset(region=my_node, position=NODAL)
ndU2 = ndFieldU.values[0].data[1]
我想使用 python 脚本获取特定节点的 U2 位移:
dy = odb.steps['LoadingStep'].frames[-1].fieldOutputs['U'].values[node_no].data[1]
问题是 [value index]
与节点号不匹配。这意味着无法使用 values[10]
.
如何获取特定节点的位移?
您的索引值可能存在一些错误(例如,标签为“10”的节点可通过索引“9”访问)。
首先,尝试检查 Abaqus 查看器 python 解释器是否使用 node_no
:
nd = odb.rootAssembly.instaces['MY_INSTANCE'].nodes[node_no]
highlight(nd)
Note that it will be much easier if, during the generation of your model, you define a
Set
with your node(s) of interest: after you can access them as easy as:for nd in odb.rootAssembly.nodeSets['MY_NODE_SET']: print(nd.label)
当您确定节点时,您可以获得 FieldOutput 的子集,因此您不会被 FieldValueArray 中元素的顺序所困扰 values
:
fieldU = frame.fieldOutputs['U']
ndFieldU = fieldU.getSubset(region=my_node, position=NODAL)
ndU2 = ndFieldU.values[0].data[1]