王瑞文 史豪斌 楊銘 鄧一鳴 閏奕崎
摘要;眾所周知,在這計(jì)算機(jī)高速發(fā)展的時(shí)代,很多工作已經(jīng)可以在計(jì)算機(jī)上完成了,尤其是設(shè)計(jì)與仿真分析。如今,循環(huán)進(jìn)行“修改到完善”的傳統(tǒng)設(shè)計(jì)方法難以滿足現(xiàn)代設(shè)計(jì)要求,先進(jìn)的有限元分析方法就成為有效支持產(chǎn)品設(shè)計(jì)的工具。在眾多的有限元軟件中,Abaqus作為國際知名的有限元分析軟件,其分析精準(zhǔn)性早已得到反復(fù)驗(yàn)證,廣泛的用戶群就是不言而喻的有力證明。該文就如何更好的使用Abaqus腳本去對(duì)機(jī)器人零部件仿真分析進(jìn)行了研究。
關(guān)鍵詞:Ahaqus;Python:腳本;機(jī)器人
中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)07-0077-02
隨著計(jì)算技術(shù)和計(jì)算機(jī)的快速發(fā)展,有限元軟件的發(fā)展速度迅速,功能日漸強(qiáng)大。目前國際上被廣泛采用的通用有限元軟件有ANSYS、MSC、ABAQUS等。利用商業(yè)軟件進(jìn)行計(jì)算現(xiàn)在已是科學(xué)研究中的一項(xiàng)重要手段。由于工程問題的千差萬別,不同的用戶有不同的專業(yè)背景和發(fā)展方向,通用軟件不免在具體的專業(yè)方面有所欠缺,針對(duì)這些不足,大部分的通用軟件都提供了二次開發(fā)功能,以幫助用戶減少重復(fù)性的編程工作、提高開發(fā)起點(diǎn)、縮短研發(fā)周期、降低開發(fā)成本,并能簡化后期維護(hù)工作,給用戶帶來很多方便。基于通用軟件平臺(tái)進(jìn)行開發(fā),是目前研究的一個(gè)重要發(fā)展方向。ABAQUS也提供了若干用戶子程序(User Subroutines)接口,它是一個(gè)功能非常強(qiáng)大且適用的分析工具,與命令行的程序格式相比,用戶子程序的限制少得多,從而使用更加靈活方便。
為了幫助對(duì)機(jī)器人仿真分析的人們更方便地使用ABAQUS,通過編寫了一個(gè)簡單易用的GUI界面程序,使得ABAQUS的仿真分析變得簡單高效。
1程序用途
1.1主要功能
編寫一個(gè)基于Python的Tkinter的GUI程序十編寫一個(gè)基于Python的Tkinter的GUI程序十分的簡單,但是對(duì)于如何編寫ABAQUS的腳本程序,則是一個(gè)比較困難的問題。而我們的軟件則可以根據(jù)輸入的機(jī)器人零部件梁的各項(xiàng)參數(shù),來自動(dòng)輸出ABAQUS的腳本程序,使用者只需要完整的輸入各項(xiàng)參數(shù),便可得到ABAQus的腳本程序,從而獲得ABAQUS的仿真結(jié)果。
1.2技術(shù)特點(diǎn)
本程序利用了ABAQUS作為開發(fā)平臺(tái),根據(jù)關(guān)鍵參數(shù)的數(shù)值,利用ABAQUS/Standard或ABAQUS/Explicit求解器,產(chǎn)生分析結(jié)果。通過ABAQUS/CAE生成的輸入文件,腳本程序把它提交給ABAQUS/Standard或ABAQUS/Explicit求解器。求解器讀入輸入文件進(jìn)行分析計(jì)算,同時(shí)發(fā)送信息給ABAQUS/CAE以便對(duì)作業(yè)的進(jìn)程進(jìn)行監(jiān)控,并產(chǎn)生輸出數(shù)據(jù)。最后,用戶可使用可視化模塊閱讀輸出數(shù)據(jù),觀察分析結(jié)果。
1.3功能實(shí)現(xiàn)主架構(gòu)
代碼通過調(diào)用了捆綁在Python編程語言的圖形用戶界面包Tkinter,實(shí)現(xiàn)了能夠在UnixMacintosh和Windows系統(tǒng)運(yùn)行的GUI程序,并運(yùn)行起來具有本地系統(tǒng)的外觀和感覺.Tkinter是解釋性腳本語言Python的圖形界面開發(fā)工具包,是一個(gè)清晰的、面向?qū)ο蟮膱D形界面開發(fā)工具,比起c語言等編譯性語言更方便的編寫GUI程序。
2程序界面介紹
2.1獲取各項(xiàng)參數(shù)
通過Python庫中的Entry組件,獲得各項(xiàng)參數(shù)的值,圖2為軟件的部分界面圖,分布有懸臂梁靜力仿真對(duì)應(yīng)的12個(gè)參數(shù)的輸入框。下面取其中的一個(gè)來說明,對(duì)ABAQUS腳本的更改。
Label(root,text="矩形截面的長度h:").grid(row=0,column=0)
v1=StringVar()
e1=Entry(root,textvariable=v1)
e1.grid(row=0,column=1,padx=10,pady=5)
此部分主要完成的工作就是獲取輸入框中的參數(shù),并修改腳本程序。第一行代碼調(diào)用的Label組件來創(chuàng)見輸入框前的標(biāo)簽文字,第二行代碼創(chuàng)建一個(gè)用于存放輸入框中值的變量,第三行代碼調(diào)用Entry組件來創(chuàng)建一個(gè)輸入框并將值賦值給變量v1。
2.2更改與參數(shù)相關(guān)的語句
當(dāng)獲取了各項(xiàng)參數(shù)之后,便進(jìn)行更改ABAQUS的腳本。下面取其中的一個(gè)來說明,對(duì)ABAQUS腳本的更改。這行代碼調(diào)用輸入框?qū)ο蟮姆椒╣et()來修改腳本語句。
x2="\nrflySketch.reetangle(pointl=(0,0),point2=("+e1.get()+","+e2.get()+"))"
2.3獲得更改后的腳本
在輸入完各項(xiàng)參數(shù)后,點(diǎn)擊生成腳本,可以從記事本中看到生成腳本的代碼,可以從記事本中復(fù)制,也可以在程序的路徑中找到Script py這個(gè)腳本。
2.4程序界面
程序界面的參數(shù)包括機(jī)器人零部件梁截面的長度,寬度,截面的拉伸長度,材料的彈性模量,泊松比以及壓力載荷,并設(shè)置三個(gè)按鈕;
生成腳本:生成可以執(zhí)行的腳本文件
生成云圖:打開分析結(jié)果產(chǎn)生的云圖
退出:退出程序
2.5運(yùn)行腳本
可以使用下列方法之一來運(yùn)行腳本:
1)啟動(dòng)Abaqus/CAE的同時(shí)運(yùn)行腳本.如果從Abaqus命令行窗口中執(zhí)行,對(duì)應(yīng)的操作如下:依次單擊[開始]、[程序]、[Abaqus6.10]、[Abaqus Command],在命令行窗口中輸入下列命令,可以在啟動(dòng)Abaqus/CAE的同時(shí)并運(yùn)行腳本:
Abaqus cae script=Script.py
abaqus cae startup=Script.py
其中,Script py表示腳本文件名。使用下列命令,則可以在啟動(dòng)Abaqus/Viewer的同時(shí)并運(yùn)行腳本:
abaqus viewer script=Script.py
abaqusviewer start-up=Script.py
2)不啟動(dòng)Abaqus/CAE而直接運(yùn)行腳本.如果不啟動(dòng)Abaqus CAE而直接運(yùn)行腳本,使用下列命令:
abaqus cae noGUI=Script.py
其中,Script py表示腳本文件名稱。使用下列命令,可以不啟動(dòng)Abaqus/Viewer而直接運(yùn)行腳本:
abaqus viewer noGUI=Script.py
3)從啟動(dòng)屏幕(startup screen)運(yùn)行腳本.
當(dāng)啟動(dòng)一個(gè)新的Abaqus/CAE任務(wù)時(shí),Abaqus將顯示啟動(dòng)屏幕。單機(jī)run Scriot按鈕將彈出Run Script對(duì)話框,選擇需要執(zhí)行的腳本文件單機(jī)OK按鈕就可以運(yùn)行腳本
3結(jié)論
通過Python的Tkinter庫編寫出的GUI程序,可以很好的幫助那些對(duì)Abaqus或Abaqus腳本語言不熟悉的人,只需要通過輸入機(jī)器人零部件的幾項(xiàng)參數(shù),就能生成可用于Abaqus仿真的腳本,然后腳本自動(dòng)完成建模、設(shè)定機(jī)器人零件的材料參數(shù)、界面屬性、加載、設(shè)置接觸、提交作業(yè)、后處理觀察結(jié)果等。