【问题标题】:Create a node set in Abaqus programatically (python scripting)以编程方式在 Abaqus 中创建节点集(python 脚本)
【发布时间】:2019-07-06 04:29:49
【问题描述】:

如果有人能告诉我我缺少什么,我将不胜感激。我正在尝试从合并的实例部分创建一组几何相关的节点。生成几何体、实例、合并和网格化结果部分后,代码如下:

all_nodes = model_assembly.instances[merged_part_instance_name].nodes
left_nodes = []
bottom_nodes = []
for n in all_nodes:
    xcoord = n.coordinates[0]
    ycoord = n.coordinates[1]
    if xcoord > xmin and xcoord < xmax:
        left_nodes.append(n)
    if ycoord > ymin and ycoord < ymax:
        bottom_nodes.append(n)

使用上面的代码,我有一个'MeshNode objects' 的列表,所以写这个可以正常工作:

model_assembly.Set(nodes=all_nodes, name='Set-all')

但是,当我写的时候:

model_assembly.Set(nodes=left_nodes, name='Set-left')

它给了我错误Feature creation failed. 我在CAE控制台上查了一下,all_nodes[0]和left_nodes[0]的结构一样:

mdb.models['mymodel'].rootAssembly.instances['merged_part_instance'].nodes[x] # x may differ

尽管如此,我注意到打印列表会产生不同的结果:

>>>print(all_nodes)
['MeshNode object', 'MeshNode object', ...

>>> print(left_nodes)
[mdb.models['mymodel'].rootAssembly.instances['merged_part_instance'].nodes[57], mdb.models['mymodel'].rootAssembly.instances['merged_part_instance'].nodes[59],...

那么,为什么它们不同?我可以修复它还是有更好的方法来实现它? 提前致谢

【问题讨论】:

    标签: python scripting set nodes abaqus


    【解决方案1】:

    看起来assembly.Set 方法需要一个MeshNodeArray 作为输入,所以这样做解决了我的问题:

    good_left_nodes = mesh.MeshNodeArray(left_nodes)
    model_assembly.Set(nodes=good_left_nodes , name='Set-left')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      相关资源
      最近更新 更多