Python在ABAQUS二次開發(fā)中的應(yīng)用實例PPT教案_第1頁
Python在ABAQUS二次開發(fā)中的應(yīng)用實例PPT教案_第2頁
Python在ABAQUS二次開發(fā)中的應(yīng)用實例PPT教案_第3頁
Python在ABAQUS二次開發(fā)中的應(yīng)用實例PPT教案_第4頁
Python在ABAQUS二次開發(fā)中的應(yīng)用實例PPT教案_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、會計學(xué)1Python在在ABAQUS二次開發(fā)中的應(yīng)用實二次開發(fā)中的應(yīng)用實例例第1頁/共24頁第2頁/共24頁lABAQUS軟件簡介ABAQUSABAQUS是國際著名的是國際著名的CAECAE軟件,它以解決實際工業(yè)問題能力和強大的非線性功能贏得廣泛聲譽。航空工業(yè)是軟件,它以解決實際工業(yè)問題能力和強大的非線性功能贏得廣泛聲譽。航空工業(yè)是ABAQUSABAQUS最重要的應(yīng)用領(lǐng)域之一,波音、空中客車、洛克希德最重要的應(yīng)用領(lǐng)域之一,波音、空中客車、洛克希德 馬丁等是其長期合作的用戶。馬丁等是其長期合作的用戶。ABAQUSABAQUS分析過程由三個步驟組成:分析過程由三個步驟組成:n前處理(前處理( AB

2、AQUS/CAE ););n模擬計算模擬計算(ABAQUS/Standard或者或者ABAQUS/Explicit);n后處理(后處理( ABAQUS/CAE )。)。建模過程主要集中在前處理步驟中。建模過程主要集中在前處理步驟中。第3頁/共24頁lABAQUS建模方法常用的常用的ABAQUSABAQUS建模方法主要有三種:建模方法主要有三種:在在ABAQUS/CAEABAQUS/CAE界面建模界面建模n優(yōu)點:界面直觀,簡單易懂;優(yōu)點:界面直觀,簡單易懂;n缺點:操作步驟繁瑣,不利于修改,缺乏通用性。缺點:操作步驟繁瑣,不利于修改,缺乏通用性。通過通過inpinp文件建模文件建模n優(yōu)點:可以直

3、接在優(yōu)點:可以直接在ABAQUS中提交;中提交;n缺點:只包含模型節(jié)點信息,代碼較多,修改不便;缺點:只包含模型節(jié)點信息,代碼較多,修改不便;使用使用PythonPython語言建模語言建模n優(yōu)點:代碼少,語言友好,可移優(yōu)點:代碼少,語言友好,可移植性好,可進行參數(shù)化修改;植性好,可進行參數(shù)化修改;n缺點:不夠直觀。缺點:不夠直觀。第4頁/共24頁lABAQUS腳本接口ABAQUSABAQUS有限元分析軟件二次開發(fā)環(huán)境提供的腳本接口,是基于有限元分析軟件二次開發(fā)環(huán)境提供的腳本接口,是基于PythonPython語言進行語言進行的定制開發(fā)。的定制開發(fā)。在在ABAQUS/CAEABAQUS/CAE

4、中進行建模和中進行建模和進行后處理時,對話框中做的所進行后處理時,對話框中做的所有設(shè)置都由有設(shè)置都由ABAQUS/CAEABAQUS/CAE從內(nèi)從內(nèi)部 發(fā) 出 與 之 對 應(yīng) 的部 發(fā) 出 與 之 對 應(yīng) 的 命 令命 令(commandcommand)。ABAQUSABAQUS腳本接口直接與內(nèi)核進腳本接口直接與內(nèi)核進行通信(行通信(communicatecommunicate),而與),而與ABAQUS/CAEABAQUS/CAE的圖形用戶界面的圖形用戶界面(GUIGUI)無關(guān)。如果將所有的腳)無關(guān)。如果將所有的腳本接口命令存儲于文件中,該文本接口命令存儲于文件中,該文件則稱為件則稱為腳本(

5、腳本(scriptscript)。腳本。腳本由一系列純由一系列純ASCIIASCII格式的格式的PythonPython語句組成,語句組成,擴展名一般為擴展名一般為.py.py。第5頁/共24頁lABAQUS腳本接口編寫腳本可以實現(xiàn)以下功能:編寫腳本可以實現(xiàn)以下功能:n自動執(zhí)行重復(fù)任務(wù);自動執(zhí)行重復(fù)任務(wù);n進行參數(shù)分析;進行參數(shù)分析;n創(chuàng)建和修改模型;創(chuàng)建和修改模型;n訪問輸出數(shù)據(jù)庫(訪問輸出數(shù)據(jù)庫(ODB文件);文件);n定制定制ABAQUS環(huán)境文件;環(huán)境文件;n創(chuàng)建創(chuàng)建ABAQUS插件程序。插件程序。編寫完成的腳本文件,可以直接在編寫完成的腳本文件,可以直接在ABAQUSABAQUS運行運

6、行: :nFile Run Script,打開相應(yīng)的,打開相應(yīng)的.py文件,即可執(zhí)行;文件,即可執(zhí)行;n剛打開剛打開ABAQUS界面,直接選擇界面,直接選擇Run Script也可;也可;n可以在可以在GUI界面下部的命令行接口輸入腳本語句執(zhí)行。界面下部的命令行接口輸入腳本語句執(zhí)行。第6頁/共24頁l創(chuàng)建ABAQUS腳本創(chuàng)建腳本有創(chuàng)建腳本有3 3種常用方法:種常用方法:在在GUIGUI建模時錄制宏(建模時錄制宏(macromacro)nFile Macro Managern可以按需錄制任何操作對應(yīng)的命令可以按需錄制任何操作對應(yīng)的命令直接編輯直接編輯abaqus.rpyabaqus.rpy文件文

7、件n建模時工作目錄下自動生成建模時工作目錄下自動生成abaqus.rpy文件文件n使用軟件使用軟件EditPlus可以直接打開編輯可以直接打開編輯n保存保存.cae文件并退出后才能生成文件并退出后才能生成.rpy文件文件借助借助PythonReader.exePythonReader.exe軟件軟件n中國石油大學(xué)焦中良開發(fā)中國石油大學(xué)焦中良開發(fā)n可以實時獲取可以實時獲取CAE每步操作對應(yīng)的腳本命令每步操作對應(yīng)的腳本命令第7頁/共24頁l調(diào)試ABAQUS腳本調(diào)試腳本有多種方法,這里介紹調(diào)試腳本有多種方法,這里介紹AbaqusAbaqus自帶的自帶的PDEPDE中的調(diào)試。中的調(diào)試。PDEPDE(P

8、ython Development EnvironmentPython Development Environment,PythonPython開發(fā)環(huán)境)開發(fā)環(huán)境)有以下功能:有以下功能:n編輯編輯Python文件、調(diào)試文件、調(diào)試Python腳本或插件;腳本或插件;n創(chuàng)建創(chuàng)建guiLog腳本,錄制所有的腳本,錄制所有的GUI動作;動作;n通過通過GUI(guiLog)運行)運行Python腳本或在腳本或在ABAQUS/CAE之外運行之外運行Python腳本;腳本;n設(shè)置延遲(設(shè)置延遲(delay)和斷點()和斷點(breakpoint),并查看代碼的執(zhí)行情況;),并查看代碼的執(zhí)行情況;n在在w

9、atch窗口中查看變量值等。窗口中查看變量值等。打開方式打開方式nFile Abaqus PDE,然后打開相應(yīng)的,然后打開相應(yīng)的.py文件,即可編輯調(diào)試。文件,即可編輯調(diào)試。第8頁/共24頁l調(diào)試ABAQUS腳本n點點 按鈕可以調(diào)試整個腳本文件;按鈕可以調(diào)試整個腳本文件;n點點 按鈕可以逐行調(diào)試腳本文件,調(diào)試行顯示為藍色;按鈕可以逐行調(diào)試腳本文件,調(diào)試行顯示為藍色;n點點 按鈕可以停止調(diào)試文件;按鈕可以停止調(diào)試文件;n點點 按鈕可以設(shè)置斷點,調(diào)試時將調(diào)到此行為止;按鈕可以設(shè)置斷點,調(diào)試時將調(diào)到此行為止;n點點 按鈕,然后點按鈕,然后點 按鈕,可以錄制按鈕,可以錄制CAE中的操作,點中的操作,點

10、 可以停止錄可以停止錄制。制。第9頁/共24頁第10頁/共24頁l基本規(guī)則n代碼按級別從大到小解讀,之間用代碼按級別從大到小解讀,之間用操作符操作符“.”連接。如:連接。如:mdb.modelsModel-1.materialsBPCOMPOSITE.Depvar(n=5)表示將模型表示將模型model-1的材料的材料BPCOMPOSITE里的子程序相關(guān)參數(shù)設(shè)里的子程序相關(guān)參數(shù)設(shè)為為5。n語句前加上語句前加上 # 號,表示是號,表示是注釋注釋內(nèi)容,這個語句將不被執(zhí)行;內(nèi)容,這個語句將不被執(zhí)行;n使用使用中文注釋中文注釋,要在文件最開始加上:,要在文件最開始加上:# -*- coding: UT

11、F-8-*-n以以換行換行來識別一個邏輯語句的結(jié)束。如果需要在一個物理行中編寫多個邏來識別一個邏輯語句的結(jié)束。如果需要在一個物理行中編寫多個邏輯語句,需要用分號分開。如:輯語句,需要用分號分開。如:x=1;y=2;z=3。如果一個邏輯語句太長需要。如果一個邏輯語句太長需要分行寫,需要用反斜杠分行寫,需要用反斜杠“”進行連接(有括號括起來的內(nèi)容就不用)。進行連接(有括號括起來的內(nèi)容就不用)。n不同代碼塊之間要注意用不同代碼塊之間要注意用冒號和縮進冒號和縮進來區(qū)分代碼塊之間的層次關(guān)系,如:來區(qū)分代碼塊之間的層次關(guān)系,如:for i in range(0,b3): if (iAnglelowfgi=

12、/): for l in range(0,i-j-1): c3k=c3k+iAnglelowfgj+l+1 j=i elif (iAnglelowfgi=):第11頁/共24頁l保留字段定義變量名、函數(shù)名的時候,避免使用保留字段。如:定義變量名、函數(shù)名的時候,避免使用保留字段。如:保留字段保留字段說明說明and not or邏輯邏輯“與與”“”“非非”“”“或或”break中止循環(huán)語句中止循環(huán)語句continue繼續(xù)執(zhí)行下一次循環(huán)繼續(xù)執(zhí)行下一次循環(huán)class定義類定義類def定義函數(shù)或者方法定義函數(shù)或者方法if else elif條件判斷語句條件判斷語句print輸出語句輸出語句while循環(huán)

13、語句循環(huán)語句from import導(dǎo)入模塊導(dǎo)入模塊return返回函數(shù)計算結(jié)果返回函數(shù)計算結(jié)果第12頁/共24頁l數(shù)據(jù)類型數(shù)據(jù)類型主要有數(shù)字類型、字符串類型;數(shù)據(jù)類型主要有數(shù)字類型、字符串類型;數(shù)字類型主要有四種:整型數(shù)字類型主要有四種:整型intint、長整型、長整型longlong、浮點型、浮點型floatfloat、復(fù)數(shù)型、復(fù)數(shù)型complexcomplex;PythonPython語言可自動判斷數(shù)據(jù)類型,不需要編寫者定義說明類型,如:語言可自動判斷數(shù)據(jù)類型,不需要編寫者定義說明類型,如:i=10.5,即可,即可。不需要用:。不需要用:float i=10.5 ;不同數(shù)據(jù)類型之間可通過函

14、數(shù)轉(zhuǎn)換,如不同數(shù)據(jù)類型之間可通過函數(shù)轉(zhuǎn)換,如intint()、()、floatfloat()。()??梢杂锰娲柋硎径ㄖ谱址?,如可以用替代符號表示定制字符串,如stress=1234.56print The stress is %f MPa % stress即可輸出:即可輸出: The stress is 1234.56 Mpa The stress is 1234.56 Mpa 符號符號描述描述符號符號描述描述% c定制字符及其定制字符及其ASCII碼碼% o定制無符號八進制數(shù)定制無符號八進制數(shù)% s定制字符串定制字符串% x定制無符號十六進制數(shù)定制無符號十六進制數(shù)% d定制整數(shù)定制整數(shù)

15、% f定制浮點型數(shù)據(jù)定制浮點型數(shù)據(jù)% u定制無符號整數(shù)定制無符號整數(shù)% e用科學(xué)計數(shù)法定義浮點型數(shù)據(jù)用科學(xué)計數(shù)法定義浮點型數(shù)據(jù)第13頁/共24頁l運算符主要有賦值運算符、算術(shù)運算符、邏輯運算符、關(guān)系運算符;主要有賦值運算符、算術(shù)運算符、邏輯運算符、關(guān)系運算符;下表按優(yōu)先級排列,從上往下優(yōu)先級增加。下表按優(yōu)先級排列,從上往下優(yōu)先級增加。運算符運算符描述描述or邏輯或邏輯或and邏輯與邏輯與not 邏輯非邏輯非, , = , != ,=小于,小于等于,大于,大于等于,不等于,等于小于,小于等于,大于,大于等于,不等于,等于+,-加、減運算加、減運算*, /, %乘、除、取余數(shù)運算乘、除、取余數(shù)運算

16、*指數(shù)運算指數(shù)運算不支持自加或自減運算,如:不支持自加或自減運算,如:i+、i-;但類似但類似 i+=1 這樣的語句是可以的。這樣的語句是可以的。第14頁/共24頁第15頁/共24頁l定義和導(dǎo)入模塊在每個腳本文件的最開始處,首先要導(dǎo)入相應(yīng)的在每個腳本文件的最開始處,首先要導(dǎo)入相應(yīng)的ABAQUSABAQUS模塊;模塊;每個步驟均有對應(yīng)的模塊,如每個步驟均有對應(yīng)的模塊,如partpart模塊,模塊,materialmaterial模塊、模塊、assemblyassembly模塊等,通過以下語句可以直接導(dǎo)入模塊等,通過以下語句可以直接導(dǎo)入caecae模塊的所有對象模塊的所有對象: :from cae

17、Modules import *如果需要用到各種符號常數(shù),如單元類型如果需要用到各種符號常數(shù),如單元類型C3D8RC3D8R,還要導(dǎo)入符號常數(shù)模塊:,還要導(dǎo)入符號常數(shù)模塊: from abaqusConstants import * l定義和導(dǎo)入對象還需要導(dǎo)入相應(yīng)的還需要導(dǎo)入相應(yīng)的ABAQUSABAQUS對象,包括對象,包括nSession對象(包括視口、遠(yuǎn)程隊列、視圖對象)對象(包括視口、遠(yuǎn)程隊列、視圖對象)nMdb對象(包括對象(包括Model對象和對象和Job對象)對象)nOdb對象對象通過類似如下的語句導(dǎo)入對象:通過類似如下的語句導(dǎo)入對象: from abaqus import *第1

18、6頁/共24頁l創(chuàng)建新實體myModel = mdb.modelsModel-1myViewport=session.Viewport(name=Region syntax, origin=(20, 20), width=200, height=100)mySketch = myModel.Sketch(name=Sketch A, sheetSize=200.0)mySketch.rectangle(point1=(-40.0, 30.0),point2=(-10.0, 0.0)mySketch.rectangle(point1=(10.0, 30.0),point2=(40.0, 0.0)

19、door = myModel.Part(name=Door,dimensionality=THREE_D, type=DEFORMABLE_BODY)door.BaseSolidExtrude(sketch=mySketch, depth=20.0)通過以上語句,在通過以上語句,在PartPart模塊中生成兩個三維實體。模塊中生成兩個三維實體。#建立新模型Model-1# 創(chuàng)建新的視口# 創(chuàng)建一個草圖,并繪制兩個矩形# 對上面創(chuàng)建的兩個矩形進行拉伸操作,生成三維部件 第17頁/共24頁l裝配實體、導(dǎo)入邊界條件myAssembly = myModel.rootAssemblydoorInstan

20、ce = myAssembly.Instance(name=Door-1,part=door, dependent=OFF)myModel.StaticStep(name=impact,previous=Initial, initialInc=1, timePeriod=1)myPillarLoad = myModel.ConcentratedForce(name=pillarForce, createStepName=impact,region=(pillarVertices,), cf1=12.50E4)通過以上語句,裝配實體,并施加邊界條件。通過以上語句,裝配實體,并施加邊界條件。此處使

21、用了此處使用了findAtfindAt語句語句來查找頂點。來查找頂點。#導(dǎo)入實體,完成裝配# 選擇兩個頂點# 創(chuàng)建靜力分析步(static)# 在選擇的頂點上施加集中力 第18頁/共24頁lfindAt語句簡介在在AbaqusAbaqus建模操作生成的建模操作生成的rpyrpy文件中,文件中,AbaqusAbaqus將自動為模型的特征進行編號,每個節(jié)點將自動為模型的特征進行編號,每個節(jié)點(node)(node)、單元、單元(element)(element)、頂點、頂點(vertex)(vertex)、邊、邊(edge)(edge)、面、面(face)(face)、體、體(cell)(cell

22、),都有對應(yīng)的,都有對應(yīng)的IDID。n實例:對方形實體切割實例:對方形實體切割p = mdb.modelsModel-1.partsDoorc = p.cellspickedCells = c.getSequenceFromMask(mask=(#1 , ), )v, e, d = p.vertices, p.edges, p.datumsp.PartitionCellByPlaneThreePoints(point1=v0, point2=v2, point3=v6, cells=pickedCells)如果后續(xù)對模型進行編輯(增加、刪除),特征如果后續(xù)對模型進行編輯(增加、刪除),特征ID

23、ID會改變,這時再用原來的語句就報錯。會改變,這時再用原來的語句就報錯。解決方法:用該特征的解決方法:用該特征的空間坐標(biāo)空間坐標(biāo)來表示;來表示;對于點,坐標(biāo)是唯一的;對于線、面、體,上面的任一坐標(biāo)都可以,但不要用兩個特征的交點坐標(biāo)。對于點,坐標(biāo)是唯一的;對于線、面、體,上面的任一坐標(biāo)都可以,但不要用兩個特征的交點坐標(biāo)。p.PartitionCellByPlaneThreePoints(point1=(-10,30,0), point2=(-40,30,20), point3=(-40,0,20),cells=pickedCells)c.findAt(-25,30,20),)第19頁/共24頁l

24、定義材料屬性mdb.modelsModel-1.Material(name=Steel)mdb.modelsModel-1.materialsSteel.Elastic(table=(220000.0, 0.35), )mdb.modelsModel-1.HomogeneousSolidSection(name=Section-1, material=Steel, thickness=None)pickedCells = c:p.Set(cells=pickedCells,name=Set-all)p = mdb.modelsModel-1.partsDoorc = p.cellscells

25、= c:region = p.setsSet-allp = mdb.modelsModel-1.partsDoorp.SectionAssignment(region=region, sectionName=Section-1, offset=0.0)#定義材料“steel”。#定義材料“steel”的工程彈性常數(shù)。#定義截面屬性“steel”,將材料“steel”賦予截面#c:可以選取全部的實體#定義集合“Set-all”,將全部實體定義成一個集合#將截面屬性賦予給集合“Set-all” 第20頁/共24頁l布置種子a = mdb.modelsModel-1.rootAssemblye1 = a.instancesDoor-1.edgespickedEdges = e1: #e1:可以選取全部的邊a.seedEdgeByNumber(edges=pickedEdges, number=4)通過以上語句布置種子。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論