python - 如何通过使用 Python 脚本访问 ABAQUS odb 文件(不是 MDB 文件)中的 INSTANCE 来了解某个零件的材料名称?
问题描述
我试图从 ABAQUS ODB 文件的“部分实例”中了解材料名称。到目前为止,我知道如何获取特定的实例名称,我将代码放在下面。请让我知道如何访问它。我已经阅读了 abaqus 脚本指南手册,但我无法找到。问题是我们可以在模型数据库(mdb)文件中输入可计算的材料属性名称,但不要将其分配给材料。所以我们可以通过访问ODB FILE轻松得到我们想要的。
instance1 = odb.rootAssembly.instances['instance_name']
提前感谢您的时间
解决方案
在 Abaqus 中,为了使用材料,您必须执行以下操作:
- 通过定义截面名称和材料名称来创建截面。
- 通过创建截面分配将截面分配给模型的某些部分。
因此,要检索分配给实例任何部分的所有材料,您需要:
- 查找在实例级别定义的所有部分分配。
- 确定用于部分分配的部分并查找该部分。
- 从该部分检索材料名称。
截面分配可以存在于装配、零件和实例级别。既然你在谈论实例,我将专注于这一点。
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 object”和“46.1 Section object”章节;或您正在使用的 Abaqus 版本中的相应章节。
推荐阅读
- javascript - 到达目标部分时淡出 vue.js 中的 Div / Section
- javascript - JavaScript 待机功能是否存储在 RAM 或硬盘中?
- graphql - 如何定义特定于 GraphQL 中两个节点的连接的值?
- javascript - Bokeh 中的自定义 javascript 回调以从数据框中选择列并更新绘图
- javascript - ReactJS - Array.map 和键的行为不明确
- python - SQLAlchemy - 如何创建没有项目的一对多关系?
- angular - Angular,有没有办法“markAsTouched”没有表单的字段?
- python - Python3.7 venv 不创建虚拟环境目录
- linux - 对“_gfortran_transfer_character_write”的未定义引用
- vba - Excel 复制到多个工作表