Abaqus Python脚本:三维随机多边形骨料生成(上)

hello,小伙伴们晚上好。好久不见,我来啦。

今天先不讲故事了,下次一定。

今天咱们就直奔主题,想必大家看标题就明白今天的内容了,没错,就是讲关于三维随机多边形骨料的脚本建模。最后有个上,没想到吧。其实下次还是讲它,为啥有个上呢。因为我最近忙着别的事了,实在没有时间去研究这些,短时间内没干出来,所以先写个上集,带着大家一起练习练习。下次我会补上完整版本的。

如果有想直接白嫖完整脚本的,那需要等下次了。这次是个半成品。想学习的,还是可以学到很多东西的,各位请细品。

今日任务

直观不?就是干这个,三维多面体骨料模型的建立。

下面就说,这个怎么干。

生成算法

之前就跟大家说过,算法是脚本的核心。算法,就像是一个人的逻辑,实现一个功能的逻辑。对于骨料这种,这么吊的东西,我这个外行是肯定干不出来的。根据牛顿爷爷所说,我看得远,是因为我站在巨人的肩膀上。所以,想看得远,我们也要站在巨人的肩膀上。

当然是看别人的文献啦。那么本文参考的文献如下:

我连着摘要一起粘过来,感兴趣的同学可以下载源文件看看。我生成骨料的脚本的算法,都是依据此文。谢谢这些大佬们。下面呢,我就对它文中的内容,做一个简单的解读。具体是怎么实现多边形骨料建模的。

算法的python脚本实现

完全是个人解读啊,在下书读的少,是个糙人。说的话比较通俗。没有文献讲的好。

1 随机骨料球

遇事不决,画图解决。画一遍大家就明白怎么做的了。

有必要展示我绘画的极度扎实的基本功了。灵魂画手。如果有绘画相关的商务合作,请加我好友,跟我联系一下,我收费不高的,人物肖像,风景都接,先付款后出图,概不退款啊,咳咳,打个广告。

请看上图。首先是个基体,也算是骨料的范围。长*宽*高 = length*width*height。我们的骨料都是限制在一个球里的。记住啊,这样的好处是,做干涉判断的时候真的特别简单,只需要判断每个球不要干涉就行了。

既然骨料被限制范围了,那么这个球的中心点坐标也同样被限制在一个范围了。我们首先随机一个骨料的半径,然后在随机一个圆心点坐标(x0,y0,z0)。脚本如下:

然后加个循环,随机一堆数据。为什么要做这一步,是因为讲究一个字,随机。骨料的半径随机,位置随机。

2 随机骨料的干涉判断

注意,除第一个之外,之后的随机的骨料半径以及中心点坐标都要做干涉判断。因为随机的位置有是有可能干涉的。再画个图解释一下:

随机之后,做干涉判断。然后保留没有干涉的数据,以列表的形式存储起来。下面我们就来写一下这个干涉的判断函数。我之前写了好多遍了,大家应该都明白了。

3 八面体基骨料的四边形生成

简单吧。以上都是基于数据层面的操作,还没有在abaqus生成任何东西。所以,接下来,就是利用这些数据的时候了,还是举个栗子吧。灵魂画手又上线,以一个球内部为例:

骨料的核心之一是构建基体骨料,就是我们今天用的8面体。构建8面体之前,得需要构成4边形。这一步,就是4边形的做法。由于是平面上随机,为了便于理解,我就直接在二维上演示:

其他随机点与点A的区别,就在于角度值的范围。所以,我们可以做个循环,分别求出这四点坐标。

4 八面体基骨料的顶点生成

这样,咱们的四边形就做好了。接下来,就是生成8面体,生成8面体就简单了,只需要在上下各随机一个点。与四边形连接起来就好了。

再画一个,演示一下:

其实上下的原理都一样,这里只展示一个。

4 八面体基骨料的顶点生成

数据部分已经做完了,最后只差建模了。展示一下核心脚本。核心中的核心,这三句话,只要涉及复杂建模的情况,都会用得到。由点到线再到面的建模方法,各位好好体会。

分析完了,脚本也写完了。接下来,就展示一下结果吧。

脚本运行结果

结果没毛病,大家可以自己下载一下玩玩。测试测试,当然这只是半成品,如果有需要做分析的,还需要等下集。

完整代码

完整脚本见公众号,虽然只是个半成品的,但是值得学习的地方还是很多的,也是培养一下我们复现别人算法的能力。大家可以自己尝试尝试,然后对照我的脚本,这样学起来更快。

下次我会接着这部分的讲,完善一下这部分,然后再把后面的内容讲完。期待ing。

另外,大家在公众号回复“脚本”或者“子程序”,就能看到我的github代码仓库了,里面有目前我所有文章的脚本和子程序,我就不每次都发了。今天的内容就到这里啦,我们下期见。88,大家晚安。

cut-off

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空