hello,大家晚上好,今天是2020/11/30,周一晚上11点30。脚本时间

又是一个安静的晚上,一个人躲在房间里。。。。写专栏。在脚本文集里,上次分享了一个关于脚本的工具,上上次分享了一个2D的随机球形状骨料的建模。不知道大家还记不记得,我在末尾留了个作业,想让大家自己尝试尝试怎么去写3D的脚本。但是有粉丝留言说遇到了困难,所以,作为一个实力宠粉的up,当然是想着办法解决的,所以这次我再带着大家写一遍。所以,如果有什么问题,欢迎给我留言,能力范围之内的我会尽量满足大家的要求。简单一点的我会尽快解决,难一点的(比如我们的UMAT(+.....+),哭晕在厕所 T-T),我需要多花点点时间,需要大家耐心等待等待,写的会有点慢,哈哈。

话不多说,开始我们今天的教学吧。

1 模型

还是老规矩,描述一下模型,在一个100*100*100mm的方块基体内,存在着3种直径的骨料,分别为10mm,4mm,1mm。跟2D的一样,只是维度变了。

2 cae建模

2.1 打开cae,运行pythonReader

还是先在cae里建模,大家应该看得出,写脚本的套路都是一样的,现在cae里操作找函数然后改写。今天就不在rpy里写了,我们打开cae之后,直接打开pythonReader,没有这个工具的,看我之前一篇专栏,评论区置顶有这个阅读器的下载链接。非常好用。打开之后,就是这个样子的。有个一直置顶的,时刻展示rpy文件的内容。

2.2 画基体

首先建模,肯定是要画基体对不对,先把基体的函数弄出来。

然后不用我多说了吧,拷贝到开发环境下,改写一下,把重复的命令去掉,没用的命令去掉,变量赋值等等。

写完之后,如下,这个相必大家应该都没什么疑问了,改写的方法有很多种。尽量简单易读一点:

2.2 画骨料

大家可能遇到的困难就在于此,骨料的Part怎么画,先放个图。看一下成品。

说实话,如果有人能直接在Part里画出这样的,一定要教教我,我交学费。正常人在Part里都无从下手,所以当你在这里碰壁的时候,无法下手的时候,不如换个角度想。我们part里难做,但是assembly里是很容易实现的呀,是不是这个道理。只需要在assembly里装配成这个样子不就行了???你管他是几个,几十几百个Part,全导入assembly,有多少装多少。如果你这么一想的画,事情突然就变得简单起来。只需要画3个不同直径的球形骨料就行了。

我们在cae里先画个骨料。然后找函数:

把这些乱起八糟的东西都复制到开发环境下,改一改,加个循环,生成3不同直径的球。

测试一下,程序没有问题。(大家先过一遍思路,然后自己尝试着做,如果有不明白的地方,再看我的程序)

2.3 导入Assembly

把基体和测试的球都导入到Assembly里。观察函数是什么。

同样的办法,改写一下,这两句比较简单。

2.4 移动

这是cae操作的最后一步,也是最最最重要的一步,因为我们到现在还没说到是如何实现随机的。没错,就是通过assembly的移动命令。如果对每个骨料都进行移动,且移动命令的x、y、z坐标是随机的,那么不就是相当于生成随机的骨料了嘛。

如果大家有还没明白的地方,继续往下看,到后面你就明白了。

还是同样的办法,在cae里移动,记录函数。

然后改写,其实就是一行命令:

到此为止,我在cae的操作已经全部完成了。剩下的内容,就是算法实现了,我们需要置顶的函数都已经完全记录下来了。大家如果看到这里,已经明白怎么写了,请停一停,自己尝试一下。如果还有点懵的,继续往下看。

3 算法实现

其实到这里,我个人感觉跟2D的已经没什么区别了,唯一的不同就是2D可以直接建模,而3D需要借助于assembly。其他的接触判断,其实就是比2D多了一个维度而已。好,我们继续往下写:

这里的交叉判断函数我是把之前的2D函数直接拿来用的,就是稍作修改,因为距离的计算多了个维度。先生成一下直径为10的球,测试一下程序。

测试结果如下,球体之间并无接触,所以程序是没问题的

完全同样的办法,把生成直径4和1mm的程序写出来。细心的小伙伴应该发现了,这几个写法上是神似的,这种完全可以封装成函数,让你的代码看起来更加的精炼。我这里没有做了,大家可以自己想想,怎么写的又简单而又好看。

到此为止 ,我们的整个脚本就写完了,测试一下:

完整程序,源代码会放在评论区置顶,供大家下载:

4 总结and思考

那么,我们今天的程序就写完了。再给大家留个作业,如果,你真的想要做成这种Part。而且,每个半径的所有骨料都对应一个Part,脚本应该怎么写。留给大家思考。

快乐的时光总是那么短暂。。我们下期再见,88

凡战者,无智名,无勇功。-《孙子兵法》

python生成随机骨料模型代码_Abaqus Python脚本-3D随机球形骨料的生成相关推荐

  1. python打开excel执行vba代码_“Python替代Excel Vba”系列(终):vba中调用Python

    请关注本号,后续会有更多相关教程. 系列文章 学Python还不会处理Excel数据?带你用pandas玩转各种数据处理"Python替代Excel Vba"系列(二):panda ...

  2. python 数据比对 函数_1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源...

    原标题:1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源

  3. R语言使用randomForest包构建随机森林模型的步骤和流程、随机森林算法包括抽样样本(观察)和变量来创建大量的决策树(多个树,构成了森林,而且通过样本抽样和变量抽样,让多个树尽量不同)

    R语言使用randomForest包中的randomForest函数构建随机森林模型的步骤和流程(Random forests).随机森林算法包括抽样样本(观察)和变量来创建大量的决策树(多个树,构成 ...

  4. python一千行入门代码-用Python三十行代码快速生成1000条随机评教内容

    随着大家使用评教的人越来越多,评教的内容确实一尘不变,有点不太好,所以昨天花了一个晚上的时间,用Python撸了一个随机生成评教内容的程序. 代码已经全部推送到github上,点击阅读原文查看 原理很 ...

  5. python自动化写作_50行代码让python自动生成文章

    不知道从小到大,我们被迫写了多少心得体会,多少人生感想,如果真情实地的去感受写作然后成长当然很好,但是更多的都是形式主义的需求,并没有人去看里面的内容,白白浪费我们多少大好时光,有时候我们ctrl,C ...

  6. python库scikit-learn线性回归模型代码

    1.  普通线性回归 from sklearn import linear_model reg = linear_model.LinearRegression() reg.fit([[0, 0], [ ...

  7. python量化投资必背代码-基于python的开源量化交易,量化投资架构

    原标题:基于python的开源量化交易,量化投资架构 github地址:https://github.com/bbfamily/abu abu能够帮助用户自动完善策略,主动分析策略产生的交易行为,智能 ...

  8. python在什么系统写代码合适-python用什么软件写代码

    IDE没有统一的标准,自己习惯就是最好的.本文列出一些较常用的IDE,供大家参考. 一般而言,WingIDE.PyCharm.Spyder.Vim是比较常用的IDE. Spyder Spyder是Py ...

  9. python要在哪里写代码-初识python【今天开始写代码】第一课

    这门课程包含的内容适用于初级的数据科学家们来提升自己的python技能.其中,第一节课我们会简单得介绍一下python的语法,变量赋值和几何运算. 你好,Python! Python是以英国喜剧团体巨 ...

最新文章

  1. TCP实现服务器与单客户端连接(多线程)
  2. 形状变化html,图形变换的三种方式是什么?
  3. centos刻录工具_centos u盘引导制作工具下载|
  4. 计算机网络可被理解为( )
  5. 浅谈PROFINET IO通信的实时性
  6. 【工作总结】银行应用系统架构(二)
  7. python日志记录_Python日志记录
  8. Fragstats 4.2 批处理(geotiff格式)
  9. 图神经网络概述(3):来自IEEE Fellow的GNN综述
  10. Dell 笔记本触摸板网页双指滑动黑屏
  11. 计算机专业课顺序,计算机专业课程安排顺序 计算机专业课程安排
  12. arduino控制串口屏
  13. 谁说手工测试不香了?25k不比二流的开发美滋滋
  14. 微信朋友圈营销如何做好头像_昵称_签名_背景基础设置?
  15. 金朝阳——软件测试试题11道题目分析答案
  16. 2K和XP下的CMD命令
  17. redis 空格问题
  18. java.lang.IllegalStateException: Failed to introspect Class报错原因和解决办法
  19. vanilla_使用Vanilla JavaScript构建Cookie库
  20. java笔试题含答案总结五

热门文章

  1. Hadoop之MapTask工作机制
  2. http/https监控获取响应时间(DNS解析时间,RRT时间,服务器处理时间等)
  3. 解读直播连麦与点播加密
  4. readlink(/proc/self/exe, buf, count - 1);
  5. kubernetes1.8.4安装指南 -- 5. 证书生成
  6. redis的scan命令的源码分析,实现原理
  7. undefined: grpc.SupportPackageIsVersion6 和 undefined: grpc.ClientConnInterface 解决办法
  8. 在hive中对日期数据进行处理,毫秒级时间转化为yyyy-MM-dd格式
  9. HDFS二次开发常见问题
  10. 还在发愁linux命令记不住吗?神器来了!