前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Q&A-1】ABAQUS中通过Python完整选取几何体并建立Set

【Q&A-1】ABAQUS中通过Python完整选取几何体并建立Set

作者头像
阿信老师CAE
发布2022-05-17 16:38:37
2.9K1
发布2022-05-17 16:38:37
举报
文章被收录于专栏:ABAQUS二次开发

阿信老师您好:

我是山东大学****专业的学生,我叫卫**,想向您请教一个关于abaqus建模时使用python findAt函数选取的问题:我在建模地层时,需要对地层进行partition并建立set,一开始只用一个点就能选取整个模型,见图1,随着partition层数的增多,想要选择整个模型需要的点越来越多,见图2,所以想向您请教一下使用python时有没有什么方法能选择整个模型而且不受partition的影响。

图1

图2

图3 地层建模

卫同学你好:

你的问题解决的方式并非只有findAt()这一种方法,实际上对于你的的意图而言findAt()这种方法其实稍显繁琐,这里阿信提供另外一个选择。

我特意构建了一个小的模型用来演示,模型如下图:

图4 演示模型

对于图四模型,如果采用findAt()方法建立set,则需要采用如下代码:

代码语言:javascript
复制
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
cells = c.findAt(((5.0, 4.166667, 1.666667), ), ((5.0, 1.666667, 3.333333), ), 
    ((5.0, 3.333333, 3.333333), ))
p.Set(cells=cells, name='Set-coor')

很繁琐对不对,如果cell很多,那么这个语句要很长,也不利于参数化建模的实现,再看下面的代码:

代码语言:javascript
复制
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
cells = c[0:3]
p.Set(cells=cells, name='Set-index')

这个代码没按照findAt()的方式进行几何体的选取,而是对于几何体的序列进行了切片,稍作修改就可以对你的发来的问题模型所有的cell进行完整的选取并建立set了:

代码语言:javascript
复制
p = mdb.models['Model-1'].parts['Part-1']
c = p.cells
cells = c[0:]
p.Set(cells=cells, name='Set-index')

实际上ABAQUS提供了多种的几何体的选取方式,也不仅仅用于set的建立,详细的内容请参阅帮助文档。

另外,如果需要一个一个cell建立set的话,只需要进行循环切片就可以了,如果需要特定位置的cell建立set,那么还是需要用findAt(),坐标你可以自己计算。

祝好!

阿信

2020.06.11

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ABAQUS二次开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档