在使用python对ABAQUS进行前后处理的二次开发时,常常会利用到记录GUI操作的rpy文件,但默认的rpy文件是使用掩码的方式进行索引的,这种代码一般并不能直接使用。为了获得我们能直接使用的代码,需要在Kernel交互式命令行中输入一行代码。不同的代码会产生不同的效果,主要有以下两种:


        第一种,在Kernel交互式命令行输入以下指令:

session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)

        运行上述代码后,重新在GUI界面中进行操作,再打开rpy文件,就会发现代码更改为下面的形式:

p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
faces = f.findAt(((10.0, 10.0, 10.0), ))
p.Set(faces=faces, name='Set-method1')

        可以发现,此时便是使用.findAt()函数来获取part.face对象索引。        



        第二种:在Kernel交互式命令行输入以下指令:

session.journalOptions.setValues(replayGeometry=INDEX,recoverGeometry=INDEX)

         运行上述代码后,重新在GUI界面中进行操作,再打开rpy文件,就会发现代码更改为下面的形式:

p = mdb.models['Model-1'].parts['Part-1']
f = p.faces
faces = f[1:2]                                   
p.Set(faces=faces, name='Set-method2')

        可以发现,此时便是直接使用数字来索引part.face对象


        第二种方法可能会随着代码复杂度的升高而逐渐失效。因此,更为推荐第一种方法。但即便是第一种方法也不能解决所有的问题,还是需要我们对ABAQUS各种对象的获取以及Set、surface等有一定的认识才能解决我们大部分问题。     

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐