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