shikang 发表于 2016-6-6 11:38:49

Python如何将指定节点定义为一个节点集合

本帖最后由 shikang 于 2016-6-7 03:17 编辑

最近遇到一个需要设置节点集合的问题。已经知道节点集合中各个节点的索引(节点与节点之间不一定相邻)。现在想通过已知的节点信息来定义一个节点集合。类似如下的代码
    p = mdb.models['Model-1'].parts['Part-1']
    n = p.nodes

现在想把 n,n,n,n,n,.... 等节点放到一个节点集合 nodes 中,进而可以使用类似如下代码进行设置为集合'Set-1'
   p.Set(nodes=nodes, name='Set-1')
不知道可以通过怎么转换得到集合?

目前已经找到答案了,这里把答案总结如下,希望能帮助到一些人。难得再打字,我直接复制我博客的记录了。感谢bobozjl的回答!
         在建模过程中有时我们需要将某些节点组合成一个集合,这时可以使用mesh模块提供的MeshNodeArray函数进行操作(转换)。如果后处理需要建立集合,可以使用NodeSetFromNodeLabels函数进行操作。
例子:      #下面的算例演示将节点集合Set-T的索引为1、4、13的节点组合成一个新的集合Set-obj      #**********************************      import mesh      n = mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].sets['Set-T'].nodes      b= for x in range(3) ]      b=n      b=n      b=n      nodes=mesh.MeshNodeArray(b)      a = mdb.models['Model-1'].rootAssembly      a.Set(nodes=nodes, name='Set-obj')      #*****************************


bobozjl 发表于 2016-6-6 11:46:35

NodeSet=Instance.NodeSetFromNodeLabels(node_setname, contact_node_list)
将contact_node_list 里面的节点写入到node_setname 中

shikang 发表于 2016-6-6 12:24:47

bobozjl 发表于 2016-6-6 03:46
NodeSet=Instance.NodeSetFromNodeLabels(node_setname, contact_node_list)
将contact_node_list 里面的节 ...
这个可以在生成odb文件后可以进行设置。
但是现在因为需要动态建模,需要在前期直接操作mdb变量,这时可以如何设置节点集合呢?

lavandewsh 发表于 2016-12-27 18:33:02

bobozjl 发表于 2016-6-6 11:46
NodeSet=Instance.NodeSetFromNodeLabels(node_setname, contact_node_list)
将contact_node_list 里面的节 ...

请问大神,contact_node_list具体怎么操作,新手一枚,希望指点下!THX

lavandewsh 发表于 2016-12-27 18:36:33

请问大神,Set-T 是什么集合?

水里面的小白 发表于 2017-5-26 23:55:22

感觉现在论坛都是自问自答了。
特地来感谢一下楼主,谢谢分享~

goodhoyo 发表于 2017-5-27 08:39:15

好高端的感觉
页: [1]
查看完整版本: Python如何将指定节点定义为一个节点集合