Python脚本实现Abaqus 2D多晶粒建模的源码解析

   下面我就来说一下怎么做,简单的脚本我就不说了,下面我就说一下思路:

   1 建立基体,可以是圆的,方的,各种你喜欢的形状;

   2 利用python的第三方库scipy.spatial里的Voroini函数,画多边形的草图

   3 利用2中的草图,Partition Face把基体切割出来

   整体思路就是3步,难点主要是第2步,下面我分别解释一下这三步脚本:

   1 首先,第一步建立基体的脚本,看过我之前文章的小伙伴应该都懂了,不要太简单了,cae里画一个,然后再pythonReader里复制一下函数改写。(没看过的可以看我之前的脚本专栏以前的文章,写的很详细)


   2 第2步是难点:

   首先,有个scipy的官方教程:https://docs.scipy.org/doc/scipy/reference/tutorial/spatial.html。大家可以去看一下,他对于Voroini的介绍,非常详细。我这里就挑重要的说一下。

   Voroini多边形的生成第一步需要生成随机的种子点,然后实例化一个对象,把它丢到函数里,它会帮助你判断多边形的顶点和边是哪些。就如下图一样。是我再python3里画出来的,我把代码也放下来,大家可以看:


   这里面,蓝色的点,就是随机的种子点。黄色的点是多边形的顶点,黑色的线就是多边形的线。最最重要的来了,实例化之后,这些顶点的坐标会放在一个属性vertices里,边的信息会放在属性ridge_vertices里。有了这两个信息,我们就能abaqus里重构了。所以,再脚本里,先利用Voronoi函数把多边形的顶点和边的信息提取出来,分别放在自定义的变量vertices和edges里,如下:


   然后,再把这些边画出来,利用partition切割基体,就能实现多边形的建模了:


   运行一下程序,完美运行:


   如果你觉得颜色不好看的话,可以换一种着色方式,这样就能变得好看了。


   如果你想做成圆的,或者方的,或者任何基体,只要把基体的脚本改一下就可以了。


   完整代码如下,公众号里有能复制下来代码。

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

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空