python - 是否可以使用用户元素定义网格并在 Abaqus/CAE 中使用 Python 指定其属性,而无需编辑输入文件?

标签 python mesh abaqus

我不确定这是否可行,但我想使用 Python 脚本接口(interface)在 Abaqus/CAE 中创建包含用户定义元素的网格。这将至少由 CAE 方面的两个部分组成:定义节点和连接性,以及定义 Material 属性。

例如,我熟悉以几种不同的方式使用标准元素创建零件和网格。一个相当可读的版本可能是这样的:

m = mdb.models[modelName]
newPart = m.Part(name='NewPart', dimensionality=THREE_D, type=DEFORMABLE_BODY)

for elemLabel,elemNodes in myElementDictionary.items():
    nodeObjectTuple = tuple(newPart.nodes.sequenceFromLabels(elemNodes))
    newPart.Element(nodes=nodeObjectTuple, elemShape=HEX8, label=elemLabel)

这是否适用于用户定义的元素,只要它们与元素形状匹配(例如 HEX8)?如果是这样,如何定义用户元素属性?我在文档中没有看到相关命令。

编辑:通常,用户元素属性是通过输入文件指定的(例如*USER ELEMENT 和*UEL PROPERTY)。我想知道是否有一种方法可以通过 Python 脚本接口(interface)实现此目的,而无需以某种方式编辑输入文件 - 即在 Abaqus/CAE 模型数据库中。另外,我已经为实际的用户元素定义和行为编写了子例程,这不是我要问的。

最佳答案

其他评论正确指出 Abaqus/CAE 中不存在所请求的功能,并建议生成输入文件,然后进行编辑以插入必要的定义。

但是,我发现可以在写入输入文件之前使用 Abaqus/CAE 中的 Python 接口(interface)插入 KeywordBlock 对象。指定用户元素的示例:

mdb.models['Model-1'].keywordBlock.replace(0, """
** 
** PARTS
*user element, type=u1113, nodes=6, coordinates=2, properties=8, i properties=3, 
 variables=6
 1,2
*element, type=u1113, elset=myUser, input=1113.dat
*uel property, elset=myUser
 1.0e6, 1.0e6, 0.25, 0.25, 0., 0., 650., 0.001,
 1, 1, 0
** ASSEMBLY
**""")

关于python - 是否可以使用用户元素定义网格并在 Abaqus/CAE 中使用 Python 指定其属性,而无需编辑输入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203619/

相关文章:

python - 巴克斯Python : How can I edit or remove data from an odb output database

python 创建任意类型的空对象?

python - 无法将变量传递给函数

python - 将具有不同数量整数的文本文件读取到多个列表中

c# - Unity3D - Mesh.colors 非常慢?

opengl-es - 多边形的分割和三角剖分

python - 如何使用 abapy 提取不同的 Field 输出数据?

python - 如何在Python中创建表?

python - Pandas DataFrame 中每月平均每日记录数

3d - 在meshlab中着色网格边缘