You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Abaqus Python脚本:从含单元编号的元组批量创建单元集

从元组批量创建Abaqus单元集

问题描述

我有一个名为E3的元组,结构如下:

(array([ 136, 2593, 3061, 4348], dtype=int64),)

需要基于其中的单元编号创建单元集,目前只能手动逐个索引拼接:

mdb.models['Model-1'].rootAssembly.Set(elements=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements[E3[0][0]:E3[0][0]+1]+
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements[E3[0][1]:E3[0][1]+1]+
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements[E3[0][2]:E3[0][2]+1]+
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements[E3[0][3]:E3[0][3]+1]
, name='Set-0')

但E3的元素数量不固定且通常较多,这种方法完全不实用。尝试以下写法均报错:

  1. 直接使用元组索引:
mdb.models['Model-1'].rootAssembly.Set(elements=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements[E3], 
name='Set-0')

报错:TypeError: Invalid index type tuple

  1. 使用元组内的numpy数组索引:
mdb.models['Model-1'].rootAssembly.Set(elements=
mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements[E3[0]], name='Set-0')

报错:TypeError: only integer scalar arrays can be converted to a scalar index

解决方案

Abaqus的ElementArray对象不支持直接用numpy数组或元组批量索引,推荐以下两种系统化方法:

方法1:使用getFromLabels()批量获取单元(推荐,效率更高)

getFromLabels()是Abaqus API提供的批量获取单元的方法,直接传入单元编号列表即可:

# 提取元组中的numpy数组并转为Python列表
element_labels = E3[0].tolist()
# 获取零件实例对象
instance = mdb.models['Model-1'].rootAssembly.instances['Part-1-1']
# 批量获取单元
selected_elements = instance.elements.getFromLabels(element_labels)
# 创建单元集
mdb.models['Model-1'].rootAssembly.Set(elements=selected_elements, name='Set-0')

方法2:列表推导式逐个获取单元

如果无法使用getFromLabels()(比如低版本Abaqus),可以用列表推导式遍历单元编号,逐个获取单元对象:

instance = mdb.models['Model-1'].rootAssembly.instances['Part-1-1']
# 遍历numpy数组中的单元编号,生成单元对象列表
element_list = [instance.elements[eid] for eid in E3[0]]
# 创建单元集
mdb.models['Model-1'].rootAssembly.Set(elements=element_list, name='Set-0')

说明

  • 两种方法都能适配任意数量的单元编号,无需手动拼接索引
  • getFromLabels()是Abaqus官方推荐的批量操作方式,处理大量单元时性能更优

内容的提问来源于stack exchange,提问作者Victor Fachinotti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:40:16