首页/文章/ 详情

Python输出Abaqus有限元模型单元、节点数据

1年前浏览7686

在Abaqus/CAE中使用Python处理Abaqus的模型mdb、结果odb非常方便。苏景鹤的《ABAQUS Python二次开发攻略》写的非常好。

开始正文之前,先讲两个小故事。

No.1

去年某985高校的老师到我所结题,抱着ask costs nothing的心态,请教了十几个问题,场面一度很尴尬。虽然我的问题有些难答,为了缓和气氛,我说“X教授不要笑话我无知,这个问题还挺有意思的。”经过一个多小时的交流,从中得知该老师团队用犀牛处理几何模型和有限元模型。但是对于我们的课题,其处理方法却是错的(局部细节,无碍全局),只有我自己清楚,没敢继续发问,否则结不了题,不好给所领导交差。

No.2

截止2月23日,2020年复工两周了,上了13天班,算上晚上加班,也有14个工作日的工作量了。为了今年1个亿的小目标,型号团队也够拼的。期间得知合作的985高校也用犀牛处理模型,想学学不来,就试试能不能用Abaqus完成部分工作。

1 任务分析

从某极小众软件的用户手册中看到下面一段文字,推荐用犀牛(Rhinoceros)处理模型得到raw文件。

上文中raw文件格式要求大致如下:

1)模型外表面用三角形单元划分网格;

2)单元法向指向模型外侧;

3)单元节点逆时针顺序(右手螺旋法则);

4)raw文件每行记录一个单元3个节点的坐标,即9个数据。

2 模型准备

走在成为土肥圆路上的CAD/CAE工程师以板锥圆(半球)为例获取raw文件。

在Creo中创建装配,包含3个零件。为了导出时各零件底面坐标统一,将3个零件挤到一起装配。模型单位为mm,几何为实体。

将上图Creo装配模型导出为stp文件,然后导入到Abaqus的Parts中,导入模型时缩放系数0.001,即模型在Abaqus中的长度单位为m。Creo装配中的每个零件成为Abaqus中的单个部件,Abaqus中部件名称有所变化,可以重命名。

3 处理模型

3.1 抽壳

在Abaqus中对导入的实体模型抽壳,即删除几何实体,只保留外表面。使用RemoveCells( )完成,Python脚本如下。

上图中Python脚本将Abaqus中所有部件抽壳,把模型切开看看抽壳效果,如下图。

3.2 划网格

使用下面的Python脚本对所有部件划分三角形网格。可以定义网格尺寸,下图中网尺寸0.05m。

若将上图19~22行改为下图所示语句,可以对单个部件划分网格。

3.3 检查网格法向

在Abaqus/CAE的Mesh模型查看面的法向,也是单元法向,单元的节点绕法向逆时针排列。下图中棕色面法向为正方向。符合法向朝外的要求。

3.4 创建和旋转装配实例

对于飞行器,飞行姿态通常用俯仰、偏航、滚转3个角度描述。一个部件的姿态在装配中体现是比较方便的。因此在装配中,可以对部件平移和旋转。下面Python脚本在Abaqus中对指定的部件、指定的转轴、指定的角度创建并旋转装配实例。

使用圆板部件创建并旋转后的装配实例如下图所示。

3.5 读取数据并写入raw文件

下面Python脚本将Abaqus装配中所有实例的节点坐标数据写入到Data-XXX.raw文件,为了验证数据准确性,同时将单元编号、节点编号、节点坐标数据写入到Ref-XXX.raw文件。文件中第一行数据为1,第2行数据为单元数,第3行开始每行为一个单元的数据(单元编号、节点编号、节点坐标)。节点坐标取到小数点后6位,即微米。

对于航天器的分析,几何尺寸以米计,分析精度要达到微米、微弧度(或角秒)才能考核指标符合性,难!

生成的raw文件如下图所示。2020年2月22日,我的第34个生日。21日晚老婆问我22日要不要上班,当然要上班!22日,周六,儿女守着老婆给我买的生日蛋糕不敢动,从中午到傍晚,打了几遍电话催我回家吃蛋糕。

3.6 数据检查

以俯仰60°的圆板模型数据为例,节点坐标数据如下图所示。从第3行开始,每行为一个单元3个节点的坐标,一个空格隔开数据,节点按照逆时针排列。

下面数据作为对照,从第3行开始,依次为单元编号、节点编号、节点坐标。

在Abaqus/CAE中找个单元核对一下数据。随意选个单元如下图红色单元所示。

单独显示上图所选单元,并显示单元、节点编号,如下图。

在Abaqus的命令行接口查看单元1413的单元编号、节点编号和顺序,如下图所示。

在Abaqus/CAE中用查询工具查看单元1413的3个节点的坐标,如下图所示。

在对应的Ref-XXX.raw文件中找到单元1413的数据,如下图所示,注意节点顺序、坐标值,跟上图对比。

在对应的Data-XXX.raw文件中找到第1415(1413 2)行数据,如下图所示,观察节点坐标数据,跟上图对比。

4 整理Python程序

为了抽壳、划网格、创建并旋转装配实例、读取并写入数据,定义了下面4个方法。根据op的值进行相应的操作。

5 小结

Data-XXX.raw文件就是某极小众软件需要的数据格式,在Abaqus中用Python脚本可以轻易实现批量工作。

在Abaqus中应用Python脚本工作,事半功百倍。

工作中尽量少抱怨工作量大,尽量多提高技能。动动嘴皮子就能拿高薪的人毕竟是少数。

来源:AbaPY
Abaqus二次开发航天CreoRhinoceros
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-09-07
最近编辑:1年前
KongXH
博士 专注于有限元分析领域,联合创作...
获赞 48粉丝 91文章 58课程 1
点赞
收藏
未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈