在前篇《Python输出Abaqus有限元模型单元、节点数据》中,有2个截图中的Python代码有误。最后一个图中Python代码没问题。
3.1 抽壳
第10行,改为removeCells('Model-1'),前篇removeCells(Model-1)忘了加单引号。
3.2 划网格
下面Python程序增加第19行,定义变量mdl='Model-1'。
下面附上所有代码。
前面两处有误,由于从上图中if语句中的代码**到各方法下面时,对‘Model-1’的定义没有处理好。
Python的高效无敌了,代码不足百行,干的事情不少。
补充:
1、
nds=mdb.models[mdl].rootAssembly.instances[inst].nodes
ems=mdb.models[mdl].rootAssembly.instances[inst].elements
以上两句取一个装配实例中的所有节点和单元,
2、
对于某个节点和单元,用索引如下:
nds[index]
ems[index]
索引 index 从0开始计数,index 不是单元、节点编号。
3、
单元、节点编号
nds[index].label
ems[index].label
通常,单元、节点编号从1开始计数,同一个单元、节点的编号比index大1。
但是,当对模型网格进行过编辑,单元、节点编号发生过变化,比如,合并共节点、删除某个单元,则单元、节点编号与index关系变化。
4、
用单元.connectivity取到的是单元节点的index,不是label。上面的Python程序可以修改为以下形式,即原45行注释掉,增加第46行,增加第49行,用节点.label的形式取节点编号,添加到 lb_nds 列表。
下载链接:
链接:https://pan.baidu.com/s/1u2yo7aaA5gMOWKHi0JxFug
提取码:furv