- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 abaqus-ython 脚本来提取节点坐标。为此,我首先提取原始节点位置,然后添加位移值。
但是对于我的 abaqus 模型之一,我注意到我提取的位移值与我在 abaqus 中找到的位移值不同(参见附图)
我不知道这是如何或为何发生的。有人可以帮助我吗?您可以在下面找到我的代码。
for ODBname in os.listdir("D:/r0333338/Documents/MP/nodal_files_genereren/OBD"): # directory van waar alle .odb bestanden zitten, hier worden ze allemaal
print 'Current File: '+ODBname #checken welke file er gebruikt wordt
ODBnamefull = 'D:/r0333338/Documents/MP/nodal_files_genereren/OBD/'+ODBname # Volledig pad naar de .odb file. ander wordt de file in de default work directory gezocht.
odb = openOdb(path=ODBnamefull) #openen van het ODB bestand
ODBalleenNaam = ODBname.rstrip('.odb') #om .odb weg te knippen
NodalName = ODBalleenNaam + '-nodal.txt' #naam ven het te schrijven bestand
for name, instance in odb.rootAssembly.instances.items(): #'name' is naam van elke part van in de assembly, zo kan de nodal coordinaten van het onvervormde testobject (part) achterhaald worden
print name
type(name)
name2 = 'DISK-1'
if name == name2:
numNodesTotal = len( instance.nodes ) #aantal nodes
frame = odb.steps[ 'Step-1' ].frames[-1] #informatie van de laatste frame van Step-1 gebruiken
dispField = frame.fieldOutputs['U'] #verplaatsingsveld van laatste frame van step-1
print 'total numer of nodes: '+ str(numNodesTotal) #checken hoeveel nodes er zijn
for i in range( numNodesTotal ): #voor elke node :
curNode = instance.nodes[i] #informatie van de huidige node
#print curNode.label #nummer van de huidige node
#2D verplaatsing omzetten naar 3D verplaatsing
U1 = dispField.values[i].data[0] #X-verplaatsing aan U1 geven
U2 = dispField.values[i].data[1] #Y-verplaatsing aan U2 geven
array = [] #maken van een lege array voor invullen van de coordinaten
array.append(U1) #X-verplaatsing toevoegen
array.append(U2) #Y-verplaatsing toevoegen
array.append(0) #Z-verplaatsing toevoegen
print 'node: '
print curNode.label
print 'displacement: '
print array #checken van 3D verplaatsing
print 'coordinates: '
print curNode.coordinates
odb.close()
else:
print 'name is not DISK-1 but: ' + str(name)
最佳答案
您应该直接从字段数据中提取节点标签:
curNodeLabel=dispField.values[i].nodeLabel
然后您需要使用它来获取节点:
curNode=instance.getNodeFromLabel(curNodeLabel)
不要假设节点索引与字段数据索引相同。
为了保持一致性,我会进一步使用 for
循环:
for i in range( len(dispField.values) ):
关于python - abaqus python,为什么提取的位移值不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167492/
当我尝试使用以下命令从 Windows 命令行运行 Abaqus PDE(Python 开发环境)时: abaqus cae -pde 我在命令行中收到以下错误: pde:atxGuiSvr.ipcS
我正在对一些 Abaqus 模拟进行参数化扫描,因此我正在使用 waitForCompletion()防止脚本过早运行的功能。然而,有时参数组合会导致模拟在扫描中的一个或两个参数上挂起大约半小时到一个
我正在尝试在 Abaqus 中应用塑性应变初始条件,如下所示: ** ----------------------------------------------------------------
我正在尝试获取曲面中每个面的法线(编辑:曲面是从实体中提取的,而不是从壳中提取的)。我似乎无法获得面部物体。根据scripting reference guide这应该是语法: mdb.models[
我正在尝试优化某种 Material 的孔隙率分布。我想可视化结果。我可以使用'visualize->material'来可视化不同的 Material ,但是他给每种 Material 随机颜色。我
我正在尝试制作一个 python 脚本来从 ODB 文件(来自 abaqus)中提取节点坐标。到目前为止,我已经想出了下面附加的代码(不要介意我放在#后面的额外信息,有时它只是为了让我可以跟踪我在做什
我将 Abaqus 2020 链接到英特尔 oneAPI ifort 编译器,它运行正常,直到出现此问题。当我尝试使用 /iface:cref 时出现“错误 LNK2019:函数 umat.R 中引用
我是 Abaqus Python 脚本新手。我的脚本中的以下代码行引发关键字错误(类型错误:mergeWire 上的关键字错误)。 myPart.WirePolyLine(points = myPoi
有没有办法用abaqus测量/计算生成模型的表面积? 我熟悉 abaqus CAE 或脚本版本中的工具 -> 查询... -> 质量属性: from abaqus import * prop=mdb.
我在 Abaqus 中编写脚本,在那里我用切圆(如奶酪)粉碎圆形和正方形。我需要在部件之间放置 Contact,所以我需要 Surface。 宏管理器生成: s1 = a.instances['kol
Abaqus 无法找到 C++ 编译器。我需要在 Abaqus 和 Intel Parallel Studio 之间设置一个需要 Visual Studio 的接口(interface)。无论我使用什
我用 python 编写了一个脚本,用于在 Abaqus 中对一组文件进行后处理。该脚本按顺序打开abaqus输出数据库文件,读取多个节点的结果,将这些结果写入.txt文件中并关闭odbs(输出数据库
我想为 Abaqus 创建一个 Python 脚本,其中将使用 Scipy 库。不幸的是,Abaqus 没有那个库。它可以安装,但我想以不同的方式进行。 我的想法是编写一个函数,该函数将接受参数,将其
我正在使用 Abaqus/Python 进行有限元分析。我遇到了以下问题:我有一个 3D 域,它由包含边和圆段的 2D 域组成,并且在三维中拉伸(stretch)。现在我想对该域进行网格划分,约束条件
Abaqus 选择的默认元素是 C3D8R,我想将其更改为 C3D8I。我知道如何在 CAE 中更改元素类型,甚至使用 Python 递归更改元素类型,但不知道如何更改默认值。 问题是,当我分区和重新
我正在尝试使用 abaqus-ython 脚本来提取节点坐标。为此,我首先提取原始节点位置,然后添加位移值。 但是对于我的 abaqus 模型之一,我注意到我提取的位移值与我在 abaqus 中找到的
在ubuntu上安装Abaqus CAE,选择安装目录后继续,出现如下错误 Creating child process failed. Log ID is 0001 Action LaunchAPp
当我运行时 call abaqus job=some_name interactive 可能会发生两件事: 如果这是我第一次运行该作业,则不会进行任何查询。 但是,如果工作存在,我会收到此消息: O
我希望能够运行一个简单的命令来检索 Abaqus 的事件版本。 我曾希望 abaqus -v 或 abaqus -version 可以工作。但是,这些命令无效。 运行 abaqus whereami
我希望能够运行一个简单的命令来检索 Abaqus 的事件版本。 我曾希望 abaqus -v 或 abaqus -version 可以工作。但是,这些命令无效。 运行 abaqus whereami
我是一名优秀的程序员,十分优秀!