如何使用Python脚本通过访问ABAQUS odb文件(而非MDB文件)中的INSTANCE来知道某个零件的材料名称?

时间:2018-08-13 13:47:04

标签: python scripting abaqus

我试图从ABAQUS ODB文件的“零件实例”中知道材料名称。到目前为止,我知道如何获取特定的实例名称,将代码放在下面。请让我知道如何访问它。我已经阅读了abaqus脚本编写指南手册,但无法找到。问题是我们可以在模型数据库(mdb)文件中输入许多材料属性名称,但不要将其分配给材料。因此,我们可以通过访问ODB文件轻松获得所需的内容。

instance1 = odb.rootAssembly.instances['instance_name']

谢谢您的时间

1 个答案:

答案 0 :(得分:0)

在Abaqus中,为了使用材料,您必须执行以下操作:

  1. 通过定义部分名称和材料名称来创建部分。
  2. 通过创建部分分配,将部分分配给模型的某个部分。

因此,要检索分配给实例任何部分的所有材料,您需要:

  1. 查找在实例级别定义的所有部分分配。
  2. 确定用于部分分配的部分并查找该部分。
  3. 从该部分检索材料名称。

部分分配可以存在于装配,零件和实例级别。由于您是在谈论实例,因此我将专注于此。

odb = session.odbs[yourOdbName]

root_assembly = odb.rootAssembly
sections = odb.sections

instance_name = 'yourInstanceName'
section_assignments = root_assembly.instances[instance_name].sectionAssignments
materials = []

for section_assignment in section_assignments:
    section_name = section_assignment.sectionName
    section = sections[section_name]
    materials.append(section.material)

列表materials现在应该包含您要查找的材料。

有关脚本访问这些对象的更多详细信息,请参阅Abaqus 6.14文档中的“ 44.1 SectionAssignment对象”和“ 46.1 Section对象”两章;或您使用的Abaqus版本中的相应章节。