下面我就来说一下怎么做,简单的脚本我就不说了,下面我就说一下思路:
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切割基体,就能实现多边形的建模了:
运行一下程序,完美运行:
如果你觉得颜色不好看的话,可以换一种着色方式,这样就能变得好看了。
如果你想做成圆的,或者方的,或者任何基体,只要把基体的脚本改一下就可以了。
完整代码如下,公众号里有能复制下来代码。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删