python生成随机骨料模型代码_Abaqus Python脚本-3D随机球形骨料的生成
hello,大家晚上好,今天是2020/11/30,周一晚上11點30。腳本時間
又是一個安靜的晚上,一個人躲在房間里。。。。寫專欄。在腳本文集里,上次分享了一個關于腳本的工具,上上次分享了一個2D的隨機球形狀骨料的建模。不知道大家還記不記得,我在末尾留了個作業,想讓大家自己嘗試嘗試怎么去寫3D的腳本。但是有粉絲留言說遇到了困難,所以,作為一個實力寵粉的up,當然是想著辦法解決的,所以這次我再帶著大家寫一遍。所以,如果有什么問題,歡迎給我留言,能力范圍之內的我會盡量滿足大家的要求。簡單一點的我會盡快解決,難一點的(比如我們的UMAT(+.....+),哭暈在廁所 T-T),我需要多花點點時間,需要大家耐心等待等待,寫的會有點慢,哈哈。
話不多說,開始我們今天的教學吧。
1 模型
還是老規矩,描述一下模型,在一個100*100*100mm的方塊基體內,存在著3種直徑的骨料,分別為10mm,4mm,1mm。跟2D的一樣,只是維度變了。
2 cae建模
2.1?打開cae,運行pythonReader
還是先在cae里建模,大家應該看得出,寫腳本的套路都是一樣的,現在cae里操作找函數然后改寫。今天就不在rpy里寫了,我們打開cae之后,直接打開pythonReader,沒有這個工具的,看我之前一篇專欄,評論區置頂有這個閱讀器的下載鏈接。非常好用。打開之后,就是這個樣子的。有個一直置頂的,時刻展示rpy文件的內容。
2.2 畫基體
首先建模,肯定是要畫基體對不對,先把基體的函數弄出來。
然后不用我多說了吧,拷貝到開發環境下,改寫一下,把重復的命令去掉,沒用的命令去掉,變量賦值等等。
寫完之后,如下,這個相必大家應該都沒什么疑問了,改寫的方法有很多種。盡量簡單易讀一點:
2.2 畫骨料
大家可能遇到的困難就在于此,骨料的Part怎么畫,先放個圖??匆幌鲁善?。
說實話,如果有人能直接在Part里畫出這樣的,一定要教教我,我交學費。正常人在Part里都無從下手,所以當你在這里碰壁的時候,無法下手的時候,不如換個角度想。我們part里難做,但是assembly里是很容易實現的呀,是不是這個道理。只需要在assembly里裝配成這個樣子不就行了???你管他是幾個,幾十幾百個Part,全導入assembly,有多少裝多少。如果你這么一想的畫,事情突然就變得簡單起來。只需要畫3個不同直徑的球形骨料就行了。
我們在cae里先畫個骨料。然后找函數:
把這些亂起八糟的東西都復制到開發環境下,改一改,加個循環,生成3不同直徑的球。
測試一下,程序沒有問題。(大家先過一遍思路,然后自己嘗試著做,如果有不明白的地方,再看我的程序)
2.3 導入Assembly
把基體和測試的球都導入到Assembly里。觀察函數是什么。
同樣的辦法,改寫一下,這兩句比較簡單。
2.4 移動
這是cae操作的最后一步,也是最最最重要的一步,因為我們到現在還沒說到是如何實現隨機的。沒錯,就是通過assembly的移動命令。如果對每個骨料都進行移動,且移動命令的x、y、z坐標是隨機的,那么不就是相當于生成隨機的骨料了嘛。
如果大家有還沒明白的地方,繼續往下看,到后面你就明白了。
還是同樣的辦法,在cae里移動,記錄函數。
然后改寫,其實就是一行命令:
到此為止,我在cae的操作已經全部完成了。剩下的內容,就是算法實現了,我們需要置頂的函數都已經完全記錄下來了。大家如果看到這里,已經明白怎么寫了,請停一停,自己嘗試一下。如果還有點懵的,繼續往下看。
3 算法實現
其實到這里,我個人感覺跟2D的已經沒什么區別了,唯一的不同就是2D可以直接建模,而3D需要借助于assembly。其他的接觸判斷,其實就是比2D多了一個維度而已。好,我們繼續往下寫:
這里的交叉判斷函數我是把之前的2D函數直接拿來用的,就是稍作修改,因為距離的計算多了個維度。先生成一下直徑為10的球,測試一下程序。
測試結果如下,球體之間并無接觸,所以程序是沒問題的
完全同樣的辦法,把生成直徑4和1mm的程序寫出來。細心的小伙伴應該發現了,這幾個寫法上是神似的,這種完全可以封裝成函數,讓你的代碼看起來更加的精煉。我這里沒有做了,大家可以自己想想,怎么寫的又簡單而又好看。
到此為止 ,我們的整個腳本就寫完了,測試一下:
完整程序,源代碼會放在評論區置頂,供大家下載:
4 總結and思考
那么,我們今天的程序就寫完了。再給大家留個作業,如果,你真的想要做成這種Part。而且,每個半徑的所有骨料都對應一個Part,腳本應該怎么寫。留給大家思考。
快樂的時光總是那么短暫。。我們下期再見,88
凡戰者,無智名,無勇功。-《孫子兵法》
總結
以上是生活随笔為你收集整理的python生成随机骨料模型代码_Abaqus Python脚本-3D随机球形骨料的生成的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘排序软件_华硕电脑u盘启动设置
- 下一篇: python自动化测试常用库_Pytho