Abaqus脚本:单元随机赋予材料

    hello,大家好。今天教学一个,给不同的单元随机赋予材料的脚本。写脚本的方法,与之前写的镦粗脚本的方法一致。如果没看过的小伙伴,可以先看这一期。

    话不多说,直接开始吧。

1 任务

    写脚本之前,一定要明确目前。反复的问自己,我想用脚本实现什么?在写脚本的过程,请一定牢记你的目标。把实现这个目标的过程,拆分成无数个简单的步骤。这样就能写出逻辑性很强的好代码。

    我们今天的任务,是写一个给单元随机赋予材料的脚本。首先,模型描述,假设有10种材料模型,用的20*20*20的模型,单元大小设为1。实现的步骤为:

1.1 生成10个section

1.2 逐个遍历单元

1.3 给单元随机赋予section

    做好这三步,就能实现我们想要的随机赋予材料模型的脚本了。

2 建模

    建模,首先需要把模型建好,单元画好,这个比较简单。模型是20*20*20,单元大小为1:

3 写脚本

3.1 生成10个section

    如果你不知道怎么用脚本生成,劝退,可能你没有天赋不适合写脚本(开个玩笑)。如果你不知道怎么做,那就对了,如果你所有的函数都知道,那可能不是正常人,请留言告诉我,让我叫你一声大佬。

    要知道怎么写脚本,首先需要在cae界面做一步,然后在abaqus的rpy文件里看出现了什么。这里我就不多描述了,如果有疑问,还不知道怎么做的,请看我的上一期文章,本文开头有链接。

    这里我建了一个Material-1,给了一个密度和弹性模量,再建立了一个Section-1。它的脚本如红框所示。把它复制到任何你喜欢的python开发环境下,开始处理。(我习惯用pyCharm的,个人感觉比较好用)

    简单做了一些处理,用for循环做了10个material和对应的section。为了区分每种材料的区别,我对每个材料的弹性模量做一点小改动。

3.2 逐个遍历单元

    遍历每个单元其实很简单,只需要一个for循环就够了。

    这里需要用到一点小小的基础,如果不知道,记住就好了。这么做,for循环里的element,就是abaqus里的MeshElement对象。也就是每个单元,如果你把想看它有多少个话,在abaqus交互窗口打上就能看到。

3.3 给单元随机赋予section

    还是老套路,我们给一个单元赋予seciton,看看在rpy文件会出现什么。

    给一个单元先建立一个set,然后赋予材料是选这个set。在rpy文件中出现的内容如下:

    一共也就几行,是不是很简单。好,把这几行有用的复制到3.2步的for循环里。做一点改动。

    这里需要用到随机数random.randint(),所以在开头需要导入一个包import random。感觉已经改的面目全非了,但是效果更好了。

    尝试一下脚本:

    8000个单元,虽然运行的有点慢,大概用了几分钟。但是结果已经是符合我们的需求了,可以看出,已经对每个单元随机赋予了不同的材料属性。完美运行,调试成功。

3.3 最终代码

    因为bilibili不能直接粘贴代码,所以被迫用图片了,如果懒得打字的,想要源码的,可以私信或者留言告诉我,我会把源码置顶在评论区域。

4 总结

    今天就总结几个心得,跟大家反馈反馈。

(1)写脚本之前,一定一定一定要知道目标是什么,要时刻牢记;

(2)用流程图或者用文字,把逻辑写出来,清楚的知道你每一步要做什么;

(3)在写脚本的过程中,要不停的调试,最好是写一个小功能就运行一次,方便检查错误;

(4)出错是非常非常非常正常的事,不要着急,沉下心,你总会找到问题所在。

cut-off

百无禁忌,

猫咪赐福,

下期再见

QR Code
微信扫一扫,欢迎咨询~

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

* 公司名称:

姓名不为空

手机不正确

公司不为空