c# 线向量生成多边形_python脚本实现abaqus前处理2D多晶粒建模(附完整源码)-Voronoi多边形的生成...
hello,小伙伴們大家下午好呀。
今天呢,還是講python腳本,是一個我以前煞費苦心寫的,熬死了不少腦細胞寫的,今天呢,我就教了大家,我把源碼都給你們,讓你們省省事。
順便安利一下自己的公眾號,大家關(guān)注一下,過幾天我會再公眾號做一個笑話的欄目,我去爬點笑話放上去,時不時會更新的那種(應(yīng)該不會被抓起來吧),給我自己也是給你們放放松,寫碼的時候真的挺累的,需要適當?shù)慕鈮?#xff1a;
今天要講的是在abaqus下2D多晶粒的建模,可能需要用到這方面的人比較少,但是一旦你有需求,絕對能你耗你個小月把,因為我看網(wǎng)上的資源少的可憐,有資源的地方都是,你懂得,收費的。而且價格也不菲,還不給源碼,只給插件的那張。要么就是給了你一段代碼,然后省略了一堆關(guān)鍵的。總之就是各種的不實在。
看的我真是心里極度不自在,當時我在學(xué)習的時候,就看到了這種,現(xiàn)在還是這樣的狀況,我當時心里那個不服氣呀(其實是沒錢買腳本),非得把它寫出來不可。雖然耗時不小,最終還是被我做出來了。今天就送給大家。
下面我就來說一下怎么做,簡單的腳本我就不說了,下面我就說一下思路:
1 建立基體,可以是圓的,方的,各種你喜歡的形狀;
2 利用python的第三方庫scipy.spatial里的Voroini函數(shù),畫多邊形的草圖
3 利用2中的草圖,Partition Face把基體切割出來
整體思路就是3步,難點主要是第2步,下面我分別解釋一下這三步腳本:
1 首先,第一步建立基體的腳本,看過我之前文章的小伙伴應(yīng)該都懂了,不要太簡單了,cae里畫一個,然后再pythonReader里復(fù)制一下函數(shù)改寫。(沒看過的可以看我之前的腳本專欄以前的文章,寫的很詳細)
2 第2步是難點:
首先,有個scipy的官方教程:https://docs.scipy.org/doc/scipy/reference/tutorial/spatial.html。大家可以去看一下,他對于Voroini的介紹,非常詳細。我這里就挑重要的說一下。
Voroini多邊形的生成第一步需要生成隨機的種子點,然后實例化一個對象,把它丟到函數(shù)里,它會幫助你判斷多邊形的頂點和邊是哪些。就如下圖一樣。是我再python3里畫出來的,我把代碼也放下來,大家可以看:
這里面,藍色的點,就是隨機的種子點。黃色的點是多邊形的頂點,黑色的線就是多邊形的線。最最重要的來了,實例化之后,這些頂點的坐標會放在一個屬性vertices里,邊的信息會放在屬性ridge_vertices里。有了這兩個信息,我們就能abaqus里重構(gòu)了。所以,再腳本里,先利用Voronoi函數(shù)把多邊形的頂點和邊的信息提取出來,分別放在自定義的變量vertices和edges里,如下:
然后,再把這些邊畫出來,利用partition切割基體,就能實現(xiàn)多邊形的建模了:
運行一下程序,完美運行:
如果你覺得顏色不好看的話,可以換一種著色方式,這樣就能變得好看了。
如果你想做成圓的,或者方的,或者任何基體,只要把基體的腳本改一下就可以了。
完整代碼如下,公眾號里有能復(fù)制下來代碼。
我們只是寫了個2D的,大家可以想一想3D的多晶粒模型怎么做,歡迎給我留言討論。(我個人還是喜歡用neper生成多晶的模型,neper是開源軟件,而且他們做的模型非常好看,有喜歡的給我留言,88)
我們下期再見啦
兵者,詭道也。《孫子兵法》(我家傻狍子就會這一句,天天在我耳朵旁說)
總結(jié)
以上是生活随笔為你收集整理的c# 线向量生成多边形_python脚本实现abaqus前处理2D多晶粒建模(附完整源码)-Voronoi多边形的生成...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: flash咏鹅课件_咏鹅flash动画课
- 下一篇: marquee文字起始位置_PS修图改字