许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  abaqus后处理插件分享:二次开发提取任意点坐标应力应变

abaqus后处理插件分享:二次开发提取任意点坐标应力应变

阅读数 4
点赞 0
article_banner


“KeyError: 0”弹出来,是在odb里用nodeSet或者elementSet取点的时候名字对不上,abaqus的Python接口不会自动补全名字,set名字大小写敏感,必须先print(odb.rootAssembly.instances.keys())和print(odb.rootAssembly.nodeSets.keys())看清楚实际有什么,再往脚本里填。

取任意点坐标两种方式,一种是用getByBoundingBox(xMin,yMin,zMin,xMax,yMax,zMax,tolerance),给一个很小的包围盒把那个点框出来,返回的是nodeList和elementList,另一种是用getClosest(coordinates=(x,y,z), searchTolerance=0.5),返回最近的节点和单元,坐标用全局坐标系,如果模型有instance,先找到instance再调这个方法,不然是从rootAssembly里找,根装配下面没有节点,返回空。

应力应变数据在field output里,取法跟坐标不一样,不能直接按节点取,因为应力是积分点上的量,要先找到单元,再找积分点,再找截面点。elementLabel从elementList里拿,integrationPoint一般从1开始数,sectionPoint对壳单元和实体单元不一样,实体只有一个截面点,壳有几个,每个截面的应力都不一样,不指定的话默认是第一个,脚本里写成element.getIntegrationPointData('S', integrationPoint, sectionPoint),返回的是该积分点的应力张量,六个分量S11 S22 S33 S12 S13 S23。

取应变把'S'换成'E'或者'LE',E是小应变,LE是对数应变,大变形用LE,小变形用E,别混,弹塑性分析里塑性应变是PE,跟总应变E不一样,要区分清楚,PE是塑性部分,E是弹性加塑性,PEEQ是等效塑性应变,一个标量,看屈服区用PEEQ更直观。

插值到节点上,abaqus有个自带的工具叫fieldOutput.getSubset()配合node,但更直接的做法是用odbAccess里的FieldOutput,先getSubset(region=nodeSet)把那个节点的数据抽出来,如果节点在单元角点上,直接就有值,如果节点不在角点上,abaqus会自动从积分点外推到节点,这个外推是内置的,不用自己写,结果在odb里显示的就是节点应力。

批量提取多个点,把坐标写进一个csv或者txt,每行一个xyz,python里循环读,每个点调getClosest拿到节点和单元,再提取S和E,存到一个字典里,最后统一写到一个csv,列名用point_id x y z S11 S22 S33 S12 S13 S23 E11 E22...,写的时候用python的csv模块,别忘了import csv和import odbAccess,脚本放在abaqus cae noGUI下跑,或者abaqus python直接跑,后者不用开CAE,快很多。

坐标系问题,odb里的坐标和应力都是全局的,如果模型有旋转或者平移,全局坐标跟你图纸上的局部坐标不一样,要么在建模时就按全局坐标建,要么在脚本里做坐标变换,变换矩阵从assembly的transform里拿,或者自己手算,旋转矩阵别写反,x' = R*x + t,R是3x3,t是3x1。

常见坑,odb还没关闭就打开会报错,用openOdb(path, readOnly=True),用完close(),路径用绝对路径,反斜杠在python里是转义字符,写成r'D:\abaqus\odb\job.odb'或者用双反斜杠,job名字别带空格,单位跟模型一致,mm-tonne-s下应力是MPa,应变无量纲,坐标是mm,导出的时候在表头写清楚单位,下次把脚本存到D:\abaqus\scripts\extract_stress.py,参数用命令行传,坐标文件路径和输出路径都从sys.argv里读,硬编码改起来麻烦。



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空