栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Abaqus二次开发------批量建立两点弹簧

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Abaqus二次开发------批量建立两点弹簧

笔者为科研界最后的摆烂王,目前利用python代码对Abaqus进行二次开发尚在学习中。欢迎各位摆烂的仁人志士们和我一起摆烂!ps:搞什么科研,如果不是被逼无奈,谁要搞科研!


本期为大家带来在Abaqus中批量建立两点弹簧的python脚本编辑,在这段时间利用python对Abaqus进行二次开发的过程中,也是有一些感慨想要分享给大家。

python是一门很优秀,理解起来也并不复杂的编程语言,对于像笔者这种专业为岩土工程的工科生来说,python的主要用处,一个在于如何通过编程,实现在有限元软件或者离散元软件中进行快速建模,另一个则是如何快速提取软件模拟分析出来的数据,并且绘制各种各样的数据图来供分析或者写论文使用。

所以对于python语言的精通程度,对于软件进行二次开发来讲,并不需要像计算机专业可以将各种代码信手拈来,可以用精美的代码来构建起屏幕上绚烂的色彩。

在对软件进行二次开发时,一个很重要的参考信息源,就是软件自带的用户手册。熟悉手册里面提供的python脚本参考案例,与软件中各功能所对应的python脚本,是做好二次开发的第一步。对于进行二次开发的python初学者而言,没有太多时间学习完基础知识之后,还可以进行更深层次的代码练习,往往都是在边学的过程中,边扒着用户参考手册做开发。

笔者也是如此。

二次开发的另一要点则是,构建起正确的,简易的,开发思路。

以批量建立弹簧为例,编者的思路为首先确定下来在软件中,对两个点,所建立弹簧时的python代码。将此问题解决之后,便可以在此基础之上,通过循环建立起来多个节点下的两点弹簧。

那么要如何确定,用python代码将相对应的两个点作为一个弹簧区域时的两个node的编号呢?

于是,编写弹簧的代码思路就出来了。

第一:首先用python脚本编写程序,来判断两个不同的node集合中,相近的两个node,并将成对提取出来,放进region区域内,构成由N个node对组成的弹簧 regionPairs。

判断时可以用同一个坐标下,不同node编号的两个节点构成一对。(适合两个面相重合,且划分网格时形成的节点数目一样,只是node编号不一样,但空间位置相同,笔者试过该方法,但是有点问题,应该是网格划分的时候没有对齐好点)

也可以用两个点距离判断,当两个点的距离小于一个极小值的时候,可以认为这两个点为建立弹簧时的region点。(这个是比较通用的)

第二:将代码按照正确的顺序,添加进去Abaqus自带的,所必须的代码段。比如代表Assembly的

a = mdb.models['Model-1'].rootAssembly

在第一步的摸索中,可以根据遇见的问题,进行网上搜索获取相应的代码来解决问题,笔者便是这样,并且认为这是对于自己来说,一个很好的提高python编程能力的方法,多看多学,多改多背。

也欢迎各位大佬在python和二次开发方面给小弟提一些建议与指导,感谢!

最后附上建立起两点弹簧的截图

这是一个空心圆环,外套一个圆壳,圆壳刚好和圆环外表面重合。

 

 有需要的家人们可以私聊购买,售价40.

这也算是通过自己的脑力为自己贫穷的科研生涯增加一点微薄的收入吧。

家人们,我们下次再见,拜拜!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755433.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号